{"id":174869,"date":"2025-06-05T09:39:34","date_gmt":"2025-06-05T02:39:34","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=174869"},"modified":"2026-02-26T09:43:15","modified_gmt":"2026-02-26T02:43:15","slug":"last-mile-delivery","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/","title":{"rendered":"Last Mile Delivery sebagai Strategi Mengoptimalkan Pengiriman"},"content":{"rendered":"<p>Dalam rantai pasok modern, last mile delivery menjadi tahap penting yang menentukan kepuasan pelanggan. Keterlambatan atau kesalahan kecil di tahap akhir dapat merusak pengalaman belanja dan kepercayaan terhadap merek.<\/p>\n<p>Untuk menghadapi hal tersebut, banyak perusahaan yang mulai beralih ke <a href=\"https:\/\/www.hashmicro.com\/id\/transportation-management-software\">transportation management software<\/a> untuk mengoptimalkan rute, waktu pengiriman, dan pengelolaan armada perusahaan. Sehingga bisa menekan biaya operasional dan menjamin pengiriman tepat waktu.<\/p>\n<p>Kini, keberhasilan bisnis tak hanya bergantung pada kualitas produk, tetapi juga pada kecepatan dan keandalan pengiriman. Dengan teknologi yang tepat, last mile delivery dapat menjadi keunggulan kompetitif yang membangun loyalitas pelanggan jangka panjang.<\/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 aria-level=\"1\"><a href=\"#lastmiledelivery\">Last mile delivery adalah<\/a> tahap akhir pengiriman dari pusat distribusi ke pelanggan yang menentukan kepuasan dan persepsi terhadap merek.<\/li>\n<li aria-level=\"1\">Ada beberapa <a href=\"#tantangan\">tantangan operasional last mile delivery<\/a> yaitu biaya operasional tinggi, ekspektasi pelanggan yang meningkat, kompleksitas optimasi rute, kurangnya visibilitas, dan manajemen pengiriman gagal.<\/li>\n<li><a href=\"https:\/\/www.hashmicro.com\/id\/transportation-management-software\">Transportation Management Software HashMicro<\/a> menghadirkan integrasi route planning, tracking, e-POD, dan akuntansi untuk menekan biaya sekaligus menjaga konsistensi SLA.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span data-sheets-root=\"1\"><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<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><span id=\"lastmiledelivery\">Apa Itu Last Mile Delivery?<\/span><\/strong><\/h2>\n<p>Last-mile delivery adalah tahap akhir pengiriman: paket dipindahkan dari hub\/pusat distribusi terakhir ke alamat penerima (rumah\/kantor). Tahap ini krusial karena menjadi satu-satunya kontak fisik antara brand dan pelanggan pada transaksi online, sehingga langsung memengaruhi persepsi layanan.<\/p>\n<p>Berbeda dengan first-\/middle-mile yang massal dan rutenya relatif tetap, last-mile melayani banyak alamat kecil dengan rute dinamis serta kendala seperti macet, alamat sulit, atau penerima tidak di tempat.<\/p>\n<p>Dampaknya, porsi biayanya sering paling besar. Karena itu, optimasi rute, penjadwalan, dan kapasitas perlu diprioritaskan.<\/p>\n<h2><strong>Mengapa Last Mile Delivery Penting bagi Bisnis?<\/strong><\/h2>\n<p>Last mile delivery kini menjadi penentu utama dalam pengalaman pelanggan dan efisiensi bisnis. Berikut beberapa alasan mengapa perannya sangat penting.<\/p>\n<h3><strong>1. Meningkatkan kepuasan dan loyalitas pelanggan<\/strong><\/h3>\n<p>Pengantaran tepat waktu dengan ETA yang akurat dan update status yang jelas meningkatkan rasa aman pelanggan. Hasilnya, keluhan berkurang, repeat order naik, dan loyalitas lebih terjaga.<\/p>\n<h3><strong>2. Membangun reputasi dan citra merek<\/strong><\/h3>\n<p>Kinerja last mile yang stabil seperti SLA terpenuhi, paket utuh, kurir profesional berdampak langsung pada rating\/review dan rekomendasi organik. Sebaliknya, keterlambatan dan paket hilang cepat merusak persepsi merek.<\/p>\n<h3><strong>3. Menciptakan keunggulan kompetitif<\/strong><\/h3>\n<p>Opsi pengiriman yang fleksibel (same-day, time window, pickup point) plus pelacakan real-time membuat brand lebih dipilih. Karena pengalaman akhir lebih mulus, konversi dan retensi biasanya ikut membaik.<\/p>\n<h3><strong>4. Retensi naik, nilai pelanggan ikut naik<\/strong><\/h3>\n<p>Pengiriman yang tepat waktu dan mulus membuat pelanggan kembali. Anda pasti tahu bahwa lebih murah mempertahankan daripada mencari yang baru. Dampaknya, repeat order meningkat, komplain\/refund menurun, dan nilai seumur hidup pelanggan (CLV) ikut naik.<\/p>\n<h2><strong>Tahapan dalam Last Mile Delivery<\/strong><\/h2>\n<p>Untuk memperbaiki kinerja, kenali dulu alur kerjanya dari pesanan masuk sampai paket diterima. Berikut tahapan kunci yang perlu diawasi agar pengiriman tetap cepat, akurat, dan rapi.<\/p>\n<h3><strong>1. Pesanan masuk ke sistem (OMS)<\/strong><\/h3>\n<p>Pesanan masuk ke OMS atau e-commerce, lalu sistem melakukan otorisasi pembayaran, alokasi stok, dan validasi alamat. Kecepatan tahap ini bergantung pada integrasi OMS dan WMS atau Inventory dan cut-off time (batas proses harian).<\/p>\n<h3><strong>2. Barang ke gudang atau hub last-mile<\/strong><\/h3>\n<p>Barang di-pick dan pack di gudang, kemudian menuju hub atau last-mile station untuk sortir berdasarkan area atau rute (kadang langsung dari DC tanpa transit, tergantung jaringan). Sortasi memakai scanner dan konveyor agar tiap paket masuk ke trip atau armada yang tepat.<\/p>\n<h3><strong>3. Perencanaan dan optimasi rute<\/strong><\/h3>\n<p>Sistem mengalokasikan paket ke kurir dan menghitung rute dengan mempertimbangkan alamat, kapasitas kendaraan, time window atau ETA, durasi layanan, dan lalu lintas. Tujuannya: meminimalkan jarak dan waktu, memaksimalkan drop per trip, dan memastikan SLA terpenuhi.<\/p>\n<h3><strong>4. Eksekusi pengiriman oleh kurir<\/strong><\/h3>\n<p>Kurir memindai muatan, lalu mengikuti rute dari aplikasi driver, sementara status pengiriman diperbarui secara real-time. Jika ada perubahan di lapangan seperti alamat, akses gedung, atau kemacetan, dispatcher dapat melakukan re-optimasi rute atau reshuffle stop agar pengiriman tetap sesuai target. Agar pembagian trip dan penugasan kurir lebih konsisten, proses ini bisa dibantu <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/delivery-management-system\/\">delivery management system<\/a> yang mengotomatisasi dispatch berdasarkan kapasitas, ETA, dan prioritas order.<\/p>\n<h3><strong>5. Konfirmasi dan Proof of Delivery (POD)<\/strong><\/h3>\n<p>Saat paket diterima, kurir mencatat POD berupa tanda tangan elektronik, foto di lokasi, atau kode OTP. Jika pengiriman gagal, sistem membuat NDR atau reattempt atau opsi pickup point, dan status pesanan otomatis diperbarui di sistem serta notifikasi dikirim ke pelanggan.<\/p>\n<p>Implementasi <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery-software\/\">last mile delivery software<\/a> bisa mengintegrasikan seluruh proses ini secara real-time agar memastikan setiap paket dikirim dengan cepat dan akurat.<\/p>\n<h2><strong><span id=\"tantangan\">Tantangan Terbesar dalam Operasional Last Mile Delivery<\/span><\/strong><\/h2>\n<p>Last mile delivery adalah tahap paling mahal dan rumit dalam rantai pasokan. Berikut tantangan utama yang perlu diatasi agar efisiensi dan kepuasan pelanggan tetap terjaga.<\/p>\n<h3><strong>1. Biaya operasional tinggi<\/strong><\/h3>\n<p>Last mile delivery menyerap hingga lebih dari 50% total biaya logistik. Faktor utamanya mencakup bahan bakar, tenaga kurir, perawatan kendaraan, dan pengiriman ulang (failed delivery).<\/p>\n<p>Karena pengiriman bersifat satu per satu ke alamat berbeda, biaya per paket jauh lebih besar dibanding distribusi massal antar gudang. Tantangannya adalah menekan biaya tanpa menurunkan kualitas layanan.<\/p>\n<h3><strong>2. Ekspektasi pelanggan meningkat<\/strong><\/h3>\n<p>Pelanggan kini menuntut pengiriman cepat, gratis, dan transparan, bahkan same-day delivery. Mereka ingin melacak paket secara real-time dan mendapat notifikasi di setiap tahap.<\/p>\n<p>Tekanan ini membuat bisnis perlu berinvestasi pada sistem pelacakan, armada fleksibel, dan infrastruktur digital agar tetap kompetitif.<\/p>\n<h3><strong>3. Kompleksitas optimasi rute<\/strong><\/h3>\n<p>Rute di area perkotaan padat menghadapi kendala seperti macet, jalan satu arah, dan zona terbatas, sementara di area rural, jarak jauh antar titik menaikkan biaya per pengiriman. Tanpa teknologi optimasi rute berbasis data dan GPS real-time, efisiensi waktu dan biaya sulit dicapai.<\/p>\n<h2>Strategi Jitu Mengoptimalkan Last Mile Delivery Secara Efektif<\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-175017\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/strategi-jitu-mengoptimalkan-last-mile-delivery-secara-efektif.webp\" alt=\"strategi-jitu-mengoptimalkan last mile delivery secara efektif\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/strategi-jitu-mengoptimalkan-last-mile-delivery-secara-efektif.webp 1200w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/strategi-jitu-mengoptimalkan-last-mile-delivery-secara-efektif-300x169.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/strategi-jitu-mengoptimalkan-last-mile-delivery-secara-efektif-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/strategi-jitu-mengoptimalkan-last-mile-delivery-secara-efektif-768x432.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/strategi-jitu-mengoptimalkan-last-mile-delivery-secara-efektif-747x420.webp 747w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/strategi-jitu-mengoptimalkan-last-mile-delivery-secara-efektif-150x84.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/strategi-jitu-mengoptimalkan-last-mile-delivery-secara-efektif-696x392.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/strategi-jitu-mengoptimalkan-last-mile-delivery-secara-efektif-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>Mari kita jelajahi beberapa strategi paling efektif untuk mengubah tantangan menjadi peluang nyata.<\/p>\n<h3><strong>1. Implementasi teknologi rute planning cerdas (Smart Route Planning)<\/strong><\/h3>\n<p>Mengadopsi perangkat lunak <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/route-planning\/\">route planning<\/a> adalah langkah fundamental untuk meningkatkan efisiensi armada pengiriman Anda secara drastis.<\/p>\n<p>Teknologi ini menggunakan algoritma canggih untuk secara otomatis menghitung rute paling efisien berdasarkan puluhan variabel, seperti lokasi pengiriman, kapasitas kendaraan, prioritas pesanan, kondisi lalu lintas <em>real-time<\/em>, dan jendela waktu pengiriman.<\/p>\n<p>Hasilnya adalah pengurangan jarak tempuh yang signifikan, penghematan biaya bahan bakar, dan peningkatan jumlah paket yang dapat dikirim oleh setiap kurir per hari. Hal ini secara langsung meningkatkan produktivitas dan mengurangi jejak karbon perusahaan.<\/p>\n<h3><strong>2. Menyediakan pelacakan pesanan real-time untuk pelanggan<\/strong><\/h3>\n<p>Memberikan pelanggan kemampuan untuk melacak pesanan mereka secara <em>real-time<\/em> dari ponsel mereka adalah standar industri saat ini dan merupakan cara ampuh untuk meningkatkan transparansi dan kepuasan.<\/p>\n<p>Fitur seperti estimasi waktu kedatangan (ETA) yang dinamis dan notifikasi otomatis saat kurir mendekat akan semakin memperkaya pengalaman pelanggan dan membangun kepercayaan terhadap merek Anda.<\/p>\n<h3><strong>3. Mengadopsi sistem TMS<\/strong><\/h3>\n<p>Dengan <a href=\"https:\/\/www.hashmicro.com\/id\/transportation-management-software\">transportation management software<\/a>, Anda mendapatkan visibilitas dan kontrol yang lebih baik atas seluruh operasi logistik, memungkinkan pengambilan keputusan yang lebih cepat dan berbasis data untuk optimasi berkelanjutan.<\/p>\n<p>Mencari <strong>rekomendasi software manajemen transportasi terbaik<\/strong> adalah langkah awal yang bijak bagi perusahaan yang serius ingin mengoptimalkan logistiknya.<\/p>\n<h3><strong>4. Otomatisasi komunikasi proaktif dengan pelanggan<\/strong><\/h3>\n<p>Manfaatkan otomatisasi untuk mengirimkan notifikasi proaktif melalui SMS atau email pada setiap titik krusial, seperti saat pesanan dikonfirmasi, saat paket keluar untuk pengiriman, dan saat pengiriman berhasil.<\/p>\n<p>Komunikasi yang konsisten dan tepat waktu ini menunjukkan profesionalisme dan kepedulian, serta memberikan pelanggan ketenangan pikiran selama menunggu pesanan mereka tiba, yang pada gilirannya mengurangi potensi keluhan.<\/p>\n<h3><strong>5. Mengintegrasikan seluruh proses dengan software ERP terpusat<\/strong><\/h3>\n<p>Solusi parsial untuk setiap tantangan tidak akan efektif tanpa adanya integrasi yang solid di belakangnya, dan di sinilah peran <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/software-last-mile-delivery\/\">software last mile delivery<\/a> menjadi sangat vital.<\/p>\n<h2>Mengukur Keberhasilan: KPI Penting untuk Last Mile Delivery<\/h2>\n<p>Prinsip dasar dalam manajemen bisnis adalah &#8220;Anda tidak dapat memperbaiki apa yang tidak dapat Anda ukur.&#8221; Hal ini sangat berlaku dalam operasional <em>last mile delivery<\/em> yang kompleks dan dinamis. Untuk dapat terus melakukan perbaikan dan optimasi, Anda perlu melacak serangkaian <em>Key Performance Indicators<\/em> (KPI) yang tepat dan relevan. KPI ini berfungsi sebagai dasbor kesehatan bagi operasi logistik Anda, memberikan wawasan kuantitatif tentang apa yang sudah berjalan baik dan area mana yang memerlukan perhatian lebih lanjut untuk perbaikan.<\/p>\n<p>Dengan memantau metrik-metrik ini secara konsisten, para manajer dapat beralih dari pengambilan keputusan yang berbasis asumsi menjadi strategi yang didukung oleh data yang solid dan terukur. KPI ini tidak hanya membantu mengukur efisiensi internal dan kontrol biaya, tetapi juga secara langsung merefleksikan kualitas layanan yang dirasakan oleh pelanggan akhir. Berikut adalah beberapa KPI paling penting yang harus dipantau oleh setiap bisnis untuk memastikan keberhasilan strategi <em>last mile delivery<\/em> mereka secara komprehensif.<\/p>\n<h3>1. On-Time Delivery Rate<\/h3>\n<p>Ini adalah salah satu KPI paling fundamental yang secara langsung mengukur persentase pesanan yang berhasil dikirimkan kepada pelanggan dalam jendela waktu yang telah dijanjikan. Tingkat pengiriman tepat waktu yang tinggi adalah indikator kuat dari efisiensi operasional dan keandalan layanan Anda, yang merupakan faktor utama dalam kepuasan pelanggan. Sebaliknya, tingkat yang rendah dapat menandakan adanya masalah sistemik dalam perencanaan rute, manajemen armada, atau estimasi waktu pengiriman yang perlu segera diatasi untuk menjaga kepercayaan pelanggan.<\/p>\n<h3>2. Cost Per Delivery<\/h3>\n<p>Metrik ini menghitung total biaya rata-rata yang dikeluarkan untuk mengirimkan satu paket ke pelanggan, dengan memperhitungkan semua biaya variabel dan tetap seperti bahan bakar, gaji kurir, perawatan kendaraan, dan biaya perangkat lunak. Memantau KPI ini sangat penting untuk mengontrol anggaran logistik dan mengidentifikasi peluang penghematan biaya secara berkelanjutan. Dengan menganalisis biaya per pengiriman, Anda dapat mengevaluasi efektivitas strategi optimasi rute dan membuat keputusan yang lebih baik terkait struktur biaya operasional Anda.<\/p>\n<h3>3. Order Accuracy<\/h3>\n<p>Akurasi pesanan mengukur persentase pengiriman yang sampai ke pelanggan dengan benar, baik dari segi produk yang tepat, jumlah yang sesuai, maupun kondisi barang yang sempurna tanpa kerusakan. Tingkat akurasi yang rendah dapat menyebabkan ketidakpuasan pelanggan yang serius dan menimbulkan biaya tambahan dari proses pengembalian dan pengiriman ulang. KPI ini mencerminkan kualitas proses <em>picking<\/em> dan <em>packing<\/em> di gudang serta penanganan paket selama transit, menjadikannya metrik penting untuk kualitas layanan secara keseluruhan.<\/p>\n<h3>4. Customer Satisfaction (CSAT) Score<\/h3>\n<p>Meskipun merupakan metrik kualitatif, skor CSAT yang terkait langsung dengan pengalaman pengiriman memberikan wawasan yang tak ternilai tentang bagaimana pelanggan merasakan layanan Anda. Ini biasanya diukur melalui survei singkat yang dikirimkan kepada pelanggan setelah mereka menerima pesanan, menanyakan tingkat kepuasan mereka terhadap kecepatan, kondisi paket, dan profesionalisme kurir. Umpan balik langsung ini membantu Anda memahami perspektif pelanggan dan mengidentifikasi aspek layanan yang paling perlu ditingkatkan untuk meningkatkan pengalaman mereka.<\/p>\n<h3>5. Average Time to Delivery<\/h3>\n<p>KPI ini mengukur rata-rata waktu yang dibutuhkan dari saat pesanan diterima oleh sistem hingga paket berhasil diserahkan ke tangan pelanggan. Melacak metrik ini membantu Anda memahami kecepatan keseluruhan proses logistik Anda dan menetapkan ekspektasi waktu pengiriman yang realistis bagi pelanggan di masa depan. Dengan menganalisis rata-rata waktu pengiriman berdasarkan wilayah atau jenis produk, Anda dapat mengidentifikasi hambatan (<em>bottlenecks<\/em>) dalam alur kerja dan mencari cara untuk mempercepat proses dari awal hingga akhir.<\/p>\n<h2><strong>HashMicro TMS: Kunci Efisiensi Pengiriman Bisnis Anda<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-174625\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/02\/hashmicro-fleet-management.webp\" alt=\"fleet management hashmicro\" width=\"1191\" height=\"800\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/02\/hashmicro-fleet-management.webp 1191w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/02\/hashmicro-fleet-management-300x202.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/02\/hashmicro-fleet-management-1024x688.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/02\/hashmicro-fleet-management-768x516.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/02\/hashmicro-fleet-management-625x420.webp 625w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/02\/hashmicro-fleet-management-150x101.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/02\/hashmicro-fleet-management-696x468.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/02\/hashmicro-fleet-management-1068x717.webp 1068w\" sizes=\"auto, (max-width: 1191px) 100vw, 1191px\" \/><\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/transportation-management-software\">Transportation Management Software HashMicro<\/a> membantu bisnis mengotomatiskan seluruh proses logistik, mulai dari perencanaan rute hingga pelacakan pengiriman real-time. Solusi ini mengatasi tantangan last mile delivery dengan sistem yang efisien, transparan, dan mudah dikelola.<\/p>\n<p>Dengan integrasi penuh antar modul ERP, HashMicro menghadirkan visibilitas menyeluruh terhadap armada, inventaris, hingga akuntansi. Hasilnya, perusahaan dapat menekan biaya operasional, meningkatkan akurasi pengiriman, dan mengambil keputusan lebih cepat berbasis data.<\/p>\n<p>Fitur Transportation Management Software HashMicro:<\/p>\n<ul>\n<li><strong>Route &amp; Shipment Planning:<\/strong> Mengoptimalkan rute pengiriman secara otomatis untuk mengurangi jarak tempuh dan biaya bahan bakar, serta meningkatkan efisiensi pengiriman harian.<\/li>\n<li><strong>Real-time Shipment Tracking:<\/strong> Memberikan visibilitas penuh bagi perusahaan dan pelanggan untuk melacak lokasi pengiriman secara <em>real-time<\/em>, meningkatkan transparansi dan kepercayaan.<\/li>\n<li><strong>Order Management:<\/strong> Mengelola seluruh pesanan pengiriman dari berbagai saluran dalam satu dasbor terpusat, memudahkan alokasi dan pemantauan status setiap pesanan.<\/li>\n<li><strong>Advanced Reporting &amp; Analytics:<\/strong> Menghasilkan laporan analitik mendalam mengenai kinerja armada, biaya per pengiriman, dan KPI logistik lainnya untuk mendukung pengambilan keputusan strategis.<\/li>\n<li><strong>Driver &amp; Fleet Management:<\/strong> Mengelola data pengemudi, jadwal kendaraan, dan pemeliharaan armada secara terintegrasi untuk memastikan kesiapan operasional dan keamanan.<\/li>\n<\/ul>\n<p>Temukan bagaimana solusi HashMicro dapat mengubah cara Anda mengelola pengiriman lewat <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">demo gratis<\/a>.<\/p>\n<h2>Kesimpulan<\/h2>\n<p>Last mile delivery kini menjadi faktor penentu loyalitas pelanggan dan keberhasilan bisnis. Tantangan seperti biaya tinggi dan kompleksitas rute dapat diatasi dengan strategi cerdas serta dukungan teknologi tepat.<\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/transportation-management-software\">Transportation Management Software HashMicro<\/a> membantu bisnis mencapai efisiensi dan transparansi penuh dalam pengelolaan pengiriman. Sistem ini memastikan setiap proses berjalan cepat, akurat, dan terukur.<\/p>\n<p>Mulailah transformasi logistik Anda hari ini dengan mencoba <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">demo gratis<\/a> HashMicro dan rasakan bagaimana solusi terintegrasi ini meningkatkan kinerja operasional secara nyata.<\/p>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/id\/fleet-management?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/04\/Fleet.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/04\/Fleet.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/04\/Fleet-2.webp\" alt=\"FleetManagement\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/span><\/p>\n<h2><strong>Pertanyaan Seputar Last Mile Delivery<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa saja teknologi utama dalam last mile delivery?<\/strong><\/summary>\n<p>Teknologi utama meliputi software optimasi rute (route planning), sistem manajemen transportasi (TMS), pelacakan GPS real-time, bukti pengiriman elektronik (e-POD), dan platform komunikasi otomatis dengan pelanggan.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Berapa persen biaya last mile delivery dari total biaya logistik?<\/strong><\/summary>\n<p>Biaya last mile delivery dapat bervariasi, namun studi industri secara konsisten menunjukkan bahwa tahap ini menyumbang porsi terbesar, seringkali mencapai 40% hingga lebih dari 50% dari total biaya pengiriman sebuah produk.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa peran ERP dalam optimasi last mile delivery?<\/strong><\/summary>\n<p>Software ERP berperan sebagai platform terpusat yang mengintegrasikan data dari penjualan, inventaris, dan logistik. Integrasi ini memastikan alur informasi yang mulus, memungkinkan perencanaan yang lebih akurat, dan memberikan visibilitas menyeluruh yang dibutuhkan untuk mengoptimalkan proses last mile delivery secara efektif.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Bagaimana cara mengurangi tingkat pengiriman gagal?<\/strong><\/summary>\n<p>Mengurangi pengiriman gagal dapat dilakukan dengan menyediakan pelacakan real-time bagi pelanggan, mengirim notifikasi pengiriman proaktif, menawarkan opsi penjadwalan ulang yang fleksibel, dan memverifikasi alamat pengiriman secara akurat sebelum kurir berangkat.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dalam rantai pasok modern, last mile delivery menjadi tahap penting yang menentukan kepuasan pelanggan. Keterlambatan atau kesalahan kecil di tahap akhir dapat merusak pengalaman belanja dan kepercayaan terhadap merek. Untuk menghadapi hal tersebut, banyak perusahaan yang mulai beralih ke transportation management software untuk mengoptimalkan rute, waktu pengiriman, dan pengelolaan armada perusahaan. Sehingga bisa menekan biaya [&hellip;]<\/p>\n","protected":false},"author":161,"featured_media":174866,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1156],"tags":[],"class_list":{"0":"post-174869","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-transport-management"},"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>Apa itu Last Mile Delivery? Tahapan &amp; Tantangannya<\/title>\n<meta name=\"description\" content=\"Ketahui pentingnya last mile delivery dalam bisnis e-commerce untuk kepuasan pelanggan yang lebih baik dan loyalitas merek.\" \/>\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\/last-mile-delivery\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Last Mile Delivery sebagai Strategi Mengoptimalkan Pengiriman\" \/>\n<meta property=\"og:description\" content=\"Ketahui pentingnya last mile delivery dalam bisnis e-commerce untuk kepuasan pelanggan yang lebih baik dan loyalitas merek.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/\" \/>\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-06-05T02:39:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-26T02:43:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/strategi-optimalkan-last-mile-delivery.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=\"13 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\/last-mile-delivery\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/\"},\"author\":{\"name\":\"Jonathan Kurniawan\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/029ac06d135cf8424dfa4f3cb3fef6c5\"},\"headline\":\"Last Mile Delivery sebagai Strategi Mengoptimalkan Pengiriman\",\"datePublished\":\"2025-06-05T02:39:34+00:00\",\"dateModified\":\"2026-02-26T02:43:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/\"},\"wordCount\":2161,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/strategi-optimalkan-last-mile-delivery.webp\",\"articleSection\":[\"Transport Management\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/\",\"name\":\"Apa itu Last Mile Delivery? Tahapan & Tantangannya\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/strategi-optimalkan-last-mile-delivery.webp\",\"datePublished\":\"2025-06-05T02:39:34+00:00\",\"dateModified\":\"2026-02-26T02:43:15+00:00\",\"description\":\"Ketahui pentingnya last mile delivery dalam bisnis e-commerce untuk kepuasan pelanggan yang lebih baik dan loyalitas merek.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/strategi-optimalkan-last-mile-delivery.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/strategi-optimalkan-last-mile-delivery.webp\",\"width\":1200,\"height\":675,\"caption\":\"strategi optimalkan last mile delivery\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Last Mile Delivery sebagai Strategi Mengoptimalkan Pengiriman\"}]},{\"@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\/#\/schema\/person\/image\/\",\"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":"Apa itu Last Mile Delivery? Tahapan & Tantangannya","description":"Ketahui pentingnya last mile delivery dalam bisnis e-commerce untuk kepuasan pelanggan yang lebih baik dan loyalitas merek.","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\/last-mile-delivery\/","og_locale":"id_ID","og_type":"article","og_title":"Last Mile Delivery sebagai Strategi Mengoptimalkan Pengiriman","og_description":"Ketahui pentingnya last mile delivery dalam bisnis e-commerce untuk kepuasan pelanggan yang lebih baik dan loyalitas merek.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-06-05T02:39:34+00:00","article_modified_time":"2026-02-26T02:43:15+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/strategi-optimalkan-last-mile-delivery.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":"13 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/"},"author":{"name":"Jonathan Kurniawan","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/029ac06d135cf8424dfa4f3cb3fef6c5"},"headline":"Last Mile Delivery sebagai Strategi Mengoptimalkan Pengiriman","datePublished":"2025-06-05T02:39:34+00:00","dateModified":"2026-02-26T02:43:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/"},"wordCount":2161,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/strategi-optimalkan-last-mile-delivery.webp","articleSection":["Transport Management"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/","name":"Apa itu Last Mile Delivery? Tahapan & Tantangannya","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/strategi-optimalkan-last-mile-delivery.webp","datePublished":"2025-06-05T02:39:34+00:00","dateModified":"2026-02-26T02:43:15+00:00","description":"Ketahui pentingnya last mile delivery dalam bisnis e-commerce untuk kepuasan pelanggan yang lebih baik dan loyalitas merek.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/strategi-optimalkan-last-mile-delivery.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/strategi-optimalkan-last-mile-delivery.webp","width":1200,"height":675,"caption":"strategi optimalkan last mile delivery"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/last-mile-delivery\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Last Mile Delivery sebagai Strategi Mengoptimalkan Pengiriman"}]},{"@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\/#\/schema\/person\/image\/","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":"last mile delivery","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/174869","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=174869"}],"version-history":[{"count":9,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/174869\/revisions"}],"predecessor-version":[{"id":189861,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/174869\/revisions\/189861"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/174866"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=174869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=174869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=174869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}