{"id":177720,"date":"2025-11-21T00:00:00","date_gmt":"2025-11-20T17:00:00","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=177720"},"modified":"2026-03-09T14:37:05","modified_gmt":"2026-03-09T07:37:05","slug":"fleet-optimization","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/","title":{"rendered":"Fleet Optimization: Strategi Efisiensi &#038; Kontrol Biaya Armada"},"content":{"rendered":"<p>Banyak perusahaan yang mengandalkan armada menghadapi tantangan operasional yang terus meningkat, mulai dari konsumsi BBM yang boros, rute tidak efisien, hingga biaya perawatan yang sulit diprediksi. Ketidakteraturan ini membuat biaya operasional melonjak tanpa disadari.<\/p>\n<p>Masalah tersebut seringkali tidak terlihat secara kasatmata karena tersembunyi dalam aktivitas harian armada. Ketika dibiarkan, pemborosan kecil berubah menjadi kerugian besar yang menggerus margin profit.<\/p>\n<p>Fleet optimization hadir sebagai solusi strategis untuk meningkatkan efisiensi, mengendalikan biaya, dan memastikan setiap kendaraan bekerja secara produktif.<\/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=\"#pengertian\">Fleet optimization adalah<\/a> proses sistematis untuk meningkatkan kinerja armada kendaraan komersial dengan menyeimbangkan biaya operasional, efisiensi waktu, dan produktivitas aset.<\/li>\n<li aria-level=\"1\"><a href=\"#strategi\">5 strategi utama fleet optimization<\/a> meliputi penerapan <em>preventive maintenance<\/em> terjadwal hingga optimalisasi rute berbasis data dan integrasi data armada dengan sistem keuangan perusahaan.<\/li>\n<li aria-level=\"1\">Komponen dalam optimasi armada diantaranya manajemen aset, manajemen pengemudi dan manajemen operasional.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\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> <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 id=\"pengertian\"><\/span><\/p>\n<h2><strong>Apa Itu Fleet Optimization?<\/strong><\/h2>\n<p>Fleet optimization adalah proses sistematis untuk meningkatkan kinerja armada dengan menyeimbangkan biaya operasional, efisiensi waktu, dan produktivitas aset. Upaya ini memanfaatkan teknologi dan analisis data untuk mengelola rute, konsumsi bahan bakar, serta pemeliharaan kendaraan agar <a href=\"https:\/\/medium.com\/@QuarkAndCode\/fleet-management-math-kpis-tco-cost-per-mile-to-cut-costs-d9cc05b6dd43\">TCO<\/a> tetap rendah.<\/p>\n<p>Lebih dari sekadar melacak lokasi kendaraan, optimasi armada mencakup pengelolaan siklus hidup aset dari pengadaan hingga peremajaan. Tanpa sistem terintegrasi, risiko idle time tinggi, kebocoran biaya, dan hilangnya visibilitas performa aset akan meningkat.<\/p>\n<h2><strong>Komponen Kunci dalam Ekosistem Optimasi Armada<\/strong><\/h2>\n<p>Komponen utama dalam optimasi armada meliputi manajemen kendaraan (aset fisik), manajemen pengemudi (SDM), manajemen bahan bakar, dan manajemen pemeliharaan. Keempat pilar ini harus saling terhubung melalui teknologi untuk menciptakan ekosistem operasional yang transparan dan efisien.<\/p>\n<p>Banyak manajer operasional hanya fokus pada satu aspek saja, padahal integrasi antar komponen adalah kunci keberhasilan utama. Saya akan membedah elemen-elemen vital yang membentuk struktur manajemen armada yang sukses. Berikut adalah pilar-pilar utama yang wajib Anda perhatikan untuk mencapai efisiensi maksimal:<\/p>\n<h3>1. Manajemen Aset dan Kendaraan (Vehicle Management)<\/h3>\n<p>Data induk aset atau <em>Master Data Asset<\/em> yang lengkap adalah fondasi dari segala strategi optimasi. Anda perlu mencatat spesifikasi kendaraan, status kepemilikan, hingga lokasi fisik aset secara mendetail. Fokus utamanya adalah pencatatan depresiasi dan nilai aset seiring waktu untuk keputusan peremajaan yang tepat.<\/p>\n<h3>2. Manajemen Pengemudi dan Perilaku Berkendara<\/h3>\n<p>Pengemudi memegang peran krusial dalam menentukan efisiensi bahan bakar dan keselamatan aset di jalan. Memantau perilaku pengemudi atau <em>driver behavior<\/em> seperti pengereman mendadak sangatlah penting. Data ini membantu Anda mengurangi risiko kecelakaan dan menekan biaya operasional yang tidak perlu.<\/p>\n<h3>3. Manajemen Operasional dan Rute (Route Planning)<span id=\"strategi\"><\/span><\/h3>\n<p>Perencanaan logistik yang matang bertujuan untuk meminimalkan jarak tempuh kosong yang merugikan. Pemilihan rute yang cerdas dapat mengurangi waktu pengiriman secara signifikan dan menghemat bahan bakar. Anda harus memastikan setiap kilometer yang ditempuh memberikan nilai tambah bagi bisnis.<\/p>\n<h2><strong>Metrik Fleet Optimization<\/strong><\/h2>\n<p>Dalam upaya mengoptimalkan armada secara menyeluruh, pengukuran metrik adalah fondasi utama agar pengambilan keputusan berbasis data bisa berjalan efektif. Berikut beberapa metrik kunci yang wajib dipantau dalam strategi fleet optimization:<\/p>\n<h3>1. Total Cost of Ownership (TCO)<\/h3>\n<p>Mengukur seluruh biaya kepemilikan kendaraan, mulai dari harga pembelian, depresiasi, perawatan, bahan bakar, hingga downtime. <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/erp-tco-biaya-penerapan-erp\/\">Mengetahui TCO<\/a> memungkinkan manajer armada untuk mengidentifikasi biaya tersembunyi dan merencanakan strategi penggantian aset secara cerdas.<\/p>\n<h3>2. Efisiensi Bahan Bakar (Fuel Efficiency)<\/h3>\n<p>Karena bahan bakar sering menjadi salah satu komponen paling besar dalam anggaran armada, metrik ini mengukur konsumsi BBM per kendaraan. Dengan data telematika, manajer bisa mendeteksi kebiasaan buruk seperti idle berlebih atau pengereman keras, sekaligus mengoptimalkan rute untuk menghemat bahan bakar.<\/p>\n<h3>3. Biaya Perawatan per Mil (Maintenance Cost per Mile)<\/h3>\n<p>Metrik ini menilai seberapa efisien biaya servis sebanding dengan jarak tempuh kendaraan. Lewat program perawatan prediktif dan analytics, perusahaan bisa menghindari kerusakan tak terduga dan menekan biaya servis jarak jauh.<\/p>\n<h3>4. Tingkat Pemanfaatan Kendaraan (Vehicle Utilization Rate)<\/h3>\n<p>Menggambarkan persentase waktu kendaraan benar-benar digunakan dibandingkan waktu total ketersediaannya. Dengan metrik ini, manajer bisa mengenali kendaraan yang kurang dipakai dan mengoptimalkan size armada agar lebih efisien.<\/p>\n<h3>5. Waktu Idle (Idle Time)<\/h3>\n<p>Waktu mesin menyala tanpa bergerak adalah beban besar bagi BBM. Dengan memantau idle time melalui telematika, perusahaan dapat mengidentifikasi perilaku pengemudi yang tidak efisien dan melakukan intervensi untuk mengurangi pemborosan.<\/p>\n<h3>6. Efektivitas Optimasi Rute (Route Optimization Effectiveness)<\/h3>\n<p>Metrik ini mengukur seberapa baik strategi rute yang diterapkan: dari efisiensi konsumsi bahan bakar, waktu tiba tepat, hingga produktivitas pengiriman. Rencana rute cerdas sangat penting untuk meminimalkan jarak tempuh dan waktu operasional.<\/p>\n<h3>7. Frekuensi Kecelakaan (Accident Frequency Rate)<\/h3>\n<p>Keamanan adalah bagian dari optimalisasi armada. Dengan melacak berapa kali kecelakaan terjadi, manajer dapat mengidentifikasi pola risiko dan menetapkan tindakan preventif, yang juga dapat menurunkan premi asuransi.<\/p>\n<h3>8. Kepatuhan Inspeksi Kendaraan (Vehicle Inspection Compliance Rate)<\/h3>\n<p>Metrik ini menunjukkan seberapa disiplin inspeksi kendaraan dijalankan. Tingginya persentase inspeksi yang dilaksanakan secara rutin membantu mendeteksi masalah dini dan mengurangi risiko kerusakan besar.<\/p>\n<h3>9. Tingkat Emisi (Emissions Levels)<\/h3>\n<p>Dalam era bisnis ramah lingkungan, metrik emisi vital untuk mengukur dampak ekologis armada. Dengan memantau emisi, perusahaan bisa menentukan strategi efisiensi bahan bakar dan transisi ke kendaraan lebih bersih.<\/p>\n<h3>10. Persentase Armada Ramah Lingkungan (Green Fleet Percentage)<\/h3>\n<p>Metrik ini menghitung proporsi kendaraan yang menggunakan bahan bakar bersih (EV, hybrid) dari total armada. Mengukur nilai ini penting untuk menyelaraskan operasional armada dengan komitmen keberlanjutan jangka panjang.<\/p>\n<h2><strong>Key Performance Indicators (KPI) untuk Mengukur Keberhasilan<\/strong><\/h2>\n<p>KPI utama dalam fleet optimization meliputi Biaya per Kilometer (Cost per Mile), Tingkat Pemanfaatan Aset (Asset Utilization Rate), Kepatuhan Jadwal Perawatan (Maintenance Compliance), dan Efisiensi Bahan Bakar (Fuel Efficiency).<\/p>\n<p>Metrik operasional fisik seperti <em>downtime<\/em> kendaraan dan frekuensi kerusakan harus menjadi perhatian utama Anda. Fokuslah pada strategi menurunkan angka kecelakaan dan meningkatkan ketersediaan armada. Ketersediaan unit yang tinggi menjamin kelancaran operasional harian dan kepuasan pelanggan.<\/p>\n<p>Di sisi lain, metrik keuangan seperti Total Biaya Kepemilikan (TCO) dan <em>Return on Asset<\/em> (ROA) juga tak kalah penting. Optimasi armada yang sukses seharusnya berdampak langsung pada penurunan biaya operasional bulanan. Hal ini pada akhirnya akan meningkatkan margin keuntungan proyek secara signifikan.<\/p>\n<h2><strong>5 Strategi Utama Melakukan Fleet Optimization yang Efektif<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-190632\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/ChatGPT-Image-Mar-9-2026-02_20_14-PM.webp\" alt=\"fleet management\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/ChatGPT-Image-Mar-9-2026-02_20_14-PM.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/ChatGPT-Image-Mar-9-2026-02_20_14-PM-300x200.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/ChatGPT-Image-Mar-9-2026-02_20_14-PM-1024x683.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/ChatGPT-Image-Mar-9-2026-02_20_14-PM-768x512.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/ChatGPT-Image-Mar-9-2026-02_20_14-PM-630x420.webp 630w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/ChatGPT-Image-Mar-9-2026-02_20_14-PM-150x100.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/ChatGPT-Image-Mar-9-2026-02_20_14-PM-696x464.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/ChatGPT-Image-Mar-9-2026-02_20_14-PM-1068x712.webp 1068w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p>Lima strategi utama meliputi penerapan<a href=\"https:\/\/www.hashmicro.com\/id\/blog\/preventive-maintenance\/\"> <em>preventive maintenance<\/em> <\/a>terjadwal, pemantauan konsumsi bahan bakar secara <em>real-time<\/em>, digitalisasi penugasan pengemudi, optimalisasi rute berbasis data, dan integrasi data armada dengan sistem keuangan perusahaan.<\/p>\n<p>Menerapkan optimasi armada memerlukan langkah taktis yang terukur, konsisten, dan berbasis data lapangan yang akurat. Strategi ini dirancang untuk mengubah data mentah menjadi wawasan yang dapat ditindaklanjuti atau <em>actionable insights<\/em>. Mari kita bahas langkah konkret yang dapat langsung Anda terapkan:<\/p>\n<h3>1. Terapkan Preventive Maintenance Berbasis Odometer<\/h3>\n<p>Anda harus segera beralih dari pola pikir perbaikan saat rusak (<em>breakdown maintenance<\/em>) ke pemeliharaan pencegahan. Gunakan data <em>odometer<\/em> atau <em>hour meter<\/em> untuk memicu jadwal servis otomatis. Langkah ini terbukti ampuh mencegah <em>downtime<\/em> mahal yang dapat mengganggu operasional bisnis.<\/p>\n<h3>2. Kontrol Ketat Penggunaan Bahan Bakar<\/h3>\n<p>Mendeteksi anomali konsumsi bahan bakar adalah cara efektif untuk mencegah potensi kecurangan atau masalah mesin. Penting bagi Anda untuk mencatat <em>fuel logs<\/em> secara disiplin dan membandingkannya dengan jarak tempuh. Hal ini akan memberikan rasio efisiensi yang akurat untuk setiap unit kendaraan.<\/p>\n<h3>3. Digitalisasi Dokumen dan Kepatuhan Regulasi<\/h3>\n<p>Manajemen dokumen kendaraan seperti STNK, KIR, dan Izin Trayek seringkali terabaikan hingga menjadi masalah. Gunakan sistem pengingat otomatis agar masa berlaku dokumen tidak terlewat begitu saja. Kepatuhan ini penting untuk menghindari denda atau gangguan operasional akibat masalah legalitas di jalan.<\/p>\n<h3>4. Optimasi Alokasi Kendaraan dan Penugasan<\/h3>\n<p>Pastikan kendaraan yang tepat digunakan untuk tugas yang tepat atau <em>right vehicle for the right job<\/em>. Menggunakan kendaraan besar untuk muatan kecil adalah pemborosan biaya yang harus dihindari. Pantau ketersediaan unit secara <em>real-time<\/em> untuk memaksimalkan utilitas armada Anda.<\/p>\n<h3>5. Integrasi Data Operasional dengan Laporan Keuangan<\/h3>\n<p>Menghubungkan biaya operasional armada seperti bengkel dan BBM langsung ke sistem akuntansi adalah langkah strategis. Hal ini memungkinkan Anda melakukan analisis <em>profit &amp; loss<\/em> per kendaraan secara presisi. Anda akan tahu persis mana aset yang menguntungkan dan mana yang membebani keuangan.<\/p>\n<h2><strong>Peran Teknologi dalam Mengotomatisasi Manajemen Armada<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-190636\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/Fleet-system.webp\" alt=\"fleet system\" width=\"1903\" height=\"851\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/Fleet-system.webp 1903w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/Fleet-system-300x134.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/Fleet-system-1024x458.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/Fleet-system-768x343.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/Fleet-system-1536x687.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/Fleet-system-939x420.webp 939w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/Fleet-system-150x67.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/Fleet-system-696x311.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/11\/Fleet-system-1068x478.webp 1068w\" sizes=\"auto, (max-width: 1903px) 100vw, 1903px\" \/><\/p>\n<p>Teknologi seperti IoT, GPS Tracking, dan Software ERP berperan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-automation\/\">mengotomatisasi proses manajemen armada<\/a> yang sebelumnya manual, mengurangi <em>human error<\/em>, dan memberikan visibilitas <em>real-time<\/em> terhadap seluruh aset bergerak perusahaan.<\/p>\n<p>Sensor IoT dan GPS memberikan data mentah yang sangat berharga seperti lokasi, kecepatan, dan kondisi mesin kendaraan. Teknologi ini efektif menghilangkan &#8220;titik buta&#8221; dalam operasional harian Anda. Manajer kini dapat memantau pergerakan aset bernilai tinggi dari jarak jauh tanpa harus berada di lapangan.<\/p>\n<p>Namun, data GPS saja tidak cukup jika tidak diolah oleh sistem manajemen aset yang mumpuni. Software berfungsi mengonversi data lokasi tersebut menjadi laporan kinerja dan jadwal perawatan otomatis. Ini mengubah tumpukan data menjadi keputusan bisnis yang cerdas dan strategis.<\/p>\n<h2><strong>Kesimpulan<\/strong><\/h2>\n<p>Fleet Optimization System membantu perusahaan mengelola armada secara lebih efisien, terukur, dan responsif terhadap kebutuhan operasional harian. Melalui pemanfaatan data real-time, otomatisasi perawatan, kontrol bahan bakar, serta pengelolaan alokasi kendaraan yang lebih akurat, sistem ini mendukung perusahaan dalam menekan biaya, mengurangi downtime, dan meningkatkan produktivitas aset secara menyeluruh.<\/p>\n<p>Bagi bisnis yang ingin menjaga kinerja armada tetap optimal di tengah tuntutan operasional yang semakin kompleks, penggunaan sistem yang terintegrasi menjadi langkah yang relevan. <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">Konsultasikan bisnis Anda dengan tim kami<\/a> untuk menemukan solusi fleet optimization system yang sesuai dengan kebutuhan operasional perusahaan Anda.<\/p>\n<p data-start=\"452\" data-end=\"576\" data-is-last-node=\"\" data-is-only-node=\"\"><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>\n<h2><strong>Pertanyaan Seputar Fleet Optimization System<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa perbedaan antara fleet management dan fleet optimization?<\/strong><\/summary>\n<p>Fleet management fokus pada pengelolaan operasional harian, sedangkan fleet optimization adalah proses strategis menggunakan data untuk meningkatkan efisiensi dan menekan biaya jangka panjang.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Bagaimana cara mengurangi biaya bahan bakar armada secara efektif?<\/strong><\/summary>\n<p>Anda dapat mengurangi biaya bahan bakar dengan memantau perilaku pengemudi, melakukan servis rutin, dan mengoptimalkan rute perjalanan untuk mengurangi jarak tempuh.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah software fleet optimization cocok untuk bisnis skala kecil?<\/strong><\/summary>\n<p>Ya, software ini dapat disesuaikan dengan skala bisnis apa pun untuk membantu mengontrol aset dan biaya, meskipun jumlah armada masih sedikit.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"Apa perbedaan antara fleet management dan fleet optimization?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Fleet management fokus pada pengelolaan operasional harian, sedangkan fleet optimization adalah proses strategis menggunakan data untuk meningkatkan efisiensi dan menekan biaya jangka panjang.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Bagaimana cara mengurangi biaya bahan bakar armada secara efektif?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Anda dapat mengurangi biaya bahan bakar dengan memantau perilaku pengemudi, melakukan servis rutin, dan mengoptimalkan rute perjalanan untuk mengurangi jarak tempuh.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah software fleet optimization cocok untuk bisnis skala kecil?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Ya, software ini dapat disesuaikan dengan skala bisnis apa pun untuk membantu mengontrol aset dan biaya, meskipun jumlah armada masih sedikit.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Banyak perusahaan yang mengandalkan armada menghadapi tantangan operasional yang terus meningkat, mulai dari konsumsi BBM yang boros, rute tidak efisien, hingga biaya perawatan yang sulit diprediksi. Ketidakteraturan ini membuat biaya operasional melonjak tanpa disadari. Masalah tersebut seringkali tidak terlihat secara kasatmata karena tersembunyi dalam aktivitas harian armada. Ketika dibiarkan, pemborosan kecil berubah menjadi kerugian besar [&hellip;]<\/p>\n","protected":false},"author":161,"featured_media":177832,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1194],"tags":[],"class_list":{"0":"post-177720","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-fleet"},"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>Fleet Optimization: Strategi Efisiensi &amp; Kontrol Biaya Armada<\/title>\n<meta name=\"description\" content=\"Pelajari strategi fleet optimization untuk menekan biaya operasional. Temukan panduan manajemen aset dan bahan bakar di sini.\" \/>\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\/fleet-optimization\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fleet Optimization: Strategi Efisiensi &amp; Kontrol Biaya Armada\" \/>\n<meta property=\"og:description\" content=\"Pelajari strategi fleet optimization untuk menekan biaya operasional. Temukan panduan manajemen aset dan bahan bakar di sini.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/\" \/>\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-20T17:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-09T07:37:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/Fleet-optimization.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"650\" \/>\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=\"10 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\/fleet-optimization\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/\"},\"author\":{\"name\":\"Jonathan Kurniawan\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/029ac06d135cf8424dfa4f3cb3fef6c5\"},\"headline\":\"Fleet Optimization: Strategi Efisiensi &#038; Kontrol Biaya Armada\",\"datePublished\":\"2025-11-20T17:00:00+00:00\",\"dateModified\":\"2026-03-09T07:37:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/\"},\"wordCount\":1559,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/Fleet-optimization.webp\",\"articleSection\":[\"Fleet\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/\",\"name\":\"Fleet Optimization: Strategi Efisiensi & Kontrol Biaya Armada\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/Fleet-optimization.webp\",\"datePublished\":\"2025-11-20T17:00:00+00:00\",\"dateModified\":\"2026-03-09T07:37:05+00:00\",\"description\":\"Pelajari strategi fleet optimization untuk menekan biaya operasional. Temukan panduan manajemen aset dan bahan bakar di sini.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/Fleet-optimization.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/Fleet-optimization.webp\",\"width\":1200,\"height\":650,\"caption\":\"Fleet optimization\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fleet Optimization: Strategi Efisiensi &#038; Kontrol Biaya Armada\"}]},{\"@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":"Fleet Optimization: Strategi Efisiensi & Kontrol Biaya Armada","description":"Pelajari strategi fleet optimization untuk menekan biaya operasional. Temukan panduan manajemen aset dan bahan bakar di sini.","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\/fleet-optimization\/","og_locale":"id_ID","og_type":"article","og_title":"Fleet Optimization: Strategi Efisiensi & Kontrol Biaya Armada","og_description":"Pelajari strategi fleet optimization untuk menekan biaya operasional. Temukan panduan manajemen aset dan bahan bakar di sini.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-11-20T17:00:00+00:00","article_modified_time":"2026-03-09T07:37:05+00:00","og_image":[{"width":1200,"height":650,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/Fleet-optimization.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":"10 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/"},"author":{"name":"Jonathan Kurniawan","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/029ac06d135cf8424dfa4f3cb3fef6c5"},"headline":"Fleet Optimization: Strategi Efisiensi &#038; Kontrol Biaya Armada","datePublished":"2025-11-20T17:00:00+00:00","dateModified":"2026-03-09T07:37:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/"},"wordCount":1559,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/Fleet-optimization.webp","articleSection":["Fleet"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/","name":"Fleet Optimization: Strategi Efisiensi & Kontrol Biaya Armada","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/Fleet-optimization.webp","datePublished":"2025-11-20T17:00:00+00:00","dateModified":"2026-03-09T07:37:05+00:00","description":"Pelajari strategi fleet optimization untuk menekan biaya operasional. Temukan panduan manajemen aset dan bahan bakar di sini.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/Fleet-optimization.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/Fleet-optimization.webp","width":1200,"height":650,"caption":"Fleet optimization"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/fleet-optimization\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Fleet Optimization: Strategi Efisiensi &#038; Kontrol Biaya Armada"}]},{"@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":"fleet optimization","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/177720","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=177720"}],"version-history":[{"count":9,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/177720\/revisions"}],"predecessor-version":[{"id":190639,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/177720\/revisions\/190639"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/177832"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=177720"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=177720"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=177720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}