{"id":175684,"date":"2025-11-06T09:19:28","date_gmt":"2025-11-06T02:19:28","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=175684"},"modified":"2026-02-20T17:07:05","modified_gmt":"2026-02-20T10:07:05","slug":"sop-penerimaan-barang","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/","title":{"rendered":"Prosedur dan Contoh SOP Penerimaan Barang Gudang"},"content":{"rendered":"<p>Proses penerimaan barang sering kali menjadi sumber masalah ketika tidak didukung SOP penerimaan barang yang jelas. Ketidakteraturan alur kerja di tahap awal ini membuat tim rawan salah input, kehilangan jejak barang, hingga terjadi perbedaan data antara fisik dan sistem.<\/p>\n<p>Dampaknya bukan sekadar selisih stok, tetapi juga potensi kerugian finansial dan reputasi bisnis yang menurun di mata pemasok. Solusinya adalah menerapkan SOP terstruktur yang dipadukan dengan <a href=\"https:\/\/www.hashmicro.com\/id\/software-stok-barang\">software stok barang<\/a> agar setiap langkah tercatat otomatis dan akurat.<\/p>\n<p>Simak penjelasan bagaimana SOP penerimaan barang yang ideal bekerja dan bagaimana teknologi bisa menyederhanakannya. Temukan bagaimana Anda membangun proses penerimaan barang yang rapi, terukur, dan bebas dari kesalahan umum.<\/p>\n<div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tDaftar Isi:\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Daftar Isi<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n\r\n<style>\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor:#000;\r\n\t\tmargin-bottom: 10px;\r\n\t\ttransition:all 0.2s ease-in-out;\r\n\t\tfont-size:15px\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#list_toc_float li a{margin-bottom:0px}\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width:768px){\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \/* custom scrollbar style *\/\r\n::-webkit-scrollbar {\r\n    width: 7px;\r\n}\r\n::-webkit-scrollbar-track {\r\n    background: #d7a2a4;\r\n}\r\n::-webkit-scrollbar-thumb {\r\n    background: #b1252d;\r\n    border-radius: 15px;\r\n}\t\t\r\n\r\n<\/style>\r\n\r\n<script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\t\/\/ Fungsi untuk menangani klik pada semua elemen <a> dengan href yang dimulai dengan #\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst targetId = this.getAttribute('href').substring(1);\r\n\t\t\tconst targetElement = document.getElementById(targetId);\r\n\r\n\t\t\tif (targetElement) {\r\n\t\t\t\tconst headerHeight = document.querySelector('#toc .header').offsetHeight;\r\n\t\t\t\tconst navbarHeight = document.getElementById('tdi_34') ? document.getElementById('tdi_34').offsetHeight : 0;\r\n\t\t\t\tconst windowHeight = window.innerHeight;\r\n\t\t\t\tconst targetOffset = targetElement.offsetTop;\r\n\t\t\t\tconst scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight) - navbarHeight - 40;\r\n\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: scrollTo,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Tambahkan event listener untuk semua elemen <a> di toc-list dan list-toc\r\n\t\tconst titleLinks = document.querySelectorAll('#toc-list a, #list_toc a');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n<\/script>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\n\/\/ document.addEventListener(\"DOMContentLoaded\", function() {\r\n\/\/   const toc = document.querySelector('#toc');\r\n\/\/   const footer = document.querySelector('.td-footer-template-wrap');\r\n\/\/   const tocParent = toc.parentElement;\r\n\/\/   const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n\/\/   const tocHeight = toc.offsetHeight;\r\n\/\/   const triggerPoint = divTop + tocHeight + 700;\r\n\/\/   const footerHeight = footer.offsetHeight;\r\n\/\/   const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n\/\/   const phtoc = document.querySelector('#placeholder-toc');\r\n\/\/   const headers = document.querySelectorAll('.td-post-content h2');\r\n\/\/   const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\/\/ \tconst panel2 = document.querySelector(\"#toc .list\");\r\n\/\/ \tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n\/\/   let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n\/\/   \/\/ Function to handle scroll and add\/remove .sticky class\r\n\/\/   function handleScroll() {\r\n\/\/     const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n\/\/     let currentHeader = '';\r\n\r\n\/\/     \/\/ Highlight user progress as the heading comes\r\n\/\/     headers.forEach(header => {\r\n\/\/ \t\tconst headerTop = header.offsetTop;\r\n\/\/ \t\tconst headerHeight = header.clientHeight;\r\n\/\/ \/\/ \t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\/\/ \/\/ \t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\/\/ \/\/ \t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\/\/ \/\/ \t\t\ttocTitle.textContent = currentHeaderText;\r\n\/\/ \/\/ \t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\/\/ \/\/ \t\t\tif(window.innerWidth < 767){\r\n\/\/ \/\/ \t\t\t\ttocTitle.textContent = 'Daftar Isi';\r\n\/\/ \/\/ \t\t\t}\r\n\/\/ \/\/ \t\t}\r\n\/\/ \t\tif(window.innerWidth < 767){\r\n\/\/ \t\t\ttocTitle.textContent = 'Daftar Isi'; \/\/ Selalu pertahankan judul ini di mobile\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\/\/ \t\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\/\/ \t\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\t\ttocTitle.textContent = currentHeaderText;\r\n\/\/ \t\t\t\tcurrentHeader = currentHeaderId;\r\n\/\/ \t\t\t}\r\n\/\/ \t\t}\r\n\/\/ \t});\r\n\r\n\/\/     navLinks.forEach(link => {\r\n\/\/       link.classList.remove('active');\r\n\/\/       if(currentHeader != '') {\r\n\/\/ \t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\/\/ \t\t\t  link.classList.add('active');\r\n\/\/ \t\t  }\r\n\/\/ \t  }\r\n\/\/     });\r\n\/\/ \/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/ \/\/         toc.style.display = 'block';\r\n\/\/ \/\/ \t}else{\r\n\/\/ \/\/         toc.style.display = 'none';\r\n\/\/ \/\/ \t}\r\n\/\/     \/\/ Update TOC title if sticky\r\n\/\/     if (windowTop > triggerPoint) {\r\n\/\/       if (!toc.classList.contains('sticky')) {\r\n\/\/         phtoc.style.display = \"block\";\r\n\/\/         toc.classList.add('sticky');\r\n\/\/         toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\/\/         toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/         toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\tpanel2.style.height = '0px';\r\n\/\/ \t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t  if(window.innerWidth < 767){\r\n\/\/ \/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\/\/ \t\t\t  tocTitle.textContent = 'Daftar Isi'; \/\/ Reset title\r\n\/\/        \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\/\/ \t\t  }\r\n\/\/       }\r\n\/\/       if (currentHeader) {\r\n\/\/ \/\/         console.log(\"activeLink:\", activeLink);\r\n\/\/         if (activeLink) {\r\n\/\/ \/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n\/\/           tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n\/\/         }\r\n\/\/       }\r\n\/\/     } else {\r\n\/\/       toc.classList.remove('sticky');\r\n\/\/       phtoc.style.display = \"none\";\r\n\/\/       toc.style.width = 'unset'; \/\/ Reset to original width\r\n\/\/       toc.style.backgroundColor = \"#FFF\";\r\n\/\/       tocTitle.textContent = 'Daftar isi'; \/\/ Reset title\r\n\/\/ \t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\/\/ \t\ticon.style.transform = \"rotate(180deg)\";\r\n\/\/     }\r\n\/\/   }\r\n\r\n\/\/     \/\/ Attach the scroll event listener to the window\r\n\/\/     window.addEventListener('scroll', handleScroll);\r\n\r\n\/\/     \/\/ Initial call to handleScroll to set the correct state on load\r\n\/\/     handleScroll();\r\n\/\/ });\r\n\t\r\n\/\/ \t\/\/ Open toggle TOC\r\n\/\/ \t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\/\/ \t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\/\/ \t\tvar toc = document.querySelector(\"#toc\");\r\n\/\/ \t\tvar icon = document.querySelector(\".toc-icon\");\r\n\/\/ \t\tconst tocTitle = document.querySelector('#toc-title');\r\n\/\/ \t\tconst tocs = document.querySelector('#toc.sticky');\r\n\/\/  \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\/\/ \t\t  tocHeader.addEventListener(\"click\", function() {\r\n\/\/ \t\t\tvar panel = this.nextElementSibling;\r\n\/\/ \t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\/\/ \t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\/\/ \t\t\t\tif(window.innerWidth > 768){\r\n\/\/ \t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\/\/ \t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t\t}\r\n\/\/ \t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\/\/ \t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t\t}\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t\tif(window.innerWidth < 767){\r\n\/\/ \t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\/\/ \t\t\t} else {\r\n\/\/ \t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\/\/ \t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\t\t  tocTitle.textContent = 'Daftar isi'; \/\/ Reset title\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '24px';\r\n\/\/ \t\t\t \tif(window.innerWidth < 767){\r\n\/\/ \t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\/\/ \t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t}\r\n\/\/ \t\t  });\r\n\r\n\/\/ \t\t  \/\/ Close TOC when a link inside it is clicked\r\n\/\/ \t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\/\/ \t\t  tocLinks.forEach(function(link) {\r\n\/\/ \t\t\tlink.addEventListener(\"click\", function() {\r\n\/\/ \t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\/\/ \t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\t\t});\r\n\/\/ \t\t  });\r\n\/\/ \t\t});\r\n\r\n\/\/ START new JS for ToC improvements\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 1750;\r\n\tconsole.log(triggerPoint)\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight*3;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n  \r\n  const panel2 = document.querySelector(\"#toc .list\");\r\n  const icon = document.querySelector(\".toc-icon\");\r\n  const tocTitle = document.querySelector('#toc-title');\r\n\r\n  let activeLink = null;\r\n  let userClosedTOC = false; \/\/ Flag user menutup TOC\r\n\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Update TOC title sesuai header yang terlihat\r\n    headers.forEach(header => {\r\n      const headerTop = header.offsetTop;\r\n      const headerHeight = header.clientHeight;\r\n      if(window.innerWidth < 767){\r\n        tocTitle.textContent = 'Daftar Isi'; \r\n      } else {\r\n        if (window.scrollY >= (headerTop - headerHeight + 1750)) {\r\n          const currentHeaderId = header.getAttribute('id');\r\n          const currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n          tocTitle.textContent = currentHeaderText;\r\n          currentHeader = currentHeaderId;\r\n        }\r\n      }\r\n    });\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader && link.getAttribute('href').includes(currentHeader)) {\r\n        link.classList.add('active');\r\n      }\r\n    });\r\n\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`;\r\n        toc.style.backgroundColor = \"#FFF\";\r\n        \/\/ Saat sticky, TOC otomatis tertutup\r\n        panel2.style.height = '0px';\r\n        icon.style.transform = \"rotate(180deg)\";\r\n        userClosedTOC = true; \/\/ Set flag supaya tidak terbuka saat scroll\r\n      }\r\n      \r\n      if(window.innerWidth < 767){\r\n        tocTitle.textContent = 'Daftar Isi'; \r\n        toc.style.width = '150px';\r\n      }\r\n\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset';\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Daftar isi'; \r\n\r\n      \/\/ Kembalikan panel jika user belum menutup manual\r\n      if(!userClosedTOC) {\r\n        panel2.style.height = panel2.scrollHeight + \"px\";\r\n        icon.style.transform = \"rotate(0deg)\";\r\n      }\r\n    }\r\n  }\r\n\r\n  window.addEventListener('scroll', handleScroll);\r\n  handleScroll();\r\n\r\n  \/\/ Toggle TOC saat user klik\r\n  const tocHeader = document.querySelector(\"#toc .header\");\r\n  tocHeader.addEventListener(\"click\", function() {\r\n    const panel = panel2;\r\n    if (panel.style.height !== '0px') {\r\n      panel.style.height = '0px';\r\n      icon.style.transform = \"rotate(180deg)\";\r\n      userClosedTOC = true;\r\n    } else {\r\n      panel.style.height = panel.scrollHeight + \"px\";\r\n      icon.style.transform = \"rotate(0deg)\";\r\n      userClosedTOC = false;\r\n    }\r\n  });\r\n\r\n  \/\/ Close TOC saat link diklik\r\n  document.querySelectorAll(\"#toc .list a\").forEach(link => {\r\n    link.addEventListener(\"click\", function() {\r\n      panel2.style.height = '0px';\r\n      icon.style.transform = \"rotate(180deg)\";\r\n      userClosedTOC = true;\r\n    });\r\n  });\r\n});\r\n\/\/ END new JS for ToC improvements\r\n\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } \r\n\t\t  else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener(\"DOMContentLoaded\", function() {\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        \/\/ Mengambil semua elemen h2 dan h3\r\n\t\tconst elements = document.querySelectorAll('.td-post-content h2');\r\n\r\n\t\t\tfunction newFormatId(text) {\r\n\t\t\t\tif(text.toLowerCase() === \"key takeaways\") {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tconst result = text.toLowerCase()\r\n\t\t\t\t.trim()\r\n\t\t\t\t.replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n\t\t\t\t.replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\r\n\t\telements.forEach(element => {\r\n\t\t\tif (element.tagName === 'H2') {\r\n\t\t\t\tconst id = newFormatId(element.textContent); \/\/ Hasilkan ID baru\r\n\t\t\t\telement.id = id; \/\/ Tetapkan ID ke elemen h2\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Kalau Key Takeaways, jangan dimasukin\r\n\t\t\t\theadings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n\t\t\t} else if (element.tagName === 'H3') {\r\n\t\t\t\tconst id = newFormatId(element.textContent); \/\/ Hasilkan ID baru\r\n\t\t\t\telement.id = id; \/\/ Tetapkan ID ke elemen h3\r\n\t\t\t\tif (headings.length > 0) {\r\n\t\t\t\t\theadings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n       \/\/ Membuat list HTML dari objek headings\r\n\t\tconst ul = document.getElementById('list_toc');\r\n\t\tlet currentUl = ul;\r\n\t\theadings.forEach(heading => {\r\n\t\t\tconst li = document.createElement('li');\r\n\t\t\tconst a = document.createElement('a');\r\n\t\t\ta.textContent = heading.title;\r\n\t\t\ta.href = `#${heading.id}`; \/\/ Gunakan ID yang baru dihasilkan\r\n\t\t\tli.appendChild(a);\r\n\r\n\t\t\tif (heading.level === 'h2') {\r\n\t\t\t\tcurrentUl = li;\r\n\t\t\t\tul.appendChild(li);\r\n\t\t\t} else if (heading.level === 'h3') {\r\n\t\t\t\tif (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n\t\t\t\t\tconst nestedUl = document.createElement('ul');\r\n\t\t\t\t\tcurrentUl.appendChild(nestedUl);\r\n\t\t\t\t\tcurrentUl = nestedUl;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUl.appendChild(li);\r\n\t\t\t}\r\n\r\n\t\t\tcreateNestedList(li, heading.children);\r\n\t\t});\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc'\r\n\t\tconst ulFloat = document.getElementById('list_toc');\r\n\r\n\t\t\/\/ Dapatkan isi (child elements) dari ul dengan id 'list_toc'\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\r\n\t\t\/\/ Tambahkan isi yang telah didapatkan dari 'list_toc' ke ul dengan id 'list_toc_float'\r\n\t\tulToc.append(...clonedChildren);\r\n\r\n\r\n        \/\/ Fungsi untuk mengambil tinggi navbar\r\n\t\tfunction getNavbarHeight() {\r\n\t\t\tconst navbar = document.getElementById('tdi_34');\r\n\t\t\treturn navbar ? navbar.offsetHeight : 0;\r\n\t\t}\r\n\r\n\t\t\/\/ Fungsi untuk menambahkan offset posisi scroll\r\n\t\tfunction scrollToElementWithOffset(elementId) {\r\n\t\t\tconst element = document.getElementById(elementId);\r\n\t\t\tif (element) {\r\n\t\t\t\tconst offset = getNavbarHeight();\r\n\t\t\t\tconst elementPosition = element.getBoundingClientRect().top;\r\n\t\t\t\tconst offsetPosition = elementPosition - offset - 40;\r\n\r\n\t\t\t\twindow.scrollBy({\r\n\t\t\t\t\ttop: offsetPosition,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Fungsi untuk menangani klik pada tautan judul\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst href = event.target.getAttribute('href').substr(1);\r\n\t\t\tscrollToElementWithOffset(href);\r\n\t\t}\r\n\r\n\t\t\/\/ Tambahkan event listener untuk semua tautan judul\r\n\t\tconst titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t\t\r\n\t});\r\n    <\/script> -->\r\n \r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script>\n<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: #8a0e19; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#apa\">SOP penerimaan barang<\/a> adalah panduan standar untuk memeriksa dan mencatat barang yang masuk ke gudang secara akurat.<\/li>\n<li aria-level=\"1\"><a href=\"#meng\">SOP penerimaan barang krusial<\/a> karena memastikan akurasi stok, mencegah kesalahan operasional, dan menjaga kelancaran alur rantai pasok.<\/li>\n<li aria-level=\"1\"><a href=\"https:\/\/www.hashmicro.com\/id\/software-stok-barang\">Software Stok Barang HashMicro<\/a> mengotomatiskan tiap tahapan dalam SOP penerimaan barang, mulai dari pencatatan kedatangan hingga verifikasi stok secara langsung.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span id=\"apa\">Apa Itu SOP Penerimaan Barang?<\/span><\/h2>\n<p>SOP Penerimaan Barang adalah sebuah dokumen formal yang berisi serangkaian instruksi langkah demi langkah yang harus saya dan tim ikuti saat menerima kiriman barang dari pemasok. Prosedur ini mencakup semua aktivitas, mulai dari verifikasi dokumen, pemeriksaan fisik barang, pencatatan, hingga penyimpanan barang ke lokasi yang ditentukan di dalam gudang.<\/p>\n<p>Tujuan utamanya adalah menciptakan proses yang konsisten, terstandarisasi, dan dapat diaudit, sehingga setiap penerimaan barang dilakukan dengan cara yang sama setiap saat, tidak peduli siapa pun yang bertugas. Standarisasi ini sangat penting untuk meminimalkan human error, memastikan data penerimaan barang tercatat dengan tepat melalui <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/goods-receipt-note\/\">dokumen bukti penerimaan (goods receipt note)<\/a>, dan menjaga kualitas produk sesuai standar perusahaan.<\/p>\n<p>Lebih dari sekadar daftar tugas, saya melihat SOP ini berfungsi sebagai fondasi untuk manajemen inventaris yang sehat dan menjadi titik kontrol kualitas pertama dalam rantai pasok Anda. Dengan memiliki prosedur yang jelas, perusahaan dapat memastikan bahwa hanya barang yang sesuai dengan pesanan pembelian (<em>Purchase Order<\/em>) dan dalam kondisi baik yang diterima. Hal ini secara langsung berdampak pada keakuratan data stok, yang menjadi dasar bagi departemen lain seperti penjualan, produksi, dan keuangan untuk membuat keputusan bisnis yang tepat. Pada akhirnya, SOP penerimaan barang yang efektif adalah pilar utama yang mendukung efisiensi operasional, pengendalian biaya, dan kepuasan pelanggan secara keseluruhan.<\/p>\n<h2><span id=\"meng\">Mengapa SOP Penerimaan Barang Sangat Krusial bagi Bisnis?<\/span><\/h2>\n<p>Memiliki SOP penerimaan barang yang terdokumentasi dengan baik memberikan dampak strategis yang jauh melampaui sekadar kerapian administrasi gudang. Bagi saya sebagai seorang profesional, prosedur ini adalah alat manajemen risiko dan efisiensi yang memastikan setiap aset yang masuk tercatat dengan benar dan sesuai spesifikasi. Tanpa standar yang jelas, proses penerimaan barang menjadi sangat rentan terhadap kesalahan, penipuan, dan inefisiensi yang dapat menggerus profitabilitas perusahaan. Dengan menerapkan SOP yang solid, kita membangun fondasi yang kuat untuk seluruh operasional logistik dan rantai pasok.<\/p>\n<p>Manfaat penerapan SOP ini bersifat multifaset, mulai dari menjaga integritas data inventaris hingga memperkuat posisi negosiasi dengan pemasok. Ketika setiap barang yang masuk diverifikasi secara sistematis, perusahaan dapat menghindari kerugian akibat menerima produk yang salah, rusak, atau jumlahnya kurang. Hal ini juga memberikan dasar yang objektif untuk menangani klaim atau perselisihan dengan pemasok secara profesional. Untuk memahami lebih dalam dampak positifnya, berikut adalah beberapa alasan utama mengapa SOP penerimaan barang menjadi elemen yang tidak terpisahkan dari operasional bisnis yang sehat.<\/p>\n<h3>1. Memastikan akurasi data inventaris sejak awal<\/h3>\n<p>SOP yang ketat memastikan bahwa jumlah, jenis, dan spesifikasi barang yang diterima sesuai dengan dokumen pesanan pembelian (Purchase Order). Proses verifikasi yang terstandarisasi ini mencegah masuknya data yang salah ke dalam <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/aplikasi-stok-barang-terbaik\/\">software stok barang<\/a> Anda sejak titik paling awal. Akurasi data ini sangat fundamental, karena menjadi dasar bagi seluruh perencanaan stok, perkiraan penjualan, dan proses produksi, sehingga Anda dapat membuat keputusan bisnis berdasarkan informasi yang valid dan dapat diandalkan.<\/p>\n<h3>2. Menjaga kualitas produk dan mencegah kerugian finansial<\/h3>\n<p>Salah satu langkah terpenting dalam SOP penerimaan barang adalah pemeriksaan fisik untuk mendeteksi kerusakan, cacat, atau ketidaksesuaian kualitas. Dengan adanya prosedur inspeksi yang jelas, tim dapat secara konsisten menolak barang yang tidak memenuhi standar sebelum barang tersebut masuk ke dalam stok. Tindakan preventif ini secara langsung mencegah kerugian finansial akibat retur barang, biaya penggantian, dan yang terpenting, melindungi reputasi merek Anda dari citra buruk akibat produk berkualitas rendah.<\/p>\n<h3>3. Meningkatkan efisiensi dan produktivitas tim gudang<\/h3>\n<p>Dengan adanya panduan yang jelas dan terstruktur, tim gudang tidak perlu lagi menebak-nebak langkah apa yang harus diambil saat barang datang. SOP menghilangkan ambiguitas dan menyediakan alur kerja yang logis, mulai dari pembongkaran, pemeriksaan, hingga penempatan barang (putaway). Hal ini mempercepat keseluruhan proses penerimaan, mengurangi waktu tunggu truk pemasok, dan memungkinkan staf gudang untuk bekerja lebih produktif serta terorganisir.<\/p>\n<h3>4. Membangun hubungan yang profesional dengan pemasok<\/h3>\n<p>Ketika terjadi ketidaksesuaian antara barang yang dikirim dengan dokumen pesanan, SOP menyediakan protokol yang jelas untuk menangani situasi tersebut. Prosedur yang terdokumentasi untuk melaporkan kerusakan atau kekurangan jumlah memungkinkan Anda berkomunikasi dengan pemasok secara objektif dan berbasis data. Menurut <a href=\"https:\/\/www.cips.org\/knowledge\/procurement-topics-and-skills\/supplier-relationship-management-srm\/\" target=\"_blank\" rel=\"noopener\">Chartered Institute of Procurement &amp; Supply (CIPS)<\/a>, hubungan yang transparan adalah kunci dari manajemen pemasok yang efektif, di mana setiap masalah diselesaikan berdasarkan prosedur yang telah disepakati.<\/p>\n<h3>5. Menjadi dasar audit dan pelaporan keuangan yang akurat<\/h3>\n<p>Setiap barang yang diterima merupakan aset perusahaan yang harus dicatat secara akurat untuk keperluan akuntansi dan audit. SOP penerimaan barang menghasilkan dokumen bukti penerimaan (goods receipt note) yang menjadi dasar bagi tim keuangan untuk memverifikasi tagihan dari pemasok. Catatan yang rapi dan konsisten ini sangat penting selama proses audit, memastikan kepatuhan (compliance), dan menyediakan jejak audit yang jelas untuk setiap transaksi pembelian.<\/p>\n<h2>Prosedur Lengkap dalam SOP Penerimaan Barang<\/h2>\n<p>Menyusun prosedur penerimaan barang yang efektif memerlukan pendekatan yang sistematis untuk mencakup setiap titik kritis dalam proses. Tujuannya adalah menciptakan alur kerja yang tidak hanya efisien tetapi juga mampu meminimalkan risiko kesalahan. Setiap langkah harus didefinisikan dengan jelas, lengkap dengan tanggung jawab spesifik untuk setiap personel yang terlibat, guna memastikan tidak ada celah yang dapat menyebabkan ketidakakuratan data.<\/p>\n<p>Dari verifikasi dokumen awal hingga pelaporan akhir, setiap tahapan memiliki perannya sendiri dalam menjaga integritas rantai pasok Anda. Kegagalan dalam mencocokkan dokumen dapat menyebabkan pembayaran atas barang yang tidak pernah dipesan, sementara pemeriksaan fisik yang terlewat bisa mengakibatkan penerimaan produk cacat. Oleh karena itu, mengikuti setiap langkah secara disiplin adalah kunci keberhasilan. Berikut adalah uraian detail mengenai prosedur langkah demi langkah yang harus ada dalam SOP penerimaan barang yang komprehensif.<\/p>\n<h3>1. Tahap 1: Verifikasi dokumen pembelian<\/h3>\n<p>Langkah pertama ini saya lakukan segera setelah tim menerima informasi bahwa kiriman akan tiba atau saat truk pemasok tiba di lokasi. Staf yang bertanggung jawab harus meminta dokumen pengiriman dari kurir, yang biasanya berupa surat jalan atau <em>delivery order<\/em>. Dokumen ini kemudian dicocokkan dengan data pesanan pembelian (<em>Purchase Order<\/em> atau PO) yang ada di sistem perusahaan, untuk memastikan bahwa barang yang dikirim memang barang yang dipesan, alamat pengiriman sudah benar, dan pengiriman dilakukan dalam kerangka waktu yang diharapkan.<\/p>\n<h3>2. Tahap 2: Pembongkaran dan pemeriksaan fisik barang<\/h3>\n<p>Setelah dokumen terverifikasi, proses pembongkaran (<em>unloading<\/em>) barang dari kendaraan pengangkut dimulai dengan hati-hati untuk menghindari kerusakan. Tim kemudian melakukan pemeriksaan fisik secara menyeluruh. Ini mencakup beberapa aspek penting seperti menghitung jumlah barang untuk memastikan sesuai dengan surat jalan, memeriksa kondisi kemasan dari kerusakan eksternal, dan membuka sampel untuk mengecek kualitas produk, tanggal kedaluwarsa (jika ada), serta spesifikasi teknis lainnya agar sesuai dengan yang tertera di PO.<\/p>\n<h3>3. Tahap 3: Penanganan jika terjadi ketidaksesuaian (Discrepancy)<\/h3>\n<p>Jika selama pemeriksaan saya menemukan adanya ketidaksesuaian, seperti jumlah yang kurang, barang yang rusak, atau spesifikasi yang salah, tim harus segera mengikuti prosedur penanganan <em>discrepancy<\/em>. Ini melibatkan tindakan mendokumentasikan semua temuan dengan bukti foto, memisahkan barang yang bermasalah, dan segera menginformasikan kepada departemen pembelian atau manajer gudang. Selanjutnya, departemen pembelian akan menghubungi pemasok untuk menegosiasikan solusi, apakah itu pengembalian barang, pengiriman ulang, atau penyesuaian tagihan.<\/p>\n<h3>4. Tahap 4: Pembuatan laporan penerimaan barang dan pencatatan<\/h3>\n<p>Apabila semua barang telah diverifikasi dan dinyatakan sesuai, langkah selanjutnya adalah membuat Laporan Penerimaan Barang (<em>Goods Receipt Note<\/em> atau GRN). Dokumen ini mencatat secara resmi semua detail barang yang diterima, termasuk nama produk, jumlah, tanggal penerimaan, dan nama pemasok, serta ditandatangani oleh staf yang berwenang. Data dari GRN ini kemudian saya input ke dalam sistem manajemen inventaris atau ERP untuk memperbarui jumlah stok secara <em>real-time<\/em>, sehingga data persediaan di seluruh sistem menjadi akurat.<\/p>\n<h3>5. Tahap 5: Penyimpanan barang ke lokasi gudang (Putaway)<\/h3>\n<p>Langkah terakhir dalam proses penerimaan adalah menempatkan barang ke lokasi penyimpanannya di dalam gudang. Staf harus mengikuti strategi penyimpanan yang telah ditentukan perusahaan, seperti <em>First-In, First-Out<\/em> (FIFO) atau <em>First-Expired, First-Out<\/em> (FEFO), untuk memastikan rotasi stok yang optimal. Setiap barang atau palet harus diberi label yang jelas dan ditempatkan di rak atau lokasi yang telah ditentukan dalam sistem, sehingga memudahkan proses pencarian dan pengambilan (<em>picking<\/em>) di kemudian hari, seperti yang direkomendasikan oleh <a href=\"https:\/\/www.logisticsbureau.com\/blog\/warehouse-best-practice-1-receiving\/\" target=\"_blank\" rel=\"noopener\">Logistics Bureau<\/a>, sebuah konsultan rantai pasok terkemuka.<\/p>\n<h2>Mengoptimalkan SOP Penerimaan Barang dengan Teknologi<\/h2>\n<p>Walaupun SOP manual memberikan kerangka kerja yang terstruktur, ketergantungan pada proses manual masih menyisakan ruang untuk <em>human error<\/em>, keterlambatan, dan kurangnya visibilitas <em>real-time<\/em>. Di era digital saat ini, mengandalkan pencatatan berbasis kertas atau spreadsheet dapat menghambat skalabilitas dan efisiensi bisnis. Kesalahan input data, dokumen yang hilang, dan komunikasi yang lambat adalah beberapa tantangan umum yang sering saya hadapi pada sistem konvensional. Inilah mengapa integrasi teknologi menjadi langkah selanjutnya untuk membawa SOP Anda ke level yang lebih tinggi.<\/p>\n<p>Pemanfaatan teknologi, seperti <a href=\"https:\/\/www.hashmicro.com\/id\/software-stok-barang\">software stok barang<\/a> atau <em>Enterprise Resource Planning<\/em> (ERP) yang terintegrasi, dapat mengubah proses penerimaan barang dari aktivitas reaktif menjadi proaktif dan berbasis data. Otomatisasi tidak hanya mempercepat setiap langkah dalam prosedur, tetapi juga meningkatkan akurasi secara dramatis dan menyediakan visibilitas menyeluruh bagi para pengambil keputusan. Dengan sistem yang tepat, Anda dapat mengotomatiskan verifikasi dokumen, mempercepat pencatatan stok, dan menghasilkan laporan secara instan. Berikut adalah cara bagaimana solusi teknologi seperti yang ditawarkan oleh HashMicro dapat mengoptimalkan setiap tahapan dalam SOP penerimaan barang Anda.<\/p>\n<h3>1. Otomatisasi verifikasi dokumen dengan sistem procurement<\/h3>\n<p>Dengan <strong>Software Procurement dari HashMicro<\/strong>, proses verifikasi dokumen menjadi jauh lebih cepat dan akurat melalui fitur <em>3-way matching<\/em>. Sistem secara otomatis akan mencocokkan data antara <em>Purchase Order<\/em> (PO), tagihan (<em>invoice<\/em>) dari pemasok, dan dokumen penerimaan barang. Jika terdapat ketidaksesuaian pada jumlah, harga, atau spesifikasi, sistem akan secara otomatis memberikan notifikasi, sehingga tim dapat segera menindaklanjuti sebelum pembayaran diproses dan mencegah potensi kerugian finansial.<\/p>\n<h3>2. Pencatatan barang masuk instan dengan pemindaian barcode<\/h3>\n<p><strong>Software Manajemen Inventaris HashMicro<\/strong> memungkinkan tim gudang untuk mencatat barang yang masuk hanya dengan memindai <em>barcode<\/em> atau kode QR pada setiap item atau karton. Proses ini secara drastis mengurangi waktu yang dibutuhkan untuk input data manual dan meminimalkan risiko kesalahan pengetikan. Begitu barang dipindai, jumlah stok di dalam sistem akan langsung diperbarui secara <em>real-time<\/em>, memberikan visibilitas yang akurat mengenai ketersediaan barang kepada seluruh departemen terkait, sejalan dengan prinsip-prinsip <em>lean warehousing<\/em>.<\/p>\n<h3>3. Pelaporan dan analisis kinerja secara otomatis<\/h3>\n<p>Sistem ERP yang terintegrasi secara otomatis mengumpulkan data dari setiap transaksi penerimaan barang, memungkinkan Anda untuk menghasilkan laporan kinerja dengan mudah. Anda dapat menganalisis metrik penting seperti ketepatan waktu pengiriman dari pemasok, tingkat kerusakan barang saat diterima, dan kecepatan proses penerimaan oleh tim internal. Analisis mendalam ini memberikan wawasan berharga untuk mengevaluasi kinerja pemasok dan mengidentifikasi area inefisiensi dalam operasional gudang Anda.<\/p>\n<h2>Tantangan Umum dalam Implementasi SOP dan Cara Mengatasinya<\/h2>\n<p>Walaupun memiliki dokumen SOP yang lengkap adalah langkah awal yang baik, implementasinya di lapangan sering kali tidak berjalan semulus yang diharapkan. Perusahaan mungkin menghadapi berbagai tantangan, mulai dari resistensi tim terhadap perubahan hingga keterbatasan sistem yang ada. Mengabaikan tantangan-tantangan ini dapat membuat SOP hanya menjadi dokumen formalitas yang tidak memberikan dampak nyata. Oleh karena itu, penting bagi saya sebagai manajer untuk mengidentifikasi potensi hambatan ini sejak awal dan menyiapkan strategi untuk mengatasinya.<\/p>\n<p>Keberhasilan implementasi SOP tidak hanya bergantung pada kualitas dokumennya, tetapi juga pada bagaimana perusahaan mengelola perubahan, melatih tim, dan menyediakan alat yang tepat. Mengatasi setiap tantangan secara proaktif akan memastikan bahwa prosedur yang telah dirancang dapat diadopsi sepenuhnya dan memberikan manfaat maksimal. Berikut adalah beberapa tantangan paling umum yang saya hadapi saat menerapkan SOP penerimaan barang beserta solusi praktis untuk setiap masalah tersebut.<\/p>\n<h3>1. Kurangnya pemahaman dan pelatihan tim<\/h3>\n<p>Salah satu tantangan terbesar adalah ketika tim di lapangan tidak sepenuhnya memahami mengapa perubahan prosedur diperlukan atau bagaimana cara menjalankannya dengan benar. Hal ini dapat menyebabkan mereka kembali ke cara kerja lama yang sudah terbiasa. Solusinya adalah dengan mengadakan sesi pelatihan yang komprehensif, tidak hanya menjelaskan &#8220;bagaimana&#8221; tetapi juga &#8220;mengapa&#8221; di balik setiap langkah dalam SOP, serta menyediakan sesi praktik langsung dan materi panduan yang mudah diakses.<\/p>\n<h3>2. Proses manual yang memakan waktu dan rentan kesalahan<\/h3>\n<p>Jika SOP masih sangat bergantung pada pencatatan manual di atas kertas atau entri data di spreadsheet, tim mungkin merasa bahwa prosedur baru justru memperlambat pekerjaan mereka. Ketergantungan pada proses manual juga meningkatkan risiko kesalahan input data yang dapat merusak akurasi inventaris. Solusi terbaik untuk tantangan ini adalah berinvestasi pada teknologi seperti sistem manajemen inventaris dengan fitur pemindaian <em>barcode<\/em> untuk mengotomatiskan pencatatan dan mengurangi beban kerja administratif.<\/p>\n<h3>3. Kesulitan menangani barang yang tidak sesuai<\/h3>\n<p>Tanpa protokol yang jelas, penanganan barang yang rusak atau tidak sesuai pesanan sering kali menimbulkan kebingungan dan penundaan. Tim mungkin tidak tahu siapa yang harus dihubungi atau bagaimana cara mendokumentasikan masalah tersebut, yang dapat memperumit proses klaim ke pemasok. Solusinya adalah dengan mendefinisikan alur kerja eskalasi yang sangat jelas di dalam SOP, lengkap dengan formulir standar dan daftar kontak yang harus dihubungi jika terjadi ketidaksesuaian.<\/p>\n<h2>Optimalkan Proses Penerimaan Barang Anda dengan Solusi dari HashMicro<\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-175685 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/stok-barang-hm.webp\" alt=\"Optimalkan Proses Penerimaan Barang Anda dengan Solusi dari HashMicro\" width=\"1073\" height=\"706\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/stok-barang-hm.webp 1073w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/stok-barang-hm-300x197.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/stok-barang-hm-1024x674.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/stok-barang-hm-768x505.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/stok-barang-hm-638x420.webp 638w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/stok-barang-hm-150x99.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/stok-barang-hm-696x458.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/stok-barang-hm-1068x703.webp 1068w\" sizes=\"auto, (max-width: 1073px) 100vw, 1073px\" \/><\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/software-stok-barang\">Software Stok Barang HashMicro<\/a> menyediakan sistem canggih di mana perusahaan dapat memproses transaksi lebih cepat, mengurangi <em>human error<\/em>, serta mendapatkan data yang akurat.<\/p>\n<p>Sistem ini dilengkapi dengan fitur otomasi <em>3-way matching<\/em>, pelacakan dengan <em>barcode<\/em>, dan integrasi langsung dengan modul akuntansi untuk memastikan setiap transaksi tercatat dengan baik dari awal hingga akhir.<\/p>\n<p><strong>Fitur Unggulan HashMicro untuk Penerimaan Barang:<\/strong><\/p>\n<ul>\n<li><strong>3-Way Matching Otomatis:<\/strong> Sistem secara otomatis memvalidasi kesesuaian antara <em>Purchase Order<\/em>, <em>invoice<\/em> pemasok, dan laporan penerimaan barang untuk mencegah pembayaran yang salah.<\/li>\n<li><strong>Barcode &amp; RFID Management:<\/strong> Mempercepat proses pencatatan barang masuk dengan pemindaian sederhana, mengurangi input manual dan meningkatkan akurasi data stok secara instan.<\/li>\n<li><strong>Goods Receipt Note (GRN) Otomatis:<\/strong> Menghasilkan dokumen bukti penerimaan barang secara otomatis setelah verifikasi, menciptakan jejak audit yang jelas dan mempercepat alur kerja.<\/li>\n<li><strong>Analisis Kinerja Pemasok:<\/strong> Melacak metrik penting seperti ketepatan waktu pengiriman dan kualitas barang dari setiap pemasok untuk membantu Anda membuat keputusan pengadaan yang lebih baik.<\/li>\n<li><strong>Pembaruan Stok Real-Time:<\/strong> Terintegrasi langsung dengan sistem inventaris untuk memastikan data ketersediaan stok selalu akurat dan ter-<em>update<\/em> di seluruh platform penjualan Anda.<\/li>\n<\/ul>\n<p>Dengan HashMicro, perusahaan Anda dapat meningkatkan efisiensi operasional, transparansi data, dan otomatisasi proses bisnis yang lebih baik. Untuk melihat bagaimana solusi kami dapat membantu bisnis Anda secara nyata, jangan ragu untuk mencoba <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">demo gratis<\/a> sekarang juga.<\/p>\n<h2>Kesimpulan<\/h2>\n<p>SOP penerimaan barang berperan sebagai fondasi penting dalam menjaga alur kerja gudang tetap teratur dan akurat. Dengan prosedur yang konsisten, perusahaan dapat meminimalkan kesalahan, menjaga kualitas barang, dan memastikan data inventaris selalu valid.<\/p>\n<p>Di sisi lain, <a href=\"https:\/\/www.hashmicro.com\/id\/software-stok-barang\">Software Stok Barang HashMicro<\/a> membantu mengotomatiskan rangkaian proses tersebut, mulai dari pencatatan kedatangan barang hingga rekonsiliasi data secara real-time. Automasi ini bukan hanya mengurangi human error, tetapi juga memberikan visibilitas penuh atas pergerakan inventaris.<\/p>\n<p>Coba <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">demo gratis<\/a> HashMicro sekarang untuk melihat bagaimana sistem ini mengotomatiskan prosedur penerimaan barang. Perkuat SOP penerimaan barang dan tingkatkan efisiensi operasional Anda bersama solusi dari HashMicro!<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/id\/inventaris?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/inventory-tips-trick.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/inventory-tips-trick.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/inventory-tips-trick-m.webp\" alt=\"Inventory_Tips\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script>\n<h2><strong>Pertanyaan Seputar SOP Penerimaan Barang<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa tujuan utama dari dibuatnya SOP penerimaan barang?<\/strong><\/summary>\n<p>Tujuan utamanya adalah menstandarisasi proses penerimaan barang agar konsisten, efisien, dan akurat. Ini membantu memastikan kualitas produk, menjaga akurasi data inventaris, dan mencegah kerugian.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Siapa saja pihak yang biasanya terlibat dalam proses penerimaan barang?<\/strong><\/summary>\n<p>Pihak yang terlibat umumnya adalah staf gudang (pemeriksaan fisik), manajer gudang (pengawasan), departemen pembelian (verifikasi PO), dan terkadang tim kontrol kualitas untuk inspeksi mendalam.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Bagaimana software dapat membantu meningkatkan efektivitas SOP penerimaan barang?<\/strong><\/summary>\n<p>Software seperti sistem inventaris dapat mengotomatiskan tugas manual. Contohnya, verifikasi dokumen (3-way matching), pencatatan stok dengan pemindaian barcode, dan pembuatan laporan kinerja pemasok.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa perbedaan utama antara Purchase Order (PO) dan Surat Jalan?<\/strong><\/summary>\n<p>Purchase Order (PO) adalah dokumen pesanan yang dikeluarkan oleh pembeli kepada pemasok. Sementara itu, Surat Jalan (Delivery Order) adalah dokumen yang menyertai barang saat pengiriman dari pemasok.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa yang harus dilakukan jika barang yang diterima rusak atau jumlahnya kurang?<\/strong><\/summary>\n<p>Jika terjadi ketidaksesuaian, segera dokumentasikan masalah dengan foto, catat pada surat jalan, pisahkan barang yang bermasalah, dan laporkan ke departemen pembelian untuk ditindaklanjuti dengan pemasok.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Proses penerimaan barang sering kali menjadi sumber masalah ketika tidak didukung SOP penerimaan barang yang jelas. Ketidakteraturan alur kerja di tahap awal ini membuat tim rawan salah input, kehilangan jejak barang, hingga terjadi perbedaan data antara fisik dan sistem. Dampaknya bukan sekadar selisih stok, tetapi juga potensi kerugian finansial dan reputasi bisnis yang menurun di [&hellip;]<\/p>\n","protected":false},"author":160,"featured_media":175688,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[88],"tags":[],"class_list":{"0":"post-175684","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-inventory"},"acf":{"post_reviewer":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.1 (Yoast SEO v25.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Prosedur dan Tantangan SOP Penerimaan Barang Gudang<\/title>\n<meta name=\"description\" content=\"Pelajari prosedur SOP penerimaan barang gudang, mulai dari tantangan hingga cara otomatisasi untuk meningkatkan akurasi stok.\" \/>\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\/sop-penerimaan-barang\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prosedur dan Contoh SOP Penerimaan Barang Gudang\" \/>\n<meta property=\"og:description\" content=\"Pelajari prosedur SOP penerimaan barang gudang, mulai dari tantangan hingga cara otomatisasi untuk meningkatkan akurasi stok.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/\" \/>\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-11-06T02:19:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-20T10:07:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sop-penerimaan-barang-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=\"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=\"16 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\/sop-penerimaan-barang\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/\"},\"author\":{\"name\":\"Jessica Wijaya\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980\"},\"headline\":\"Prosedur dan Contoh SOP Penerimaan Barang Gudang\",\"datePublished\":\"2025-11-06T02:19:28+00:00\",\"dateModified\":\"2026-02-20T10:07:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/\"},\"wordCount\":2677,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sop-penerimaan-barang-hashmicro.webp\",\"articleSection\":[\"Inventory\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/\",\"name\":\"Prosedur dan Tantangan SOP Penerimaan Barang Gudang\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sop-penerimaan-barang-hashmicro.webp\",\"datePublished\":\"2025-11-06T02:19:28+00:00\",\"dateModified\":\"2026-02-20T10:07:05+00:00\",\"description\":\"Pelajari prosedur SOP penerimaan barang gudang, mulai dari tantangan hingga cara otomatisasi untuk meningkatkan akurasi stok.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sop-penerimaan-barang-hashmicro.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sop-penerimaan-barang-hashmicro.webp\",\"width\":1200,\"height\":675,\"caption\":\"sop-penerimaan-barang-hashmicro\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prosedur dan Contoh SOP Penerimaan Barang Gudang\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/\",\"name\":\"HashMicro Indonesia\",\"description\":\"Blog Software Manajemen Bisnis Indonesia #1\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/id\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\",\"name\":\"HashMicro Indonesia\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp\",\"width\":924,\"height\":121,\"caption\":\"HashMicro Indonesia\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/hashmicro\",\"https:\/\/x.com\/hashmicro\",\"https:\/\/www.linkedin.com\/company\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980\",\"name\":\"Jessica Wijaya\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp\",\"caption\":\"Jessica Wijaya\"},\"description\":\"Selama lebih dari 5 tahun sebagai Senior Content Writer, Jessica telah menulis topik yang mengulas tentang bidang inventory dan warehouse management. Keahliannya mencakup penulisan artikel manajemen stok dan persediaan, perencanaan kebutuhan, multi-warehouse management, dan integrasi sistem digital untuk pengelolaan barang.\",\"sameAs\":[\"https:\/\/www.hashmicro.com\/id\/\"],\"gender\":\"Perempuan\",\"knowsAbout\":[\"Inventory\",\"inventory management\",\"manajemen inventaris\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Senior Content Writer\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/author\/jessicawijaya\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Prosedur dan Tantangan SOP Penerimaan Barang Gudang","description":"Pelajari prosedur SOP penerimaan barang gudang, mulai dari tantangan hingga cara otomatisasi untuk meningkatkan akurasi stok.","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\/sop-penerimaan-barang\/","og_locale":"id_ID","og_type":"article","og_title":"Prosedur dan Contoh SOP Penerimaan Barang Gudang","og_description":"Pelajari prosedur SOP penerimaan barang gudang, mulai dari tantangan hingga cara otomatisasi untuk meningkatkan akurasi stok.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-11-06T02:19:28+00:00","article_modified_time":"2026-02-20T10:07:05+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sop-penerimaan-barang-hashmicro.webp","type":"image\/webp"}],"author":"Jessica Wijaya","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Jessica Wijaya","Estimasi waktu membaca":"16 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/"},"author":{"name":"Jessica Wijaya","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980"},"headline":"Prosedur dan Contoh SOP Penerimaan Barang Gudang","datePublished":"2025-11-06T02:19:28+00:00","dateModified":"2026-02-20T10:07:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/"},"wordCount":2677,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sop-penerimaan-barang-hashmicro.webp","articleSection":["Inventory"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/","name":"Prosedur dan Tantangan SOP Penerimaan Barang Gudang","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sop-penerimaan-barang-hashmicro.webp","datePublished":"2025-11-06T02:19:28+00:00","dateModified":"2026-02-20T10:07:05+00:00","description":"Pelajari prosedur SOP penerimaan barang gudang, mulai dari tantangan hingga cara otomatisasi untuk meningkatkan akurasi stok.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sop-penerimaan-barang-hashmicro.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/sop-penerimaan-barang-hashmicro.webp","width":1200,"height":675,"caption":"sop-penerimaan-barang-hashmicro"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/sop-penerimaan-barang\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Prosedur dan Contoh SOP Penerimaan Barang Gudang"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website","url":"https:\/\/www.hashmicro.com\/id\/blog\/","name":"HashMicro Indonesia","description":"Blog Software Manajemen Bisnis Indonesia #1","publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/id\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization","name":"HashMicro Indonesia","url":"https:\/\/www.hashmicro.com\/id\/blog\/","logo":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp","width":924,"height":121,"caption":"HashMicro Indonesia"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hashmicro","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980","name":"Jessica Wijaya","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","caption":"Jessica Wijaya"},"description":"Selama lebih dari 5 tahun sebagai Senior Content Writer, Jessica telah menulis topik yang mengulas tentang bidang inventory dan warehouse management. Keahliannya mencakup penulisan artikel manajemen stok dan persediaan, perencanaan kebutuhan, multi-warehouse management, dan integrasi sistem digital untuk pengelolaan barang.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"Perempuan","knowsAbout":["Inventory","inventory management","manajemen inventaris"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Senior Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/jessicawijaya\/"}]}},"focus_keyword":"sop penerimaan barang","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/175684","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=175684"}],"version-history":[{"count":4,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/175684\/revisions"}],"predecessor-version":[{"id":189398,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/175684\/revisions\/189398"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/175688"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=175684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=175684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=175684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}