{"id":162921,"date":"2025-05-27T08:47:10","date_gmt":"2025-05-27T01:47:10","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=162921"},"modified":"2025-10-30T08:42:27","modified_gmt":"2025-10-30T01:42:27","slug":"supply-chain-resilience","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/","title":{"rendered":"Supply Chain Resilience: Definisi dan Strategi Penerapan"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Gangguan rantai pasok bisa terjadi kapan saja dengan bermulai dari krisis global, keterlambatan bahan baku, hingga perubahan permintaan pasar yang tak terduga. Ketika rantai pasok terganggu, bisnis sering kali harus menanggung kerugian besar, kehilangan pelanggan, bahkan kehilangan daya saing.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Di tengah ketidakpastian ini, membangun supply chain resilience menjadi kunci untuk bertahan dan tumbuh. Bukan hanya tentang bertahan dari krisis, tetapi juga tentang kemampuan bisnis untuk beradaptasi cepat dan pulih lebih kuat dari sebelumnya.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Artikel ini akan membahas secara menyeluruh apa itu supply chain resilience, tantangan umum yang dihadapi perusahaan, dan yang paling penting adalah strategi serta langkah konkret yang bisa Anda terapkan untuk memperkuat ketahanan rantai pasok bisnis Anda.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\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<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\"><span style=\"font-weight: 400;\"><a href=\"#em\">Supply chain resilience adalah<\/a> kemampuan rantai pasok suatu bisnis untuk mengantisipasi, merespons, dan pulih dari gangguan secara efektif.<\/span><\/li>\n<li aria-level=\"1\"><span style=\"font-weight: 400;\"><a href=\"#slim\">Membangun supply chain<\/a> yang tangguh bukan hanya soal bertahan saat krisis, tetapi juga soal menciptakan nilai tambah bagi bisnis secara berkelanjutan.<\/span><\/li>\n<li aria-level=\"1\">Implementasi sistem <span style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/id\/supply-chain-management\">Supply Chain Management HashMicro<\/a> adalah solusi efektif untuk membangun strategi rantai pasok yang efektif.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">\u00a0<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><b><span id=\"em\">Apa Itu Supply Chain Resilience?<\/span><\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Supply chain resilience adalah kemampuan rantai pasok suatu bisnis untuk mengantisipasi, merespons, dan pulih dari gangguan secara efektif. Artinya, sistem rantai pasok tetap bisa berjalan atau segera kembali normal meskipun terjadi krisis atau perubahan mendadak.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Konsep ini mencakup kemampuan adaptasi terhadap risiko seperti bencana alam, keterlambatan pengiriman, atau fluktuasi permintaan. Supply chain yang tangguh tidak hanya bereaksi terhadap gangguan, tetapi juga mempersiapkan diri sejak awal dengan sistem dan strategi yang fleksibel.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Tujuannya adalah menjaga kelangsungan operasional, memenuhi permintaan pelanggan, dan meminimalkan kerugian. Dengan membangun supply chain resilience, perusahaan bisa <span id=\"slim\">menjaga daya saing bahkan dalam situasi paling tidak menentu.<\/span><\/span><\/p>\n<h2><b>Manfaat Supply Chain Resilience<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Membangun supply chain yang tangguh bukan hanya soal bertahan saat krisis, tetapi juga soal menciptakan nilai tambah bagi bisnis secara berkelanjutan. Dengan sistem rantai pasok yang responsif dan adaptif, perusahaan dapat meraih banyak keuntungan strategis dalam jangka pendek maupun panjang.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Berikut ini adalah enam manfaat utama yang bisa Anda dapatkan dengan menerapkan supply chain resilience secara efektif:<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1. Meminimalkan gangguan operasional<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Perusahaan dapat menjaga kelancaran operasional meskipun menghadapi krisis seperti bencana alam atau keterlambatan logistik. Sistem yang tangguh membantu bisnis tetap berjalan tanpa harus menghentikan proses produksi atau distribusi.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">2. Meningkatkan kepuasan pelanggan<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Bisnis mampu memenuhi pesanan tepat waktu karena sistem rantai pasok tetap responsif dalam kondisi apa pun. Pelanggan pun merasa puas karena mendapatkan produk sesuai harapan tanpa penundaan.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">3. Mengurangi risiko kerugian finansial<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Perusahaan bisa menghindari pemborosan biaya akibat stok kosong, kelebihan barang, atau keterlambatan pengiriman. Dengan sistem yang adaptif, keuangan bisnis tetap terkendali meskipun terjadi gangguan.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">4. Meningkatkan daya saing<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Perusahaan dapat merespons perubahan pasar lebih cepat dibandingkan kompetitor. Kecepatan dan fleksibilitas ini memberikan keunggulan dalam memenuhi kebutuhan pelanggan.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">5. Mempercepat pemulihan dari krisis<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Setelah menghadapi gangguan, perusahaan bisa segera melanjutkan operasional tanpa hambatan besar. Waktu pemulihan yang singkat membantu menjaga momentum bisnis tetap stabil.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">6. Mendukung pertumbuhan jangka panjang<\/span><\/h3>\n<p>Bisnis dapat merencanakan ekspansi dengan percaya diri berkat <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-visibility-scv\/\">supply chain visibility (SCV)<\/a> yang kuat. Dengan visibilitas ini, perusahaan dapat memantau ketahanan rantai pasok secara real time dan merespons risiko lebih cepat. Ketahanan tersebut menjadi dasar pertumbuhan berkelanjutan.<\/p>\n<h2><b>Tantangan Umum dalam Membangun Supply Chain Resilience<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Meskipun resilient supply chain menawarkan banyak manfaat bagi bisnis, membangunnya bukanlah hal yang mudah. Perusahaan harus menghadapi berbagai tantangan internal maupun eksternal yang sering kali menghambat proses penguatan rantai pasok.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Berikut adalah beberapa tantangan yang umum dihadapi saat\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1. Keterbatasan data dan visibilitas<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Banyak perusahaan masih kesulitan mengakses data real-time dari seluruh rantai pasok. Kurangnya visibilitas ini membuat mereka lambat merespons perubahan atau gangguan yang muncul.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">2. Ketergantungan pada pemasok tunggal<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Perusahaan yang terlalu mengandalkan satu pemasok menghadapi risiko besar jika pemasok tersebut gagal memenuhi permintaan. Ketergantungan ini mengurangi fleksibilitas saat terjadi gangguan pasokan.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">3. Kurangnya integrasi sistem<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Beberapa perusahaan menjalankan proses rantai pasok secara terpisah antar divisi atau partner. Hal ini menciptakan hambatan koordinasi dan mengurangi kecepatan pengambilan keputusan.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">4. Biaya implementasi yang tinggi<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Investasi dalam teknologi, pelatihan, dan pengembangan sistem sering kali membutuhkan biaya besar di awal. Banyak bisnis menunda upaya membangun resiliensi karena fokus pada efisiensi jangka pendek.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">5. Resistensi terhadap perubahan<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Karyawan atau manajemen sering menolak perubahan sistem karena merasa nyaman dengan cara lama. Resistensi ini memperlambat proses adopsi strategi baru yang dibutuhkan untuk memperkuat rantai pasok.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">6. Ketidakpastian eksternal yang sulit dikendalikan<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Faktor seperti fluktuasi harga bahan baku, perubahan regulasi, atau krisis global bisa terjadi tanpa peringatan. Perusahaan harus terus menyesuaikan strategi agar tetap tangguh menghadapi hal-hal di luar kendali mereka.<\/span><\/p>\n<h2><b>8 Strategi Efektif untuk Menerapkan Supply Chain Resilience<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Setelah memahami berbagai tantangan umum dalam membangun supply chain resilience, Anda mungkin bertanya <\/span><i><span style=\"font-weight: 400;\">apakah sesulit itu untuk diterapkan?<\/span><\/i><span style=\"font-weight: 400;\"> Jawabannya tentu tidak. Dengan strategi yang tepat dan langkah konkret, perusahaan bisa membangun resilient supply chain yang adaptif dan tahan terhadap berbagai jenis gangguan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Berikut ini delapan strategi efektif yang bisa Anda terapkan untuk memperkuat ketahanan rantai pasok bisnis Anda:<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1. Diversifikasi pemasok<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Perusahaan sebaiknya tidak bergantung pada satu pemasok saja untuk bahan baku penting. Dengan mendiversifikasi sumber, Anda bisa menghindari risiko besar saat terjadi gangguan pada salah satu pihak. Strategi ini menjadi fondasi penting dalam membentuk resilient supply chain.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">2. Tingkatkan visibilitas rantai pasok<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Perusahaan perlu memantau aliran barang dan informasi secara real-time dari hulu ke hilir. Visibilitas penuh memungkinkan pengambilan keputusan cepat dan akurat dalam menghadapi perubahan pasar. Inilah salah satu pilar dalam membangun supply chain resilience yang solid.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">3. Susun rencana kontinjensi<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Jangan tunggu krisis datang baru merespons, Anda perlu mempersiapkan skenario alternatif sejak awal. Rencana kontinjensi membantu bisnis tetap beroperasi normal saat menghadapi gangguan besar. Dengan ini, Anda bisa mempertahankan kestabilan dalam resilient supply chain Anda.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">4. Perkuat hubungan dengan mitra bisnis<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Komunikasi terbuka dan kolaborasi jangka panjang dengan pemasok serta distributor memperkuat keandalan sistem. Hubungan yang sehat mendukung koordinasi saat krisis dan mempercepat pemulihan. Strategi ini penting dalam menjaga ritme resilient supply chain Anda.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">5. Otomatiskan proses dengan sistem supply chain management<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Teknologi memainkan peran penting dalam membangun ketahanan rantai pasok. Menggunakan<\/span><a href=\"https:\/\/www.hashmicro.com\/id\/supply-chain-management\"><span style=\"font-weight: 400;\"> sistem Supply Chain Management seperti milik HashMicro <\/span><\/a><span style=\"font-weight: 400;\">membantu perusahaan mengelola logistik, pengadaan, dan distribusi secara lebih efisien dan real-time.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Kalkulasikan kebutuhan perusahaan Anda dengan cara klik banner skema harga di bawah ini.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><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><\/span><\/p>\n<p>Ingin mempelajari lebih lanjut mengenai supply chain sistem? Baca artikel kami sebelumnya yang memberikan rekomendasi <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/5-rekomendasi-supply-chain-management-system-terbaik-di-indonesia\/\">supply chain management system terbaik<\/a> dengan klik di sini.<\/p>\n<h3><span style=\"font-weight: 400;\">6. Kembangkan jaringan distribusi yang fleksibel<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Perusahaan harus memiliki lebih dari satu jalur distribusi untuk menjaga kontinuitas pengiriman. Dengan sistem yang fleksibel, Anda bisa menyesuaikan arah distribusi saat terjadi gangguan. Ini akan memperkuat struktur dari resilient supply chain yang Anda bangun.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">7. Lakukan evaluasi risiko secara berkala<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Identifikasi potensi risiko di tiap titik dalam rantai pasok dan perbarui mitigasinya secara rutin. Evaluasi berkala membuat sistem Anda lebih responsif terhadap ancaman yang terus berubah. Langkah ini akan menjaga keberlanjutan supply chain resilience dalam jangka panjang.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">8. Libatkan teknologi prediktif dan analitik<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Gunakan data historis dan teknologi analitik untuk memprediksi fluktuasi permintaan, potensi keterlambatan, dan perubahan pasar. Strategi berbasis data ini membantu perusahaan lebih siap dan menghindari kejutan yang dapat mengguncang operasional. Dengan begitu, Anda bisa memastikan resilient supply chain tetap berjalan secara optimal.<\/span><\/p>\n<h2><b>Langkah-Langkah Praktis untuk Meningkatkan Supply Chain Resilience<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Setelah memahami strategi yang bisa diterapkan untuk membangun resilient supply chain, sekarang saatnya fokus pada langkah-langkah praktis yang bisa langsung Anda lakukan. Langkah ini bersifat operasional dan dapat dimulai bahkan tanpa perubahan besar dalam struktur perusahaan.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Berikut adalah lima tindakan konkret yang dapat meningkatkan supply chain resilience secara bertahap namun signifikan:<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1. Audit rantai pasok secara menyeluruh<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Lakukan pemetaan detail terhadap seluruh rantai pasok Anda\u2014dari pemasok, manufaktur, hingga distribusi. Kenali titik rawan dan cari tahu area mana yang paling rentan terhadap gangguan.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">2. Tinjau dan perbarui kontrak pemasok<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Periksa kembali isi kontrak dengan pemasok dan mitra logistik Anda. Tambahkan klausul fleksibilitas atau backup delivery untuk memastikan layanan tetap berjalan saat kondisi tidak normal.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">3. Latih tim untuk hadapi gangguan<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Berikan pelatihan rutin kepada tim operasional tentang prosedur darurat, manajemen risiko, dan penanganan situasi krisis. Tim yang siap secara mental dan teknis akan membantu mempercepat respons saat gangguan terjadi.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">4. Siapkan dashboard monitoring real-time<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Gunakan dashboard yang menampilkan status pengiriman, stok, dan lead time secara langsung. Pemantauan yang terpusat membantu Anda mengambil keputusan cepat sebelum gangguan berkembang jadi masalah besar.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">5. Terapkan buffer stock untuk produk kritis<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Identifikasi barang atau bahan baku dengan risiko tinggi dan simpan stok cadangan dalam jumlah aman. <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/buffer-stock\/\">Buffer stock<\/a> ini bisa menyelamatkan operasional ketika pasokan terganggu tanpa harus menghentikan produksi.<\/span><\/p>\n<h2><b>HashMicro sebagai Pilar Utama dalam Mewujudkan Resilient Supply Chain yang Efektif\u00a0<\/b><\/h2>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Screenshot-2025-05-30-083127.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-162923 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Screenshot-2025-05-30-083127.png\" alt=\"strategi rantai pasok\" width=\"635\" height=\"379\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Screenshot-2025-05-30-083127.png 635w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Screenshot-2025-05-30-083127-300x179.png 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Screenshot-2025-05-30-083127-150x90.png 150w\" sizes=\"auto, (max-width: 635px) 100vw, 635px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Sistem <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-management\/\">Supply Chain Management<\/a> HashMicro adalah solusi komprehensif yang dirancang untuk membantu perusahaan mengelola rantai pasok secara efisien sekaligus membangun <\/span><i><span style=\"font-weight: 400;\">supply chain resilience<\/span><\/i><span style=\"font-weight: 400;\"> yang kuat.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sistem ini menyediakan dashboard pemantauan real-time yang memungkinkan perusahaan mengawasi pergerakan barang, stok, dan pengiriman secara langsung tanpa jeda. Dengan teknologi analitik canggih, pengguna bisa menganalisis tren, mengidentifikasi potensi risiko, dan mengambil keputusan lebih cepat berdasarkan data yang akurat.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Selain itu, HashMicro juga membantu perusahaan menyusun rencana kontinjensi secara sistematis melalui fitur simulasi skenario dan otomatisasi proses. Ketika gangguan terjadi, perusahaan dapat langsung menjalankan rencana alternatif tanpa menghentikan operasi.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Keunggulan lainnya terletak pada skalabilitas sistem, sehingga perusahaan bisa menyesuaikan fungsi dan modul sesuai kebutuhan, baik untuk bisnis kecil maupun enterprise berskala besar. Dengan semua kemampuan ini, HashMicro menjadi pilihan ideal untuk membangun <\/span><i><span style=\"font-weight: 400;\">resilient supply chain<\/span><\/i><span style=\"font-weight: 400;\"> yang adaptif, responsif, dan siap menghadapi ketidakpastian.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Berikut adalah fitur-fitur yang ditawarkan oleh sistem HashMicro:\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Inventory Management: <\/b><span style=\"font-weight: 400;\">Memungkinkan perusahaan menjaga ketersediaan stok secara optimal agar tetap siap menghadapi lonjakan permintaan atau gangguan pasokan.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Procurement Management: <\/b><span style=\"font-weight: 400;\">Memberikan fleksibilitas dalam pengadaan dengan mengatur jadwal dan negosiasi secara efisien, sehingga perusahaan tetap bisa beroperasi meski terjadi gangguan dari sisi pemasok.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Shipment Tracking: <\/b><span style=\"font-weight: 400;\">Menyediakan transparansi real-time atas pengiriman, sehingga perusahaan dapat merespons lebih cepat jika terjadi keterlambatan atau hambatan logistik.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Planning &amp; Forecasting Management: <\/b><span style=\"font-weight: 400;\">Membantu perusahaan memprediksi kebutuhan dengan data yang akurat, sehingga keputusan penting bisa diambil sebelum risiko muncul.<\/span><\/li>\n<\/ul>\n<h2><b>Kesimpulan\u00a0<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Membangun <\/span><i><span style=\"font-weight: 400;\">supply chain resilience<\/span><\/i><span style=\"font-weight: 400;\"> bukan lagi pilihan, tetapi kebutuhan strategis di tengah ketidakpastian global dan gangguan operasional yang bisa terjadi kapan saja. Dengan sistem rantai pasok yang tangguh, perusahaan dapat menjaga stabilitas, merespons risiko lebih cepat, dan tetap memenuhi kebutuhan pelanggan secara efisien.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">HashMicro hadir sebagai solusi ideal untuk mendukung terciptanya <\/span><i><span style=\"font-weight: 400;\">resilient supply chain<\/span><\/i><span style=\"font-weight: 400;\"> melalui sistem <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/supply-chain-management\"><span style=\"font-weight: 400;\">Supply Chain Management<\/span><\/a><span style=\"font-weight: 400;\"> yang terintegrasi, real-time, dan berbasis data. Dengan fitur-fitur canggih seperti inventory monitoring, shipment tracking, hingga demand forecasting, HashMicro membantu bisnis menghadapi tantangan dengan lebih adaptif dan terukur.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Coba <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/?medium=web-form-header\"><span style=\"font-weight: 400;\">demo gratis<\/span><\/a><span style=\"font-weight: 400;\"> sekarang dan temukan bagaimana HashMicro dapat memperkuat rantai pasok bisnis Anda dari hulu ke hilir.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/id\/supply-chain-management?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/11.-Supply-Chain-Management-Software-Web.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/11.-Supply-Chain-Management-Software-Web.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/11.-Supply-Chain-Management-Software-Mobile.webp\" alt=\"SupplyChainManagement\" 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 Supply Chain Resilience<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><span style=\"background-color: #e8e8e8;\"><strong>Apa itu Supply Chain Resilience?<\/strong><\/span><\/summary>\n<p>Supply chain resilience adalah kemampuan rantai pasok suatu bisnis untuk bertahan, beradaptasi, dan pulih dengan cepat dari gangguan atau perubahan yang tidak terduga.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><span style=\"background-color: #e8e8e8;\"><strong>Mengapa Supply Chain Resilience penting bagi bisnis?<\/strong><\/span><\/summary>\n<p>Supply chain resilience penting bagi bisnis karena membantu menjaga kelangsungan operasional, mengurangi risiko kerugian, dan mempertahankan kepuasan pelanggan saat terjadi gangguan.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><span style=\"background-color: #e8e8e8;\"><strong>Apa saja contoh gangguan yang bisa memengaruhi rantai pasok?<\/strong><\/span><\/summary>\n<p>Contoh gangguan yang bisa memengaruhi rantai pasok meliputi bencana alam, keterlambatan pengiriman, fluktuasi permintaan, krisis geopolitik, dan kelangkaan bahan baku.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><span style=\"background-color: #e8e8e8;\"><strong>Bagaimana cara membangun Supply Chain Resilience?<\/strong><\/span><\/summary>\n<p>Perusahaan dapat membangun supply chain resilience dengan mendiversifikasi pemasok, meningkatkan visibilitas data, menggunakan teknologi prediktif, dan menyiapkan rencana kontinjensi.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Gangguan rantai pasok bisa terjadi kapan saja dengan bermulai dari krisis global, keterlambatan bahan baku, hingga perubahan permintaan pasar yang tak terduga. Ketika rantai pasok terganggu, bisnis sering kali harus menanggung kerugian besar, kehilangan pelanggan, bahkan kehilangan daya saing. Di tengah ketidakpastian ini, membangun supply chain resilience menjadi kunci untuk bertahan dan tumbuh. Bukan hanya [&hellip;]<\/p>\n","protected":false},"author":160,"featured_media":162922,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1234],"tags":[],"class_list":{"0":"post-162921","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-supply-chain"},"acf":{"post_reviewer":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.1 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Supply Chain Resilience: Definisi dan Strategi Penerapan<\/title>\n<meta name=\"description\" content=\"Supply chain resilience adalah kemampuan rantai pasok suatu bisnis untuk mengantisipasi, merespons, dan pulih dari gangguan secara efektif.\" \/>\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\/supply-chain-resilience\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Supply Chain Resilience: Definisi dan Strategi Penerapan\" \/>\n<meta property=\"og:description\" content=\"Supply chain resilience adalah kemampuan rantai pasok suatu bisnis untuk mengantisipasi, merespons, dan pulih dari gangguan secara efektif.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/\" \/>\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-05-27T01:47:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-30T01:42:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Supply-Chain-Resilience-Definisi-dan-Strategi-Penerapannya-1024x512.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jessica Wijaya\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:site\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jessica Wijaya\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/\"},\"author\":{\"name\":\"Jessica Wijaya\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/4d83ca1a7056c0a44f813f8721086980\"},\"headline\":\"Supply Chain Resilience: Definisi dan Strategi Penerapan\",\"datePublished\":\"2025-05-27T01:47:10+00:00\",\"dateModified\":\"2025-10-30T01:42:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/\"},\"wordCount\":1848,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Supply-Chain-Resilience-Definisi-dan-Strategi-Penerapannya-scaled.png\",\"articleSection\":[\"Supply Chain\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/\",\"name\":\"Supply Chain Resilience: Definisi dan Strategi Penerapan\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Supply-Chain-Resilience-Definisi-dan-Strategi-Penerapannya-scaled.png\",\"datePublished\":\"2025-05-27T01:47:10+00:00\",\"dateModified\":\"2025-10-30T01:42:27+00:00\",\"description\":\"Supply chain resilience adalah kemampuan rantai pasok suatu bisnis untuk mengantisipasi, merespons, dan pulih dari gangguan secara efektif.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Supply-Chain-Resilience-Definisi-dan-Strategi-Penerapannya-scaled.png\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Supply-Chain-Resilience-Definisi-dan-Strategi-Penerapannya-scaled.png\",\"width\":2048,\"height\":1024,\"caption\":\"strategi rantai pasok\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/supply-chain-resilience\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Supply Chain Resilience: Definisi dan Strategi Penerapan\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\",\"name\":\"HashMicro Indonesia\",\"description\":\"Blog Software Manajemen Bisnis Indonesia #1\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\",\"name\":\"HashMicro Indonesia\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/hashmicro-logo-blog.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/hashmicro-logo-blog.webp\",\"width\":924,\"height\":121,\"caption\":\"HashMicro Indonesia\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/hashmicro\",\"https:\\\/\\\/x.com\\\/hashmicro\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/4d83ca1a7056c0a44f813f8721086980\",\"name\":\"Jessica Wijaya\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jessica-Wijaya-1-1-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jessica-Wijaya-1-1-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jessica-Wijaya-1-1-96x96.webp\",\"caption\":\"Jessica Wijaya\"},\"description\":\"Selama lebih dari 5 tahun sebagai Senior Content Writer, Jessica telah menulis topik yang mengulas tentang bidang inventory dan warehouse management. Keahliannya mencakup penulisan artikel manajemen stok dan persediaan, perencanaan kebutuhan, multi-warehouse management, dan integrasi sistem digital untuk pengelolaan barang.\",\"sameAs\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/\"],\"gender\":\"Perempuan\",\"knowsAbout\":[\"Inventory\",\"inventory management\",\"manajemen inventaris\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Senior Content Writer\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/author\\\/jessicawijaya\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Supply Chain Resilience: Definisi dan Strategi Penerapan","description":"Supply chain resilience adalah kemampuan rantai pasok suatu bisnis untuk mengantisipasi, merespons, dan pulih dari gangguan secara efektif.","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\/supply-chain-resilience\/","og_locale":"id_ID","og_type":"article","og_title":"Supply Chain Resilience: Definisi dan Strategi Penerapan","og_description":"Supply chain resilience adalah kemampuan rantai pasok suatu bisnis untuk mengantisipasi, merespons, dan pulih dari gangguan secara efektif.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-05-27T01:47:10+00:00","article_modified_time":"2025-10-30T01:42:27+00:00","og_image":[{"width":1024,"height":512,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Supply-Chain-Resilience-Definisi-dan-Strategi-Penerapannya-1024x512.png","type":"image\/png"}],"author":"Jessica Wijaya","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Jessica Wijaya","Estimasi waktu membaca":"11 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/"},"author":{"name":"Jessica Wijaya","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980"},"headline":"Supply Chain Resilience: Definisi dan Strategi Penerapan","datePublished":"2025-05-27T01:47:10+00:00","dateModified":"2025-10-30T01:42:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/"},"wordCount":1848,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Supply-Chain-Resilience-Definisi-dan-Strategi-Penerapannya-scaled.png","articleSection":["Supply Chain"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/","name":"Supply Chain Resilience: Definisi dan Strategi Penerapan","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Supply-Chain-Resilience-Definisi-dan-Strategi-Penerapannya-scaled.png","datePublished":"2025-05-27T01:47:10+00:00","dateModified":"2025-10-30T01:42:27+00:00","description":"Supply chain resilience adalah kemampuan rantai pasok suatu bisnis untuk mengantisipasi, merespons, dan pulih dari gangguan secara efektif.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Supply-Chain-Resilience-Definisi-dan-Strategi-Penerapannya-scaled.png","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/05\/Supply-Chain-Resilience-Definisi-dan-Strategi-Penerapannya-scaled.png","width":2048,"height":1024,"caption":"strategi rantai pasok"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/supply-chain-resilience\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Supply Chain Resilience: Definisi dan Strategi Penerapan"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website","url":"https:\/\/www.hashmicro.com\/id\/blog\/","name":"HashMicro Indonesia","description":"Blog Software Manajemen Bisnis Indonesia #1","publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/id\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization","name":"HashMicro Indonesia","url":"https:\/\/www.hashmicro.com\/id\/blog\/","logo":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp","width":924,"height":121,"caption":"HashMicro Indonesia"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hashmicro","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980","name":"Jessica Wijaya","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","caption":"Jessica Wijaya"},"description":"Selama lebih dari 5 tahun sebagai Senior Content Writer, Jessica telah menulis topik yang mengulas tentang bidang inventory dan warehouse management. Keahliannya mencakup penulisan artikel manajemen stok dan persediaan, perencanaan kebutuhan, multi-warehouse management, dan integrasi sistem digital untuk pengelolaan barang.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"Perempuan","knowsAbout":["Inventory","inventory management","manajemen inventaris"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Senior Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/jessicawijaya\/"}]}},"focus_keyword":"supply chain resilience","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/162921","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=162921"}],"version-history":[{"count":3,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/162921\/revisions"}],"predecessor-version":[{"id":174586,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/162921\/revisions\/174586"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/162922"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=162921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=162921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=162921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}