{"id":144814,"date":"2024-08-16T13:09:05","date_gmt":"2024-08-16T06:09:05","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=144814"},"modified":"2026-03-06T11:04:17","modified_gmt":"2026-03-06T04:04:17","slug":"procurement-planning","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/","title":{"rendered":"Langkah Penting dalam Mengelola Procurement Planning yang Tepat"},"content":{"rendered":"<p>Di balik pengadaan yang rapi, selalu ada perencanaan yang jelas tentang apa yang harus dibeli, kapan dibeli, dan berapa jumlahnya. Procurement planning membantu perusahaan menyusun keputusan tersebut sejak awal agar aktivitas operasional tidak berjalan berdasarkan perkiraan semata.<\/p>\n<p>Dalam prosesnya, tim pengadaan perlu menyatukan banyak informasi, mulai dari kebutuhan unit kerja, ketersediaan stok, hingga batas anggaran. Lead time vendor dan jadwal produksi juga ikut menentukan, supaya pembelian tidak terlalu cepat dan tidak terlambat.<\/p>\n<p>Saat procurement planning dijalankan dengan konsisten, perusahaan lebih mudah menjaga ketersediaan barang, mengontrol biaya, dan menetapkan prioritas pembelian. Dampaknya juga terasa pada evaluasi vendor dan kepatuhan prosedur, karena alurnya terdokumentasi dengan lebih rapi.<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#adalah\"><b>Procurement planning<\/b><\/a><span style=\"font-weight: 400;\"> memastikan kelancaran operasional bisnis dengan mengoptimalkan rencana pembelian perusahaan dan menjaga anggaran perusahaan tetap terkendali.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Procurement planning yang <\/span><a href=\"#penting\"><b>efektif mengurangi risiko pengadaan<\/b><\/a><span style=\"font-weight: 400;\"> dan mendukung pencapaian tujuan bisnis jangka panjang.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><a href=\"#tahap\"><strong>Setiap tahap dalam procurement planning<\/strong><\/a>, dari analisis kebutuhan hingga evaluasi akhir, harus dilakukan dengan cermat untuk memastikan <\/span>efisiensi dan keberhasilan proyek.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\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><span id=\"adalah\">Apa itu Procurement Planning?<\/span><\/strong><\/h2>\n<p>Procurement planning adalah proses merencanakan pengadaan barang dan jasa yang diperlukan untuk operasi bisnis. Proses ini melibatkan identifikasi kebutuhan, perencanaan anggaran, dan pemilihan pemasok yang tepat. Dengan perencanaan yang matang, rencana pembelian perusahaan dapat berjalan lebih efisien dan sesuai dengan anggaran perusahaan.<\/p>\n<p>Procurement planning tidak hanya tentang membeli apa yang dibutuhkan, tetapi juga memastikan waktu dan jumlah yang tepat, serta memastikan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/agile-procurement\/\">proses pengadaan secara cerdas<\/a>. Rencana anggaran yang baik bergantung pada demand forecasting yang akurat, sehingga setiap keputusan pengadaan mendukung tujuan bisnis.<\/p>\n<h2><strong><span id=\"penting\">Mengapa Procurement Planning Penting?<\/span><\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-144817 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/mengapa-procurement-planning-penting.webp\" alt=\"procurement planning\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/mengapa-procurement-planning-penting.webp 1200w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/mengapa-procurement-planning-penting-300x169.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/mengapa-procurement-planning-penting-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/mengapa-procurement-planning-penting-768x432.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/mengapa-procurement-planning-penting-747x420.webp 747w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/mengapa-procurement-planning-penting-150x84.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/mengapa-procurement-planning-penting-696x392.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/mengapa-procurement-planning-penting-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>Procurement planning sangat penting karena memastikan kelancaran operasional dan mendukung strategi bisnis jangka panjang. Perencanaan yang tepat juga berperan dalam <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/software-procurement-pabrik-mesin\/\">optimalisasi operasional produksi pabrik<\/a>, terutama dalam menjaga ketersediaan material dan komponen sesuai kebutuhan. Berikut beberapa alasan mengapa procurement planning menjadi krusial bagi perusahaan:<\/p>\n<h3><strong>1. Menjaga kelancaran operasional<\/strong><\/h3>\n<p>Procurement planning memastikan setiap barang dan jasa yang diperlukan tersedia tepat waktu, sehingga operasi bisnis berjalan tanpa hambatan. Ini juga memungkinkan rencana pembelian perusahaan selaras dengan kebutuhan nyata di lapangan.<\/p>\n<h3><strong>2. Mengoptimalkan anggaran perusahaan<\/strong><\/h3>\n<p>Perencanaan yang baik membantu menyelaraskan budgeting perusahaan dengan pengeluaran aktual, sehingga anggaran perusahaan dapat digunakan secara efisien. Dengan begitu, perusahaan dapat menghindari pemborosan dan mengalokasikan dana ke area yang lebih strategis.<\/p>\n<h3><strong>3. Meminimalkan risiko pengadaan<\/strong><\/h3>\n<p>Tanpa procurement planning yang matang, perusahaan rentan terhadap risiko seperti keterlambatan pengiriman atau barang yang tidak sesuai spesifikasi. Dengan perencanaan yang baik, risiko ini dapat diminimalkan, memastikan operasional tetap lancar.<\/p>\n<h3><strong>4. Mendukung perencanaan anggaran<\/strong><\/h3>\n<p>Procurement planning membantu dalam menyusun rencana anggaran yang lebih akurat dengan memanfaatkan demand forecasting. Ini memungkinkan perusahaan untuk menyesuaikan pengadaan dengan perkiraan permintaan, menghindari kekurangan atau kelebihan stok.<\/p>\n<h3><strong>5. Meningkatkan efisiensi pengadaan<\/strong><\/h3>\n<p>Dengan perencanaan yang baik, setiap proses pengadaan dapat dilakukan lebih efisien. Ini berarti perusahaan dapat memaksimalkan nilai dari setiap pembelian, mendukung pertumbuhan bisnis yang lebih berkelanjutan.<\/p>\n<h2><strong><span id=\"tahap\">Tahapan dalam Procurement Planning<\/span><\/strong><\/h2>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/screenshot-2026-02-03-154735\/\" rel=\"attachment wp-att-188323\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-188323\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-02-03-154735.webp\" alt=\"procurement planning\" width=\"1343\" height=\"592\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-02-03-154735.webp 1343w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-02-03-154735-300x132.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-02-03-154735-1024x451.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-02-03-154735-768x339.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-02-03-154735-953x420.webp 953w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-02-03-154735-150x66.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-02-03-154735-696x307.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-2026-02-03-154735-1068x471.webp 1068w\" sizes=\"auto, (max-width: 1343px) 100vw, 1343px\" \/><\/a><\/p>\n<p>Setelah memahami pentingnya <em>procurement planning<\/em>, langkah berikutnya adalah menerapkannya dengan efektif. Proses ini melibatkan perencanaan yang matang dan pengelolaan setiap tahap secara strategis agar selaras dengan tujuan bisnis. Berikut adalah tahapan penting yang perlu Anda ketahui:<\/p>\n<h3><strong>1. Analisis kebutuhan<\/strong><\/h3>\n<p>Langkah pertama dan paling mendasar dalam procurement planning adalah melakukan analisis kebutuhan yang komprehensif. Pada tahap ini, perusahaan harus menentukan dengan jelas apa saja barang atau jasa yang dibutuhkan, jumlah yang diperlukan, serta waktu yang tepat untuk pengadaan.<\/p>\n<p>Misalnya, tim produksi mungkin membutuhkan bahan baku tertentu dalam jumlah besar untuk mendukung lini produksi utama.<\/p>\n<p>Sementara itu, tim IT mungkin memerlukan perangkat lunak baru untuk meningkatkan efisiensi kerja. Procurement planning harus mencakup semua kebutuhan ini, termasuk peralatan kantor, layanan outsourcing, hingga kebutuhan khusus seperti bahan baku yang sulit didapatkan.<\/p>\n<p>Analisis kebutuhan yang baik juga memperhitungkan fluktuasi musiman dan tren pasar yang mungkin mempengaruhi permintaan.<\/p>\n<h3><strong>2. Evaluasi pasar dan pemasok<br \/>\n<\/strong><\/h3>\n<p>Setelah kebutuhan diidentifikasi, perusahaan harus melakukan evaluasi pasar untuk menemukan pemasok yang paling sesuai. Langkah ini memerlukan riset pasar yang mendalam, termasuk penilaian terhadap pemasok yang ada dan potensi pemasok baru.<\/p>\n<p>Evaluasi ini melibatkan penilaian kualitas produk atau jasa yang ditawarkan, harga yang kompetitif, serta reputasi pemasok dalam hal kepatuhan terhadap jadwal dan kemampuan untuk memenuhi persyaratan khusus. Dalam konteks ini, procurement planning harus mempertimbangkan lebih dari sekadar harga terendah.<\/p>\n<h3><strong>3. Pengembangan strategi pengadaan<br \/>\n<\/strong><\/h3>\n<p>Setelah evaluasi pasar dan pemasok dilakukan, perusahaan harus mengembangkan strategi pengadaan yang tepat. Strategi ini mencakup metode pengadaan yang akan digunakan, apakah itu pembelian langsung, lelang, kontrak jangka panjang, atau metode lainnya yang paling sesuai dengan kebutuhan dan budgeting perusahaan.<\/p>\n<p>Pengembangan strategi pengadaan juga melibatkan penentuan rencana anggaran yang jelas untuk setiap item yang akan dibeli. Hal ini penting untuk memastikan bahwa anggaran perusahaan digunakan secara efisien, tanpa pemborosan yang tidak perlu.<\/p>\n<h3><strong>4. Negosiasi dan penetapan kontrak<br \/>\n<\/strong><\/h3>\n<p>Tahap ini adalah salah satu yang paling kritis dalam procurement planning. Setelah strategi pengadaan ditetapkan, perusahaan harus masuk ke tahap negosiasi dengan pemasok yang telah dipilih. Negosiasi ini tidak hanya tentang harga, tetapi juga tentang syarat dan ketentuan lain yang akan dimasukkan ke dalam kontrak.<\/p>\n<p>Negosiasi yang sukses adalah yang mampu mencapai keseimbangan antara kebutuhan perusahaan dan kemampuan pemasok. Procurement planning berperan penting dalam memastikan bahwa semua aspek pengadaan dipertimbangkan dengan cermat, sehingga kontrak yang dihasilkan memberikan perlindungan maksimal bagi perusahaan.<\/p>\n<h3><strong>5. Pelaksanaan, monitoring, dan evaluasi<\/strong><\/h3>\n<p>Setelah kontrak ditandatangani, tahap pelaksanaan pengadaan dimulai. Ini melibatkan pemesanan barang atau jasa sesuai dengan jadwal yang telah ditentukan dalam rencana anggaran. Pada tahap ini, penting untuk memonitor setiap langkah dalam proses pengadaan, mulai dari pengiriman hingga penerimaan barang, untuk memastikan semuanya berjalan sesuai rencana.<\/p>\n<p>Monitoring yang efektif memerlukan sistem pelacakan yang baik, di mana perusahaan dapat memantau status setiap pengiriman secara real-time. Ini membantu dalam mendeteksi dan mengatasi masalah sejak dini, seperti keterlambatan pengiriman atau kualitas barang yang tidak sesuai spesifikasi.<\/p>\n<p>Evaluasi adalah langkah akhir dalam procurement planning. Setelah semua barang atau jasa diterima, perusahaan harus melakukan penilaian terhadap kinerja pemasok dan keseluruhan proses pengadaan.<\/p>\n<p>Hasil evaluasi ini harus digunakan untuk memperbaiki proses pengadaan di masa depan, serta untuk menentukan apakah pemasok tersebut layak untuk kemitraan jangka panjang.<\/p>\n<p>Berikut versi tabel untuk memudahkan Anda memahami tahapan-tahapan utama dalam procurement planning:<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"width: 10%; background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><b>No.<\/b><\/td>\n<td style=\"width: 30%; background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><b>Tahapan<\/b><\/td>\n<td style=\"width: 60%; background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><b>Penjelasan Singkat<\/b><\/td>\n<\/tr>\n<tr>\n<td>1.<\/td>\n<td><strong>Analisis Kebutuhan<\/strong><\/td>\n<td>Menentukan barang atau jasa yang dibutuhkan beserta jumlah dan waktunya.<\/td>\n<\/tr>\n<tr>\n<td>2.<\/td>\n<td><strong>Evaluasi Pasar &amp; Pemasok<\/strong><\/td>\n<td>Menilai kualitas, harga, dan keandalan pemasok untuk memenuhi kebutuhan.<\/td>\n<\/tr>\n<tr>\n<td>3.<\/td>\n<td><strong>Pengembangan Strategi Pengadaan<\/strong><\/td>\n<td>Menetapkan metode pengadaan dan rencana anggaran yang sesuai.<\/td>\n<\/tr>\n<tr>\n<td>4.<\/td>\n<td><strong>Negosiasi &amp; Penetapan Kontrak<\/strong><\/td>\n<td>Menyepakati harga, syarat, dan ketentuan dengan pemasok secara optimal.<\/td>\n<\/tr>\n<tr>\n<td>5.<\/td>\n<td><strong>Pelaksanaan, Monitoring, &amp; Evaluasi<\/strong><\/td>\n<td>Memesan, memantau, dan menilai kinerja pengadaan untuk perbaikan ke depan.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/id\/sistem-pembelian?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/procurement-definitive.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/procurement-definitive.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/procurement-definitive-m.webp\" alt=\"Procurement_Definisi\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/span><\/p>\n<h2><strong>Decision Matrix: Kapan Perlu Formal Procurement Planning?<\/strong><\/h2>\n<p>Tabel berikut membantu menentukan kapan procurement planning perlu dibuat lebih formal (terdokumentasi, ada approval, dan punya jadwal yang jelas). Setiap situasi dilengkapi alasan singkat dan contoh kasus agar mudah dibayangkan.<\/p>\n<div style=\"font-family: inherit; background: #fff; border: 1px solid #e6e6ea; border-radius: 14px; box-shadow: 0 10px 24px rgba(0,0,0,.06); padding: 14px; max-width: 980px; margin: 12px auto;\">\n<div style=\"overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 12px;\">\n<table style=\"width: 100%; min-width: 920px; border-collapse: separate; border-spacing: 0; table-layout: fixed;\">\n<thead>\n<tr>\n<th style=\"background: #9b1c1c; color: #fff; text-align: left; padding: 12px 14px; font-weight: 800; font-size: 14px; line-height: 1.2; border-top-left-radius: 12px; width: 20%;\">Situasi<\/th>\n<th style=\"background: #9b1c1c; color: #fff; text-align: left; padding: 12px 14px; font-weight: 800; font-size: 14px; line-height: 1.2; width: 28%;\">Indikator Praktis<\/th>\n<th style=\"background: #9b1c1c; color: #fff; text-align: left; padding: 12px 14px; font-weight: 800; font-size: 14px; line-height: 1.2; width: 28%;\">Risiko Jika Tidak Formal<\/th>\n<th style=\"background: #9b1c1c; color: #fff; text-align: center; padding: 12px 14px; font-weight: 800; font-size: 14px; line-height: 1.2; border-top-right-radius: 12px; width: 24%;\">Rekomendasi Tingkat Formal<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; font-weight: 800; color: #111827; vertical-align: top;\">Nilai belanja besar<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Total spend naik, PO sering terpecah, negosiasi harga tidak konsisten.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Overbudget, pembelian ganda, kontrol harga lemah.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; text-align: center; vertical-align: top;\"><span style=\"display: inline-block; padding: 6px 10px; border: 1px solid rgba(155,28,28,.25); background: rgba(155,28,28,.06); border-radius: 999px; font-weight: 800; font-size: 12px; color: #9b1c1c;\">Formal + approval<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; font-weight: 800; color: #111827; vertical-align: top;\">Multi lokasi<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Permintaan beda tiap lokasi, transfer antar gudang sering.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Stok menumpuk di satu lokasi, stok kosong di lokasi lain.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; text-align: center; vertical-align: top;\"><span style=\"display: inline-block; padding: 6px 10px; border: 1px solid rgba(155,28,28,.25); background: rgba(155,28,28,.06); border-radius: 999px; font-weight: 800; font-size: 12px; color: #9b1c1c;\">Formal + kalender replenishment<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; font-weight: 800; color: #111827; vertical-align: top;\">Lead time panjang<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Barang indent\/impor, lead time 30\u201390 hari, variasi kedatangan tinggi.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Produksi tertahan, biaya expedite naik, servis ke pelanggan turun.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; text-align: center; vertical-align: top;\"><span style=\"display: inline-block; padding: 6px 10px; border: 1px solid rgba(155,28,28,.25); background: rgba(155,28,28,.06); border-radius: 999px; font-weight: 800; font-size: 12px; color: #9b1c1c;\">Formal + safety stock<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; font-weight: 800; color: #111827; vertical-align: top;\">Barang kritikal &amp; compliance<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Butuh batch\/expiry\/sertifikasi,<a href=\"https:\/\/www.hashmicro.com\/id\/blog\/audit-procurement\/\"> audit rutin<\/a>, dokumen wajib.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Risiko reject, temuan audit, barang tidak sesuai standar.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; text-align: center; vertical-align: top;\"><span style=\"display: inline-block; padding: 6px 10px; border: 1px solid rgba(155,28,28,.25); background: rgba(155,28,28,.06); border-radius: 999px; font-weight: 800; font-size: 12px; color: #9b1c1c;\">Sangat formal + traceability<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; font-weight: 800; color: #111827; vertical-align: top;\">Permintaan fluktuatif<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Lonjakan musiman, promo, forecast sering berubah.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Overstock setelah puncak, stockout saat puncak.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; text-align: center; vertical-align: top;\"><span style=\"display: inline-block; padding: 6px 10px; border: 1px solid rgba(155,28,28,.25); background: rgba(155,28,28,.06); border-radius: 999px; font-weight: 800; font-size: 12px; color: #9b1c1c;\">Formal + review mingguan<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; border-bottom: 1px solid #e6e6ea; font-weight: 800; color: #111827; vertical-align: top; border-bottom-left-radius: 12px;\">Banyak stakeholder<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; border-bottom: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Request dari banyak divisi, spesifikasi berubah, approval berlapis.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; border-bottom: 1px solid #e6e6ea; color: #111827; vertical-align: top;\">Rework PO, salah spesifikasi, miskomunikasi antar tim.<\/td>\n<td style=\"background: #fff; padding: 12px 14px; border-top: 1px solid #e6e6ea; border-bottom: 1px solid #e6e6ea; text-align: center; vertical-align: top; border-bottom-right-radius: 12px;\"><span style=\"display: inline-block; padding: 6px 10px; border: 1px solid rgba(155,28,28,.25); background: rgba(155,28,28,.06); border-radius: 999px; font-weight: 800; font-size: 12px; color: #9b1c1c;\">Formal + SOP &amp; template<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2><strong>Contoh Penerapan Procurement Planning Berdasarkan Kondisi Perusahaan<\/strong><\/h2>\n<ul>\n<li><strong>Nilai belanja besar:<\/strong> Perusahaan distribusi rutin membeli barang promosi dalam jumlah besar saat mendekati periode kampanye. Setelah membuat rencana pembelian bulanan dengan approval, PO bisa digabung dan negosiasi harga lebih stabil.<\/li>\n<li><strong>Multi lokasi:<\/strong> Jaringan toko memiliki pola penjualan berbeda per kota. Dengan kalender replenishment per cluster, pengiriman jadi lebih terjadwal dan stok antar lokasi lebih seimbang.<\/li>\n<li><strong>Lead time panjang:<\/strong> Pabrik mengandalkan bahan baku impor yang sering terlambat datang. Setelah menetapkan safety stock dan rencana pengadaan per kuartal, downtime produksi berkurang.<\/li>\n<li><strong>Barang kritikal &amp; compliance:<\/strong> Perusahaan kesehatan perlu memastikan dokumen dan expiry selalu sesuai. Procurement planning formal membantu memastikan barang datang dengan batch yang benar dan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/audit-procurement\/\">proses audit<\/a> lebih rapi.<\/li>\n<li><strong>Permintaan fluktuatif:<\/strong> Bisnis F&amp;B mengalami lonjakan saat musim liburan. Review mingguan untuk kebutuhan bahan utama membuat ketersediaan terjaga dan sisa stok pasca puncak lebih rendah.<\/li>\n<li><strong>Banyak stakeholder:<\/strong> Proyek konstruksi menerima permintaan dari lapangan yang sering berubah. Template request + jadwal pengadaan per proyek membuat spesifikasi lebih jelas sebelum PO dibuat.<\/li>\n<\/ul>\n<h2><strong>Kesimpulan<\/strong><\/h2>\n<p>Procurement planning membantu perusahaan menjaga pengadaan tetap terarah dan selaras dengan kebutuhan operasional. Dengan perencanaan yang rapi, kontrol anggaran lebih mudah dilakukan dan keputusan pembelian jadi lebih konsisten.<\/p>\n<p>Saat prosesnya terdokumentasi dengan baik, risiko seperti pembelian mendadak, keterlambatan barang, dan biaya tak terduga bisa ditekan. Dampaknya juga terasa pada evaluasi vendor dan kepatuhan prosedur, karena indikator kinerja dapat dipantau lebih jelas.<\/p>\n<p>Jika perusahaan ingin merapikan strategi pengadaan dan menyusun procurement planning yang lebih sesuai dengan kondisi operasional, <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">konsultasi gratis<\/a> bisa menjadi langkah awal untuk dapat memetakan kebutuhan, prioritas, dan pendekatan yang paling relevan sebelum menentukan langkah berikutnya.<\/p>\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><\/span><\/p>\n<h2><strong>Pertanyaan Seputar Procurement Planning<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa itu procurement planning dan mengapa penting bagi perusahaan?<\/strong><\/summary>\n<p>Procurement planning adalah proses merencanakan dan mengelola pengadaan barang dan jasa yang diperlukan untuk operasional perusahaan. Ini penting untuk memastikan bahwa pengadaan dilakukan secara efisien, tepat waktu, dan sesuai anggaran, yang pada akhirnya mendukung kelancaran operasional dan tujuan bisnis.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Bagaimana procurement planning membantu dalam pengelolaan anggaran perusahaan?<\/strong><\/summary>\n<p>Dengan procurement planning yang tepat, perusahaan dapat menyusun rencana anggaran berdasarkan perkiraan permintaan yang akurat. Ini membantu memastikan bahwa pengeluaran pengadaan sesuai dengan budgeting perusahaan, mengurangi risiko pemborosan, dan memaksimalkan efisiensi penggunaan dana.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa manfaat menggunakan demand forecasting dalam procurement planning?<\/strong><\/summary>\n<p>Demand forecasting membantu perusahaan memprediksi kebutuhan barang dan jasa dengan lebih akurat, sehingga rencana anggaran bisa disusun dengan tepat. Ini memungkinkan perusahaan untuk menghindari kekurangan atau kelebihan stok, mengurangi biaya penyimpanan, dan memastikan pengadaan dilakukan sesuai kebutuhan pasar.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Bagaimana HashMicro dapat membantu dalam procurement planning?<\/strong><\/summary>\n<p>HashMicro menawarkan solusi ERP yang dirancang untuk mengoptimalkan procurement planning. Dengan fitur-fitur seperti manajemen inventaris, pelacakan biaya, dan analitik real-time, HashMicro membantu perusahaan memastikan bahwa proses pengadaan lebih efisien, transparan, dan sesuai dengan tujuan bisnis.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa saja tahapan penting dalam procurement planning?<\/strong><\/summary>\n<p>Tahapan penting dalam procurement planning meliputi analisis kebutuhan, evaluasi pemasok, pengembangan strategi pengadaan, negosiasi dan penetapan kontrak, serta pelaksanaan, monitoring, dan evaluasi. Setiap tahap ini berperan dalam memastikan bahwa pengadaan berjalan lancar dan sesuai rencana.<\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"Apa itu procurement planning dan mengapa penting bagi perusahaan?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Procurement planning adalah proses merencanakan dan mengelola pengadaan barang dan jasa yang diperlukan untuk operasional perusahaan. Ini penting untuk memastikan bahwa pengadaan dilakukan secara efisien, tepat waktu, dan sesuai anggaran, yang pada akhirnya mendukung kelancaran operasional dan tujuan bisnis.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Bagaimana procurement planning membantu dalam pengelolaan anggaran perusahaan?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Dengan procurement planning yang tepat, perusahaan dapat menyusun rencana anggaran berdasarkan perkiraan permintaan yang akurat. Ini membantu memastikan bahwa pengeluaran pengadaan sesuai dengan budgeting perusahaan, mengurangi risiko pemborosan, dan memaksimalkan efisiensi penggunaan dana.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apa saja tahapan penting dalam procurement planning?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Tahapan penting dalam procurement planning meliputi analisis kebutuhan, evaluasi pemasok, pengembangan strategi pengadaan, negosiasi dan penetapan kontrak, serta pelaksanaan, monitoring, dan evaluasi. Setiap tahap ini berperan dalam memastikan bahwa pengadaan berjalan lancar dan sesuai rencana.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apa manfaat menggunakan demand forecasting dalam procurement planning?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Demand forecasting membantu perusahaan memprediksi kebutuhan barang dan jasa dengan lebih akurat, sehingga rencana anggaran bisa disusun dengan tepat. Ini memungkinkan perusahaan untuk menghindari kekurangan atau kelebihan stok, mengurangi biaya penyimpanan, dan memastikan pengadaan dilakukan sesuai kebutuhan pasar.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Bagaimana HashMicro dapat membantu dalam procurement planning?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"HashMicro menawarkan solusi ERP yang dirancang untuk mengoptimalkan procurement planning. Dengan fitur-fitur seperti manajemen inventaris, pelacakan biaya, dan analitik real-time, HashMicro membantu perusahaan memastikan bahwa proses pengadaan lebih efisien, transparan, dan sesuai dengan tujuan bisnis.\"\n    }\n  }]\n}\n<\/script><\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Di balik pengadaan yang rapi, selalu ada perencanaan yang jelas tentang apa yang harus dibeli, kapan dibeli, dan berapa jumlahnya. Procurement planning membantu perusahaan menyusun keputusan tersebut sejak awal agar aktivitas operasional tidak berjalan berdasarkan perkiraan semata. Dalam prosesnya, tim pengadaan perlu menyatukan banyak informasi, mulai dari kebutuhan unit kerja, ketersediaan stok, hingga batas anggaran. [&hellip;]<\/p>\n","protected":false},"author":161,"featured_media":144815,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1470],"tags":[],"class_list":{"0":"post-144814","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-procurement"},"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>Langkah Penting dalam Kelola Procurement Planning yang Tepat<\/title>\n<meta name=\"description\" content=\"Procurement planning adalah proses merencanakan pengadaan barang dan jasa yang diperlukan untuk operasi bisnis.\" \/>\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\/procurement-planning\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Langkah Penting dalam Mengelola Procurement Planning yang Tepat\" \/>\n<meta property=\"og:description\" content=\"Procurement planning adalah proses merencanakan pengadaan barang dan jasa yang diperlukan untuk operasi bisnis.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/\" \/>\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=\"2024-08-16T06:09:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-06T04:04:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/procurement-planning-hashmicro.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=\"Jonathan Kurniawan\" \/>\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=\"Jonathan Kurniawan\" \/>\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\\\/procurement-planning\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/\"},\"author\":{\"name\":\"Jonathan Kurniawan\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/029ac06d135cf8424dfa4f3cb3fef6c5\"},\"headline\":\"Langkah Penting dalam Mengelola Procurement Planning yang Tepat\",\"datePublished\":\"2024-08-16T06:09:05+00:00\",\"dateModified\":\"2026-03-06T04:04:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/\"},\"wordCount\":1731,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/procurement-planning-hashmicro.webp\",\"articleSection\":[\"Procurement\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/\",\"name\":\"Langkah Penting dalam Kelola Procurement Planning yang Tepat\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/procurement-planning-hashmicro.webp\",\"datePublished\":\"2024-08-16T06:09:05+00:00\",\"dateModified\":\"2026-03-06T04:04:17+00:00\",\"description\":\"Procurement planning adalah proses merencanakan pengadaan barang dan jasa yang diperlukan untuk operasi bisnis.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/procurement-planning-hashmicro.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/procurement-planning-hashmicro.webp\",\"width\":1200,\"height\":675,\"caption\":\"procurement planning\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/procurement-planning\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Langkah Penting dalam Mengelola Procurement Planning yang Tepat\"}]},{\"@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\\\/029ac06d135cf8424dfa4f3cb3fef6c5\",\"name\":\"Jonathan Kurniawan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jonathan-Kurniawan-3-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jonathan-Kurniawan-3-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jonathan-Kurniawan-3-96x96.webp\",\"caption\":\"Jonathan Kurniawan\"},\"description\":\"Jonathan adalah seorang praktisi dalam bidang procurement, TMS, dan supply chain dengan pengalaman 5 tahun. Spesialis dalam mengulas topik seputar manajemen vendor, budget control procurement, otomatisasi proses pengadaan barang, dan analisis procurement. Tulisannya secara konsisten mendukung pengambilan keputusan bisnis yang lebih strategis.\",\"sameAs\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/\"],\"gender\":\"laki-laki\",\"knowsAbout\":[\"procurement\",\"pengadaan\",\"pembelian\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Senior Content Writer\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/author\\\/jonathankurniawan\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Langkah Penting dalam Kelola Procurement Planning yang Tepat","description":"Procurement planning adalah proses merencanakan pengadaan barang dan jasa yang diperlukan untuk operasi bisnis.","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\/procurement-planning\/","og_locale":"id_ID","og_type":"article","og_title":"Langkah Penting dalam Mengelola Procurement Planning yang Tepat","og_description":"Procurement planning adalah proses merencanakan pengadaan barang dan jasa yang diperlukan untuk operasi bisnis.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2024-08-16T06:09:05+00:00","article_modified_time":"2026-03-06T04:04:17+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/procurement-planning-hashmicro.webp","type":"image\/webp"}],"author":"Jonathan Kurniawan","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Jonathan Kurniawan","Estimasi waktu membaca":"11 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/"},"author":{"name":"Jonathan Kurniawan","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/029ac06d135cf8424dfa4f3cb3fef6c5"},"headline":"Langkah Penting dalam Mengelola Procurement Planning yang Tepat","datePublished":"2024-08-16T06:09:05+00:00","dateModified":"2026-03-06T04:04:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/"},"wordCount":1731,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/procurement-planning-hashmicro.webp","articleSection":["Procurement"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/","name":"Langkah Penting dalam Kelola Procurement Planning yang Tepat","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/procurement-planning-hashmicro.webp","datePublished":"2024-08-16T06:09:05+00:00","dateModified":"2026-03-06T04:04:17+00:00","description":"Procurement planning adalah proses merencanakan pengadaan barang dan jasa yang diperlukan untuk operasi bisnis.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/procurement-planning-hashmicro.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/08\/procurement-planning-hashmicro.webp","width":1200,"height":675,"caption":"procurement planning"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/procurement-planning\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Langkah Penting dalam Mengelola Procurement Planning yang Tepat"}]},{"@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\/029ac06d135cf8424dfa4f3cb3fef6c5","name":"Jonathan Kurniawan","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jonathan-Kurniawan-3-96x96.webp","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jonathan-Kurniawan-3-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jonathan-Kurniawan-3-96x96.webp","caption":"Jonathan Kurniawan"},"description":"Jonathan adalah seorang praktisi dalam bidang procurement, TMS, dan supply chain dengan pengalaman 5 tahun. Spesialis dalam mengulas topik seputar manajemen vendor, budget control procurement, otomatisasi proses pengadaan barang, dan analisis procurement. Tulisannya secara konsisten mendukung pengambilan keputusan bisnis yang lebih strategis.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"laki-laki","knowsAbout":["procurement","pengadaan","pembelian"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Senior Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/jonathankurniawan\/"}]}},"focus_keyword":"procurement planning","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/144814","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\/161"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=144814"}],"version-history":[{"count":14,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/144814\/revisions"}],"predecessor-version":[{"id":190470,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/144814\/revisions\/190470"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/144815"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=144814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=144814"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=144814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}