{"id":193033,"date":"2026-04-29T16:45:57","date_gmt":"2026-04-29T09:45:57","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=193033"},"modified":"2026-04-29T16:45:57","modified_gmt":"2026-04-29T09:45:57","slug":"multi-warehouse-adalah","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/","title":{"rendered":"Multi Warehouse: Pengertian, Cara Kerja &#038; Penerapannya"},"content":{"rendered":"<p>Penerapan sistem multi warehouse kini menjadi langkah strategis bagi pelaku usaha yang ingin memperluas jangkauan distribusi di Indonesia. Berdasarkan laporan Colliers Quarterly Property Market Report Q1 2026, tingkat hunian gudang modern di Greater Jakarta sudah menyentuh\u00a0<a href=\"https:\/\/moneter.id\/hunian-gudang-sentuh-958-pasar-logistik-greater-jakarta-makin-ketat-di-2026\/\">95,8%<\/a>.<\/p>\n<p>Multi warehouse adalah konsep pengelolaan beberapa gudang di lokasi berbeda dalam satu sistem terintegrasi. Pendekatan ini memungkinkan stok berada lebih dekat dengan konsumen sekaligus menjaga ketersediaan barang di setiap titik permintaan.<\/p>\n<p>Memahami pengertian, fungsi, hingga cara kerja multi warehouse menjadi penting agar bisnis dapat memilih strategi pengelolaan gudang yang tepat sesuai skala dan kebutuhan operasional.<\/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=\"#1\">Multi warehouse<\/a> adalah sistem pengelolaan beberapa gudang di lokasi berbeda yang terhubung dalam satu platform terpusat sehingga seluruh stok dapat dipantau real-time.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#2\">Penerapan multi warehouse<\/a> membantu bisnis mempercepat fulfillment, menurunkan risiko stockout, dan menekan biaya logistik<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#3\">Implementasi optimal<\/a> memerlukan dukungan WMS atau ERP untuk otomasi routing, sinkronisasi stok, dan integrasi antar modul bisnis.<\/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<p><span data-sheets-root=\"1\">\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> <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><\/p>\n<h2><strong>Apa itu Multi Warehouse?<\/strong><\/h2>\n<p><span id=\"1\">Multi warehouse adalah sistem pengelolaan dua atau lebih gudang di lokasi berbeda yang terhubung dalam satu platform terpusat. Setiap gudang memiliki stok dan operasional sendiri, namun tetap terpantau secara real-time melalui sistem yang sama.<\/span><\/p>\n<p>Konsep ini banyak diadopsi retail multi-cabang, distributor, manufaktur, dan pelaku e-commerce yang melayani pembeli lintas kota. Stok yang tersebar strategis membantu memangkas waktu pengiriman dan menjaga ketersediaan produk di setiap wilayah.<\/p>\n<p>Implementasinya umumnya didukung <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/warehouse-management-system\/\">Warehouse Management System (WMS)<\/a> atau modul inventory pada ERP, agar data stok tetap akurat dan transfer antar gudang dapat dilakukan secara cepat.<\/p>\n<h2><strong>Fungsi Multi Warehouse dalam Bisnis<\/strong><\/h2>\n<p>Penerapan multi warehouse membawa peran penting dalam menjaga kelancaran operasional, terutama bagi bisnis yang melayani konsumen di banyak wilayah. Berikut beberapa fungsi utamanya.<\/p>\n<h3>1. Mendistribusikan stok berdasarkan lokasi permintaan<\/h3>\n<p>Stok dapat dialokasikan sesuai pola pembelian di tiap wilayah, sehingga produk dengan permintaan tinggi tersedia lebih dekat dengan pasarnya. Distribusi semacam ini membuat pengelolaan inventaris lebih efisien dan minim penumpukan di satu titik.<\/p>\n<h3>2. Mempercepat proses fulfillment dan pengiriman<\/h3>\n<p>Order dapat diproses dari gudang terdekat dengan alamat pembeli, sehingga waktu pengiriman menjadi lebih singkat. Kecepatan ini berdampak langsung pada kepuasan pelanggan dan rating toko di marketplace.<\/p>\n<h3>3. Mengurangi risiko stockout dan overstock<\/h3>\n<p>Sistem terpusat memungkinkan visibilitas stok antar gudang sehingga transfer barang dapat dilakukan sebelum stok di salah satu lokasi habis. Risiko penumpukan barang yang tidak terjual juga berkurang karena alokasi disesuaikan dengan tren permintaan.<\/p>\n<h3>4. Menyediakan backup operasional antar gudang<\/h3>\n<p>Ketika satu gudang mengalami gangguan seperti kerusakan sistem, bencana, atau lonjakan order, gudang lain dapat mengambil alih proses fulfillment. Hal ini menjaga rantai pasok tetap berjalan tanpa harus menghentikan layanan ke pelanggan.<\/p>\n<h3>5. Mengoptimalkan biaya logistik dan ongkos kirim<\/h3>\n<p>Pengiriman dari gudang terdekat memangkas biaya ekspedisi dan konsumsi armada. Dalam jangka panjang, efisiensi ini lebih besar dibanding biaya tambahan untuk membuka gudang di lokasi strategis.<\/p>\n<h2><strong>Cara Kerja Sistem Multi Warehouse<\/strong><\/h2>\n<div style=\"width: 100%; max-width: 1100px; margin: 30px auto; font-family: Arial, sans-serif; background-color: #2c2c2c; padding: 30px 25px; border-radius: 12px; box-sizing: border-box;\">\n<div style=\"text-align: center; margin-bottom: 25px;\">\n<h3 style=\"color: #e8ddc8; font-size: 22px; margin: 0 0 8px 0; letter-spacing: 0.5px;\">Cara Kerja Sistem Multi Warehouse<\/h3>\n<p style=\"color: #b8ac93; font-size: 14px; margin: 0;\">Alur Operasional dari Order Masuk hingga Pengiriman<\/p>\n<\/div>\n<div style=\"display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; gap: 10px;\">\n<div style=\"flex: 1 1 180px; min-width: 170px; max-width: 200px; background-color: #e8ddc8; border-radius: 10px; padding: 18px 14px; text-align: center; box-sizing: border-box;\">\n<div style=\"width: 42px; height: 42px; line-height: 42px; background-color: #2c2c2c; color: #e8ddc8; border-radius: 50%; font-size: 18px; font-weight: bold; margin: 0 auto 12px auto;\">1<\/div>\n<h4 style=\"color: #2c2c2c; font-size: 14px; margin: 0 0 8px 0; line-height: 1.3;\">Pencatatan Master Data<\/h4>\n<p style=\"color: #5c5249; font-size: 12px; margin: 0; line-height: 1.5;\">Daftarkan setiap gudang dan produk ke dalam sistem terpusat.<\/p>\n<\/div>\n<div style=\"display: flex; align-items: center; color: #c9a66b; font-size: 24px; font-weight: bold;\">&#x25b6;<\/div>\n<div style=\"flex: 1 1 180px; min-width: 170px; max-width: 200px; background-color: #e8ddc8; border-radius: 10px; padding: 18px 14px; text-align: center; box-sizing: border-box;\">\n<div style=\"width: 42px; height: 42px; line-height: 42px; background-color: #2c2c2c; color: #e8ddc8; border-radius: 50%; font-size: 18px; font-weight: bold; margin: 0 auto 12px auto;\">2<\/div>\n<h4 style=\"color: #2c2c2c; font-size: 14px; margin: 0 0 8px 0; line-height: 1.3;\">Order Masuk<\/h4>\n<p style=\"color: #5c5249; font-size: 12px; margin: 0; line-height: 1.5;\">Pesanan dari toko, website, dan marketplace masuk ke satu sistem.<\/p>\n<\/div>\n<div style=\"display: flex; align-items: center; color: #c9a66b; font-size: 24px; font-weight: bold;\">&#x25b6;<\/div>\n<div style=\"flex: 1 1 180px; min-width: 170px; max-width: 200px; background-color: #e8ddc8; border-radius: 10px; padding: 18px 14px; text-align: center; box-sizing: border-box;\">\n<div style=\"width: 42px; height: 42px; line-height: 42px; background-color: #2c2c2c; color: #e8ddc8; border-radius: 50%; font-size: 18px; font-weight: bold; margin: 0 auto 12px auto;\">3<\/div>\n<h4 style=\"color: #2c2c2c; font-size: 14px; margin: 0 0 8px 0; line-height: 1.3;\">Routing Otomatis<\/h4>\n<p style=\"color: #5c5249; font-size: 12px; margin: 0; line-height: 1.5;\">Sistem mengarahkan order ke gudang terdekat dan paling optimal.<\/p>\n<\/div>\n<div style=\"display: flex; align-items: center; color: #c9a66b; font-size: 24px; font-weight: bold;\">&#x25b6;<\/div>\n<div style=\"flex: 1 1 180px; min-width: 170px; max-width: 200px; background-color: #e8ddc8; border-radius: 10px; padding: 18px 14px; text-align: center; box-sizing: border-box;\">\n<div style=\"width: 42px; height: 42px; line-height: 42px; background-color: #2c2c2c; color: #e8ddc8; border-radius: 50%; font-size: 18px; font-weight: bold; margin: 0 auto 12px auto;\">4<\/div>\n<h4 style=\"color: #2c2c2c; font-size: 14px; margin: 0 0 8px 0; line-height: 1.3;\">Picking &amp; Packing<\/h4>\n<p style=\"color: #5c5249; font-size: 12px; margin: 0; line-height: 1.5;\">Tim gudang mengambil dan mengemas barang sesuai daftar order.<\/p>\n<\/div>\n<div style=\"display: flex; align-items: center; color: #c9a66b; font-size: 24px; font-weight: bold;\">&#x25b6;<\/div>\n<div style=\"flex: 1 1 180px; min-width: 170px; max-width: 200px; background-color: #e8ddc8; border-radius: 10px; padding: 18px 14px; text-align: center; box-sizing: border-box;\">\n<div style=\"width: 42px; height: 42px; line-height: 42px; background-color: #2c2c2c; color: #e8ddc8; border-radius: 50%; font-size: 18px; font-weight: bold; margin: 0 auto 12px auto;\">5<\/div>\n<h4 style=\"color: #2c2c2c; font-size: 14px; margin: 0 0 8px 0; line-height: 1.3;\">Pengiriman &amp; Update Stok<\/h4>\n<p style=\"color: #5c5249; font-size: 12px; margin: 0; line-height: 1.5;\">Barang dikirim, stok tiap gudang otomatis tersinkronisasi.<\/p>\n<\/div>\n<\/div>\n<div style=\"text-align: center; margin-top: 22px; padding-top: 18px; border-top: 1px solid #4A4A4A;\">\n<p style=\"color: #b8ac93; font-size: 12px; margin: 0; font-style: italic;\">Didukung integrasi WMS dan ERP untuk visibilitas stok antar gudang secara real-time<\/p>\n<\/div>\n<\/div>\n<p>Sistem multi warehouse bekerja dengan menghubungkan seluruh gudang ke dalam satu pusat data sehingga setiap aktivitas stok dapat dipantau secara serentak. Berikut alur kerjanya secara umum.<\/p>\n<h3>1. Pencatatan master data gudang dan produk<\/h3>\n<p>Setiap gudang didaftarkan dalam sistem beserta detail lokasi, kapasitas, dan tim operasionalnya. Produk juga diberi kode unik agar dapat dilacak keberadaannya di tiap lokasi.<\/p>\n<h3>2. Order masuk dari berbagai kanal penjualan<\/h3>\n<p>Pesanan dari toko offline, website, maupun marketplace masuk ke satu sistem terpusat. Data pelanggan, alamat pengiriman, dan jumlah produk langsung tercatat sebagai dasar pemrosesan order.<\/p>\n<h3>3. Routing otomatis ke gudang terdekat<\/h3>\n<p>Sistem akan menganalisis lokasi pembeli dan ketersediaan stok di tiap gudang, lalu mengarahkan order ke gudang paling optimal. Pemilihan ini biasanya mempertimbangkan jarak, ongkos kirim, hingga prioritas pengosongan stok.<\/p>\n<h3>4. Pengambilan dan pengemasan barang<\/h3>\n<p>Tim gudang menerima notifikasi order dan melakukan picking sesuai daftar barang. Status pengemasan diperbarui di sistem agar tim lain dapat memantau progresnya secara real-time.<\/p>\n<h3>5. Pengiriman dan update stok otomatis<\/h3>\n<p>Setelah barang dikirim, sistem otomatis mengurangi jumlah stok di gudang asal dan mencatat status pengiriman. Apabila stok mendekati batas minimum, sistem dapat memicu transfer dari gudang lain atau pengajuan pembelian ulang.<\/p>\n<h2><strong>Perbedaan Multi Warehouse dan Single Warehouse<\/strong><\/h2>\n<p>Memahami perbedaan keduanya membantu bisnis memilih strategi pengelolaan stok yang sesuai dengan skalanya.<\/p>\n<table style=\"width: 100%; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 15px; margin: 20px 0; border: 1px solid #d32f2f;\">\n<thead>\n<tr style=\"background-color: #d32f2f; color: #ffffff;\">\n<th style=\"padding: 12px 15px; text-align: left; border: 1px solid #d32f2f;\">Aspek<\/th>\n<th style=\"padding: 12px 15px; text-align: left; border: 1px solid #d32f2f;\">Single Warehouse<\/th>\n<th style=\"padding: 12px 15px; text-align: left; border: 1px solid #d32f2f;\">Multi Warehouse<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"background-color: #ffffff; color: #333333;\">\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0; font-weight: bold;\">Jumlah lokasi gudang<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Satu lokasi terpusat<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Dua atau lebih lokasi tersebar<\/td>\n<\/tr>\n<tr style=\"background-color: #ffffff; color: #333333;\">\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0; font-weight: bold;\">Kecepatan pengiriman<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Bergantung jarak dari pusat<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Lebih cepat karena dekat konsumen<\/td>\n<\/tr>\n<tr style=\"background-color: #ffffff; color: #333333;\">\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0; font-weight: bold;\">Risiko stockout<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Lebih tinggi jika gudang bermasalah<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Lebih rendah karena ada cadangan lokasi<\/td>\n<\/tr>\n<tr style=\"background-color: #ffffff; color: #333333;\">\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0; font-weight: bold;\">Biaya logistik<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Hemat di awal, mahal saat ekspansi<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Investasi besar, hemat jangka panjang<\/td>\n<\/tr>\n<tr style=\"background-color: #ffffff; color: #333333;\">\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0; font-weight: bold;\">Kompleksitas operasional<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Sederhana, mudah dikontrol<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Kompleks, butuh sistem terintegrasi<\/td>\n<\/tr>\n<tr style=\"background-color: #ffffff; color: #333333;\">\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0; font-weight: bold;\">Skala bisnis ideal<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">UMKM atau bisnis lokal<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Bisnis multi-cabang skala nasional<\/td>\n<\/tr>\n<tr style=\"background-color: #ffffff; color: #333333;\">\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0; font-weight: bold;\">Kebutuhan teknologi<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">Manual atau aplikasi sederhana<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #e0e0e0;\">WMS atau ERP dengan multi-location<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><strong>Contoh Penerapan Multi Warehouse per Industri<\/strong><\/h2>\n<p><span id=\"2\">Penerapan multi warehouse menyesuaikan karakter produk, volume order, dan sebaran konsumen di tiap industri. Berikut dua contoh dengan studi kasus perusahaan nyata di Indonesia.<\/span><\/p>\n<h3>1. Industri E-commerce: Blibli<\/h3>\n<p>Blibli mengoperasikan 13 gudang dan 19 distribution hub yang tersebar di berbagai kota, dengan fasilitas terbesar seluas 100.000 m\u00b2 di Marunda, Bekasi. Jaringan ini memungkinkan order diproses dari gudang terdekat dengan pembeli, sehingga waktu pengiriman lebih singkat dan ongkos kirim lebih efisien.<\/p>\n<p>Sistem multi warehouse juga menjadi pondasi layanan Fulfillment by Blibli (FBB) bagi seller yang menitipkan stoknya untuk diproses langsung saat order masuk.<\/p>\n<h3>2. Industri FMCG: Unilever Indonesia<\/h3>\n<p>Unilever Indonesia memiliki Mega Distribution Centre seluas 80.000 m\u00b2 di Cibitung yang didukung sembilan pabrik di Cikarang dan Rungkut Surabaya, serta jaringan lebih dari 800 distributor independen di seluruh Indonesia.<\/p>\n<p>Karena produk FMCG memiliki perputaran tinggi, sistem multi warehouse berperan menjaga ketersediaan stok di tiap titik penjualan. Distribusi yang tersinkronisasi membuat replenishment ke pasar tradisional maupun modern berjalan stabil dan tepat waktu.<\/p>\n<h2><strong>Sistem Pendukung Pengelolaan Multi Warehouse<\/strong><\/h2>\n<p><span id=\"3\">Pengelolaan multi warehouse sulit berjalan optimal tanpa dukungan sistem yang menyatukan data antar lokasi. Teknologi inilah yang memastikan setiap pergerakan stok tercatat akurat dan dapat diakses kapan saja.<\/span><\/p>\n<h3>1. Warehouse Management System (WMS)<\/h3>\n<p>WMS mengelola operasional harian di tiap gudang seperti penerimaan barang, picking, packing, hingga stock opname. Sistem ini memberi visibilitas posisi stok, status order, dan kinerja tim di setiap lokasi.<\/p>\n<h3>2. Enterprise Resource Planning (ERP)<\/h3>\n<p>ERP menghubungkan data multi warehouse dengan modul lain seperti penjualan, pembelian, dan akuntansi. Integrasi ini memudahkan manajemen melihat dampak pergerakan stok terhadap arus kas dan profitabilitas bisnis secara menyeluruh.<\/p>\n<h2><strong>Kesimpulan<\/strong><\/h2>\n<p>Penerapan multi warehouse menjadi langkah strategis bagi bisnis yang ingin memperluas distribusi sekaligus menjaga kecepatan pengiriman. Dengan stok yang tersebar di lokasi tepat, perusahaan dapat memangkas ongkos logistik, mengurangi risiko stockout, dan menghadirkan pengalaman belanja yang lebih cepat bagi pelanggan.<\/p>\n<p>Keberhasilan sistem ini tidak lepas dari teknologi pendukungnya. WMS dan ERP berperan menjaga data stok tetap akurat, mengotomasi alur order, serta menghubungkan operasional gudang dengan modul bisnis lain seperti penjualan, pembelian, dan akuntansi.<\/p>\n<p>Ajukan <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">konsultasi gratis<\/a> untuk mendapatkan rekomendasi solusi multi warehouse yang sesuai dengan skala dan kebutuhan bisnis Anda.<\/p>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/id\/warehouse-management-system?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Ware-Management-Desktop-Resize.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Ware-Management-Desktop-Resize.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/Ware-Management-mobile.webp\" alt=\"WarehouseManagement\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/span><\/p>\n<h2><strong>Pertanyaan Seputar Apa itu Multi Warehouse <\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa perbedaan ERP dan WMS?<\/strong><\/summary>\n<p>Perbedaan utamanya terletak pada cakupan: ERP mengintegrasikan seluruh fungsi bisnis dalam satu sistem, sedangkan WMS dirancang khusus untuk operasional gudang dan inventaris. ERP menawarkan fitur lintas departemen, sementara WMS fokus pada efisiensi penyimpanan dan distribusi barang.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa saja empat jenis WMS?<\/strong><\/summary>\n<p>Empat jenis Warehouse Management System (WMS) yang paling umum digunakan adalah WMS mandiri, WMS berbasis cloud, modul WMS dalam ERP, dan modul Supply Chain Execution (SCE). Pemilihan jenis WMS yang tepat sangat bergantung pada skala operasional, kebutuhan integrasi, serta strategi rantai pasok perusahaan Anda.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa contoh data warehouse?<\/strong><\/summary>\n<p>Data warehouse adalah sistem penyimpanan data terpusat yang mengumpulkan informasi dari berbagai sumber\u2014seperti transaksi, CRM, dan log\u2014untuk kebutuhan analisis dan pelaporan. Penerapannya dapat dijumpai di e-commerce (analisis tren penjualan), perbankan (deteksi penipuan), ritel (<a href=\"https:\/\/www.hashmicro.com\/id\/blog\/manajemen-pergudangan-dan-manajemen-stok\/\">manajemen inventaris<\/a>), hingga layanan kesehatan (rekam medis). Tools yang umum digunakan antara lain Amazon Redshift, Google BigQuery, dan Microsoft Azure.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Penerapan sistem multi warehouse kini menjadi langkah strategis bagi pelaku usaha yang ingin memperluas jangkauan distribusi di Indonesia. Berdasarkan laporan Colliers Quarterly Property Market Report Q1 2026, tingkat hunian gudang modern di Greater Jakarta sudah menyentuh\u00a095,8%. Multi warehouse adalah konsep pengelolaan beberapa gudang di lokasi berbeda dalam satu sistem terintegrasi. Pendekatan ini memungkinkan stok berada [&hellip;]<\/p>\n","protected":false},"author":233,"featured_media":193115,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[796],"tags":[],"class_list":{"0":"post-193033","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-warehouse"},"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>Multi Warehouse: Pengertian, Cara Kerja &amp; Penerapannya<\/title>\n<meta name=\"description\" content=\"Multi warehouse adalah sistem pengelolaan beberapa gudang dalam satu platform terintegrasi. Pelajari fungsi, manfaat, dan cara kerjanya.\" \/>\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\/multi-warehouse-adalah\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Multi Warehouse: Pengertian, Cara Kerja &amp; Penerapannya\" \/>\n<meta property=\"og:description\" content=\"Multi warehouse adalah sistem pengelolaan beberapa gudang dalam satu platform terintegrasi. Pelajari fungsi, manfaat, dan cara kerjanya.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/\" \/>\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=\"2026-04-29T09:45:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/multi-warehouse-adalah.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=\"Aulia Kholqiana\" \/>\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=\"Aulia Kholqiana\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 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\/multi-warehouse-adalah\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/\"},\"author\":{\"name\":\"Aulia Kholqiana\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/993108c3b814f42f9da45e1a7f2896f6\"},\"headline\":\"Multi Warehouse: Pengertian, Cara Kerja &#038; Penerapannya\",\"datePublished\":\"2026-04-29T09:45:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/\"},\"wordCount\":1364,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/multi-warehouse-adalah.webp\",\"articleSection\":[\"Warehouse\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/\",\"name\":\"Multi Warehouse: Pengertian, Cara Kerja & Penerapannya\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/multi-warehouse-adalah.webp\",\"datePublished\":\"2026-04-29T09:45:57+00:00\",\"description\":\"Multi warehouse adalah sistem pengelolaan beberapa gudang dalam satu platform terintegrasi. Pelajari fungsi, manfaat, dan cara kerjanya.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/multi-warehouse-adalah.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/multi-warehouse-adalah.webp\",\"width\":1200,\"height\":675,\"caption\":\"multi-warehouse-adalah\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Multi Warehouse: Pengertian, Cara Kerja &#038; Penerapannya\"}]},{\"@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\/993108c3b814f42f9da45e1a7f2896f6\",\"name\":\"Aulia Kholqiana\",\"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\/02\/cropped-WhatsApp-Image-2025-02-03-at-10.16.43-96x96.jpeg\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/cropped-WhatsApp-Image-2025-02-03-at-10.16.43-96x96.jpeg\",\"caption\":\"Aulia Kholqiana\"},\"description\":\"Aulia telah menjadi spesialis yang sudah berpengalaman selama lebih dari 2 tahun di bidang Human Resource Management (HRM). Penulisan artikel berfokus pada pengelolaan siklus hidup karyawan, penilaian kinerja, penggunaan sistem HRIS, dan program pengembangan karyawan, sehingga dapat memberikan solusi bagi peningkatan performa perusahaan.\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/author\/aulia-kholqiana\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Multi Warehouse: Pengertian, Cara Kerja & Penerapannya","description":"Multi warehouse adalah sistem pengelolaan beberapa gudang dalam satu platform terintegrasi. Pelajari fungsi, manfaat, dan cara kerjanya.","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\/multi-warehouse-adalah\/","og_locale":"id_ID","og_type":"article","og_title":"Multi Warehouse: Pengertian, Cara Kerja & Penerapannya","og_description":"Multi warehouse adalah sistem pengelolaan beberapa gudang dalam satu platform terintegrasi. Pelajari fungsi, manfaat, dan cara kerjanya.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2026-04-29T09:45:57+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/multi-warehouse-adalah.webp","type":"image\/webp"}],"author":"Aulia Kholqiana","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Aulia Kholqiana","Estimasi waktu membaca":"8 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/"},"author":{"name":"Aulia Kholqiana","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/993108c3b814f42f9da45e1a7f2896f6"},"headline":"Multi Warehouse: Pengertian, Cara Kerja &#038; Penerapannya","datePublished":"2026-04-29T09:45:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/"},"wordCount":1364,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/multi-warehouse-adalah.webp","articleSection":["Warehouse"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/","name":"Multi Warehouse: Pengertian, Cara Kerja & Penerapannya","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/multi-warehouse-adalah.webp","datePublished":"2026-04-29T09:45:57+00:00","description":"Multi warehouse adalah sistem pengelolaan beberapa gudang dalam satu platform terintegrasi. Pelajari fungsi, manfaat, dan cara kerjanya.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/multi-warehouse-adalah.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/multi-warehouse-adalah.webp","width":1200,"height":675,"caption":"multi-warehouse-adalah"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/multi-warehouse-adalah\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Multi Warehouse: Pengertian, Cara Kerja &#038; Penerapannya"}]},{"@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\/993108c3b814f42f9da45e1a7f2896f6","name":"Aulia Kholqiana","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\/02\/cropped-WhatsApp-Image-2025-02-03-at-10.16.43-96x96.jpeg","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/cropped-WhatsApp-Image-2025-02-03-at-10.16.43-96x96.jpeg","caption":"Aulia Kholqiana"},"description":"Aulia telah menjadi spesialis yang sudah berpengalaman selama lebih dari 2 tahun di bidang Human Resource Management (HRM). Penulisan artikel berfokus pada pengelolaan siklus hidup karyawan, penilaian kinerja, penggunaan sistem HRIS, dan program pengembangan karyawan, sehingga dapat memberikan solusi bagi peningkatan performa perusahaan.","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/aulia-kholqiana\/"}]}},"focus_keyword":"multi warehouse adalah","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/193033","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\/233"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=193033"}],"version-history":[{"count":5,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/193033\/revisions"}],"predecessor-version":[{"id":193119,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/193033\/revisions\/193119"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/193115"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=193033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=193033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=193033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}