{"id":44144,"date":"2022-10-21T10:28:39","date_gmt":"2022-10-21T03:28:39","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=44144"},"modified":"2026-04-27T14:09:32","modified_gmt":"2026-04-27T07:09:32","slug":"jenis-dan-cara-mudah-kelola-konstruksi-jalan","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/","title":{"rendered":"Cara Mengelola Konstruksi Jalan dengan Optimal"},"content":{"rendered":"<p>Konstruksi jalan bukan sekadar membangun akses penghubung, tetapi juga investasi penting yang memengaruhi kelancaran mobilitas dan pertumbuhan bisnis. Dalam praktiknya proyek ini melibatkan banyak tahapan dan koordinasi yang kompleks mulai dari perencanaan hingga pelaksanaan di lapangan.<\/p>\n<p>Tanpa pengelolaan yang tepat proyek konstruksi jalan berisiko menghadapi keterlambatan, pembengkakan biaya, hingga penurunan kualitas hasil.<\/p>\n<p>Oleh karena itu, dibutuhkan pendekatan yang lebih terstruktur dan efisien agar setiap proses berjalan sesuai rencana dan memberikan hasil yang optimal.<\/p>\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><span style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\"><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<style>\r\n\t.takeaways-container {\r\n\t\tmargin: 20px 0;\r\n\t\tfont-family: sans-serif;\r\n\t}\r\n\t.box-content {\r\n\t\tbackground-color: #fffacd;\r\n\t\tbox-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n\t\tborder-radius: 25px;\r\n\t\tpadding: 25px;\r\n\t}\r\n\t.title {\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n\t.title p {\r\n\t\tdisplay: inline-block;\r\n\t\tbackground-color: #8A0E19;\r\n\t\tcolor: #ffffff;\r\n\t\tpadding: 8px 15px;\r\n\t\tborder-radius: 8px;\r\n\t\tfont-size: 22px;\r\n\t\tfont-weight: bold;\r\n\t\tmargin: 0;\r\n\t}\r\n\t.item {\r\n\t\tdisplay: flex;\r\n\t\talign-items: flex-start;\r\n\t\tmargin-bottom: 12px;\r\n\t}\r\n\t.item .circle {\r\n\t\twidth: 8px;\r\n\t\theight: 8px;\r\n\t\tbackground-color: #000000;\r\n\t\tborder-radius: 50%;\r\n\t\tmargin-right: 12px;\r\n\t\tflex-shrink: 0;\r\n\t\tmargin-top: 8px;\r\n\t}\r\n\t.item p {\r\n\t\tmargin: 0;\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 1.6;\r\n\t}\r\n\t.item p a {\r\n\t\tcolor: #8A0E19;\r\n\t\tfont-weight: normal;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.item p a:hover {\r\n\t\ttext-decoration: underline;\r\n\t}\r\n\t.button-wrapper {\r\n\t\tmargin-top: 25px;\r\n\t}\r\n\t.submit-button {\r\n\t\tbackground-color: #8a0e19;\r\n\t\tcolor: #fff !important;\r\n\t\ttransition: all .3s ease;\r\n\t\tpadding: 12px 28px;\r\n\t\tdisplay: inline-block;\r\n\t\tborder-radius: 12px;\r\n\t\tfont-size: 16px;\r\n\t\tfont-weight: bold;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.submit-button:hover {\r\n\t\tbackground-color: #991b26;\r\n\t}\r\n\t@media (max-width: 767px) {\r\n\t\t.takeaways-container {\r\n\t\t\theight: auto;\r\n\t\t\tpadding: 0;\r\n\t\t}\r\n\t\t.box-content {\r\n\t\t\tpadding: 24px;\r\n\t\t}\r\n\t\t.content,\r\n\t\t.main-content,\r\n\t\t.list-item {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<div class=\"takeaways-container\">\r\n\t<div class=\"box-content\">\r\n\t\t<div class=\"content\">\r\n\t\t\t<div class=\"title\">\r\n\t\t\t\t<p>Key Takeaways<\/p>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"main-content\">\r\n\t\t\t\t<div class=\"list-item\">\r\n\t\t\t\t\t<div class=\"item\">    <div class=\"circle\"><\/div>    <p>Terdapat beberapa <a href=\"#jenis\">jenis<\/a> konstruksi jalan diantaranya jalan beton, jalan aspal, jalan paving block.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p>Tahapan utama dalam pelaksanaan mulai dari perencanaan hingga pelapisan pekerjaan sangat penting bagi konstruksi jalan.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p>Terdapat beberapa <a href=\"#masalah\">masalah<\/a> dalam konstruksi jalan diantaranya anggaran yang tidak sesuai, pengerjaan yang lambat, dan kurangnya komunikasi.<\/p><\/div>\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n<!-- \t\t\t<div class=\"button-wrapper\">\r\n\t\t\t\t<a href=\"https:\/\/www.equiperp.com\/tour-produk-gratis\/?medium=key-takeaways\" class=\"submit-button\">Klik untuk Demo Gratis!<\/a>\r\n\t\t\t<\/div> -->\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div>\n<h2 id=\"1\"><b><span id=\"jenis\">Jenis-Jenis konstruksi Jalan<\/span><\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Jalanan di Indonesia, baik jalan utama maupun jalan pemukiman umumnya terbagi dalam tiga jenis, yakni jalan beton, jalan aspal, dan <\/span><span style=\"font-weight: 400;\">paving block<\/span><span style=\"font-weight: 400;\">. Ketiga konstruksi jalan tersebut memiliki karakteristik yang berbeda, sehingga dalam aplikasinya pun berbeda.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ada yang diaplikasikan khusus untuk jalan utama, tetapi ada juga ada pada jalan-jalan setapak pemukiman warga. Berikut jenis-jenisnya:<\/span><\/p>\n<h3 id=\"a\"><span style=\"font-weight: 400;\">1. Jalan beton\u00a0<\/span><\/h3>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-44145 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-beton.png\" alt=\"Contoh jalan beton.\" width=\"800\" height=\"500\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-beton.png 800w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-beton-300x188.png 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-beton-768x480.png 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-beton-150x94.png 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-beton-696x435.png 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-beton-672x420.png 672w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Konstruksi pada jalan beton biasa disebut dengan perkerasan kaku. Komposisi konstruksi jalan betonterdiri dari plat (slab) beton semen sebagai lapis pondasi dan lapis pondasi bawah di atas tanah dasar. Plat beton biasanya disebut sebagai lapis pondasi karena memungkinkan masih adanya lapisan aspal beton pada atasnya yang berfungsi sebagai lapis permukaan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Konstruksi jalan beton ini tergolong kuat, sebab memiliki <\/span><a href=\"https:\/\/id.wikipedia.org\/wiki\/Modulus_elastisitas\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">modulus elastisitas<\/span><\/a><span style=\"font-weight: 400;\"> yang tinggi. Dalam ilmu teknik sipil, modulus elastisitas merupakan angka untuk mengukur objek atau ketahanan bahan untuk mengalami deformasi elastis ketika gaya diterpakan pada benda itu.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Itu sebabnya, konstruksi jalan beton untuk jalan raya dan jalan lingkungan. Tebal jalan beton ini minimal 20 cm. Kelebihan dan kekurangan jalan beton antara lain:<\/span><\/p>\n<p><strong>Kelebihan jalan beton:<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dapat menahan beban kendaraan yang berat.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tahan terhadap genangan air dan banjir.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Biaya perawatan lebih murah daripada jalan aspal.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dapat menggunakan pada struktur tanah lemah atau ekspansif yang CBR-nya rendah tanpa perbaikan struktur tanahnya terlebih dahulu.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Pengadaan material lebih mudah didapat.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Direkomendasikan untuk jalan yang mempunyai tanah dasar yang jelek, dan jalan yang lalu lintas kendaraan beratnya cukup tinggi.<\/span><\/li>\n<\/ul>\n<p><strong>Kekurangan jalan beton:<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Untuk penggunaan pada jalan raya dengan kapasitas berat kendaraan yang tinggi, maka biaya konstruksi jalan beton lebih mahal daripada jalan aspal, namun lebih murah pada masa perawatan. Biaya pembangunan jalan beton di Kabupaten Grobogan sepanjang 1 km dengan lebar badan jalan 4 meter, full rigid membutuhkan dana sekitar 2,5 milyar.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Kehalusan dan gelombang jalan sangat menentukan pada saat proses pengecoran sehingga perlu pengawasan yang ketat.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Proses perbaikan jalan dengan cara menumpang pada konstruksi jalan beton yang lama, sehingga menaikan ketinggian elevasi jalan, sehingga terkadang elevasi jalan lebih tinggi daripada rumah sebelahnya.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Warna beton membuat suasana jalan menjadi keras dan gersang sehingga menimbulkan efek kehati-hatian bagi pengendara.<\/span><\/li>\n<\/ul>\n<h3 id=\"b\"><span style=\"font-weight: 400;\">2. Jalan aspal\u00a0<\/span><\/h3>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-44146 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-aspal.png\" alt=\"Contoh jalan aspal.\" width=\"800\" height=\"500\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-aspal.png 800w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-aspal-300x188.png 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-aspal-768x480.png 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-aspal-150x94.png 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-aspal-696x435.png 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-aspal-672x420.png 672w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Jalan aspal atau biasa disebut <\/span><span style=\"font-weight: 400;\">hot mix<\/span><span style=\"font-weight: 400;\">, merupakan konstruksi jalan yang memakai bahan pengikat aspal panas. Biasanya campuran aspal panas didatangkan <\/span><span style=\"font-weight: 400;\">impor<\/span><span style=\"font-weight: 400;\">, misalnya Shell dan ESSO 2000. Cairan aspal ini sedikit mahal, menghabiskan biaya 60% dari total biaya <\/span><span style=\"font-weight: 400;\">hot mix<\/span><span style=\"font-weight: 400;\">. Adapun kelebihan dan kekurangan konstruksi jalan aspal antara lain:<\/span><\/p>\n<p><strong>Kelebihan jalan aspal:<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Kondisi jalan lebih halus, tidak bergelombang.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Jalan yang teraspalmemiliki warna yang gelap, sehingga memberikan dampak secara psikologis rasa aman dan nyaman.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Untuk membuat jalan aspal, biasanya kontraktor atau pemda sudah menerapkan sistem drainase yang baik.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Perawatan jalan ini juga terbilang mudah. Bila ada yang berlubang, tinggal menggali dan mengganti dengan yang baru pada area jalan yang rusak.<\/span><\/li>\n<\/ul>\n<p><strong>Kekurangan jalan aspal:<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tidak tahan terhadap genangan air, sehingga memerlukan <\/span><span style=\"font-weight: 400;\">saluran drainase <\/span><span style=\"font-weight: 400;\">yang baik untuk proses pengeringan jalan aspal pasca hujan atau banjir.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Pada struktur tanah yang buruk harus dilakukan perbaikan tanah terlebih dahulu sebelum ditumpangi oleh konstruksi jalan aspal.<\/span><\/li>\n<\/ul>\n<h3 id=\"c\"><span style=\"font-weight: 400;\">3. Jalan <\/span><span style=\"font-weight: 400;\">paving block\u00a0<\/span><\/h3>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-44147 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-paving-block.png\" alt=\"Contoh paving block.\" width=\"800\" height=\"500\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-paving-block.png 800w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-paving-block-300x188.png 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-paving-block-768x480.png 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-paving-block-150x94.png 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-paving-block-696x435.png 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/jalan-paving-block-672x420.png 672w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Jalan ini juga biasa disebut dengan <\/span><span style=\"font-weight: 400;\">block <\/span><span style=\"font-weight: 400;\">beton. Terbuat dari campuran pasir dan semen lalu menambahkan campuran lain seperti abu bata dan lainnya. <\/span><span style=\"font-weight: 400;\">Paving block <\/span><span style=\"font-weight: 400;\">memiliki komposisi bahan bangunan yang terbuat dari campuran semen portland atau bahan perekat lain.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Jalan yang memakai<\/span><span style=\"font-weight: 400;\"> paving block<\/span><span style=\"font-weight: 400;\"> biasanya memiliki warna-warna dan bentuk yang menarik. Ada yang berbentuk segi empat dan ada juga yang segi banyak. Pada proses pemasangannya, ukuran harus kurang lebih 2 mm untuk ukuran lebih bidang dan kurang lebih 3 mm untuk ketebalan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Adapun kelebihan dan kekurangan jalan <\/span><span style=\"font-weight: 400;\">paving block <\/span><span style=\"font-weight: 400;\">antara lain:<\/span><\/p>\n<p><strong>Kelebihan jalan paving block:<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Pemasangan <\/span><span style=\"font-weight: 400;\">paving block <\/span><span style=\"font-weight: 400;\">cukup mudah dan tidak memerlukan alat berat.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Paving block <\/span><span style=\"font-weight: 400;\">seakan seperti <\/span><span style=\"font-weight: 400;\">puzzle <\/span><span style=\"font-weight: 400;\">yang dapat dipasang kembali setelah dibongkar.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Daya tahan jalan ini cukup baik. Khususnya tahan terhadap beban statis, dan tahan terhadap tumpahan bahan pelumas dan pemanasan oleh mesin kendaraan.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Banyak terdapat pori atau celah, sehingga genangan air cepat meresap, tidak perlu khawatir terjadi genangan.<\/span><\/li>\n<\/ul>\n<p><strong>Kekurangan jalan paving block:<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Pasangan <\/span><span style=\"font-weight: 400;\">paving block<\/span><span style=\"font-weight: 400;\"> mudah bergelombang bila pondasinya tidak dipasang dengan kuat.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Paving block<\/span><span style=\"font-weight: 400;\"> juga kurang cocok untuk dipasang di lahan yang dilalui kendaraan berkecepatan tinggi. Sehingga <\/span><span style=\"font-weight: 400;\">paving block <\/span><span style=\"font-weight: 400;\">hanya cocok untuk dipasang di lahan yang dilalui kendaraan berkecepatan rendah saja misalnya lingkungan permukiman dan perkotaan yang padat.<\/span><\/li>\n<\/ul>\n<style>\r\n.cta-in-article-image .desktop-banner{\r\n    display: none;\r\n    text-align: center;\r\n}\r\n.cta-in-article-image .desktop-mobile{\r\n    display: block;\r\n    text-align: center;\r\n    width: 100%;\r\n}\r\n\t.cta-in-article a {\r\n\t\tfont-size: 0px !important;\r\n\t\tcolor: #fff; \r\n\t\tpadding: 0px !important; \r\n\t\tborder-radius: 0px !important; \r\n\t\tdisplay: block !important; \r\n\t\ttext-decoration: none; \r\n\t}\r\n\t\r\n\t.cta-in-article {\r\n\t\tmargin: 0px !important;\r\n\t\tpadding: 0px !important;\r\n\t\tbox-shadow: none !important;\r\n\t}\r\n\t\r\n@media (min-width: 650px) {\r\n    .cta-in-article-image .desktop-banner {\r\n        display: block!important;\r\n    }\r\n}\r\n@media (min-width: 650px) {\r\n   .cta-in-article-image .desktop-mobile {\r\n        display: none!important;\r\n    }\r\n}\r\n<\/style>\r\n<div class=\"cta-in-article-image\">\r\n\t<a href=\"https:\/\/www.hashmicro.com\/id\/offer\/download-skema-harga-software-erp?blog&utm_source=blog&medium=banner-article\" target=\"_blank\" rel=\"noopener\">\r\n\t\t<div id=\"desktop-banner-container\">\r\n\t\t\t<div class=\"desktop-banner\">\r\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/02.Skema-Harga-web-resized.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t<div id=\"mobile-banner-container\">\r\n\t\t\t<div class=\"desktop-mobile\">\r\n\t\t\t\t<img decoding=\"async\" width=\"372\" height=\"465\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/02.-Skema-Harga-Mobile-372px.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/a>\r\n<\/div>\n<h2><strong><span id=\"tahapan\">Tahapan Pelaksanaan Konstruksi Jalan<\/span><\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-192926\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/ChatGPT-Image-27-Apr-2026-14.07.18.webp\" alt=\"konstruksi jalan\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/ChatGPT-Image-27-Apr-2026-14.07.18.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/ChatGPT-Image-27-Apr-2026-14.07.18-300x200.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/ChatGPT-Image-27-Apr-2026-14.07.18-1024x683.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/ChatGPT-Image-27-Apr-2026-14.07.18-768x512.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/ChatGPT-Image-27-Apr-2026-14.07.18-630x420.webp 630w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/ChatGPT-Image-27-Apr-2026-14.07.18-150x100.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/ChatGPT-Image-27-Apr-2026-14.07.18-696x464.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/ChatGPT-Image-27-Apr-2026-14.07.18-1068x712.webp 1068w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p>Berikut adalah tahapan utama dalam pelaksanaan konstruksi jalan yang perlu Anda pahami:<\/p>\n<h3>1. Perencanaan &amp; studi kelayakan<\/h3>\n<p>Tahap awal ini bertujuan memastikan proyek layak untuk dijalankan, baik dari sisi teknis, finansial, maupun dampaknya terhadap lingkungan. Di sini, dilakukan analisis kebutuhan, estimasi biaya, serta potensi risiko agar proyek memiliki dasar yang kuat sebelum masuk ke tahap berikutnya.<\/p>\n<h3>2. Survei dan pengukuran topografi<\/h3>\n<p>Pada tahap ini dilakukan pengumpulan data kondisi lapangan seperti kontur tanah, elevasi, dan karakteristik area proyek. Data ini sangat penting sebagai acuan dalam proses desain agar konstruksi jalan sesuai dengan kondisi sebenarnya di lapangan.<\/p>\n<h3>3. Desain geometrik dan struktur perkerasan<\/h3>\n<p>Berdasarkan hasil survei, dilakukan perancangan bentuk jalan (geometrik) serta struktur lapisan perkerasan. Tujuannya adalah memastikan jalan aman, nyaman dilalui, serta mampu menahan beban lalu lintas dalam jangka panjang.<\/p>\n<h3>4. Pembebasan lahan<\/h3>\n<p>Sebelum konstruksi dimulai lahan yang akan digunakan perlu dibebaskan terlebih dahulu. Proses ini mencakup negosiasi, administrasi, hingga penyelesaian legalitas agar tidak menghambat jalannya proyek di kemudian hari.<\/p>\n<h3>5. Pekerjaan tanah dasar (Subgrade)<\/h3>\n<p>Tahap ini melibatkan persiapan tanah dasar sebagai fondasi utama jalan. Tanah diratakan, dipadatkan, dan diperkuat agar mampu menopang seluruh struktur jalan di atasnya.<\/p>\n<h3>6. Pekerjaan lapis pondasi (Subbase &amp; base course)<\/h3>\n<p>Setelah tanah dasar siap, dilanjutkan dengan pembangunan lapisan pondasi. Lapisan ini berfungsi untuk mendistribusikan beban kendaraan secara merata dan meningkatkan kekuatan struktur jalan secara keseluruhan.<\/p>\n<h3>7. Pekerjaan lapis permukaan (Surface course)<\/h3>\n<p>Ini adalah tahap akhir berupa pemasangan lapisan permukaan jalan, seperti aspal atau beton. Lapisan ini berfungsi memberikan kenyamanan berkendara, ketahanan terhadap cuaca, serta melindungi lapisan di bawahnya dari kerusakan.<\/p>\n<h2 id=\"2\"><b><span id=\"masalah\">Masalah yang Banyak Dihadapi saat Konstruksi Jalan<\/span><\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Proses pembangunan konstruksi jalan membutuhkan ketelitian dalam perencanaan agar sesuai dengan target waktu dan kualitas. Namun, meskipun telah melakukan perencanaan dengan matang dan teliti kondisi lapangan bisa terjadi sebaliknya.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Masalah yang tidak terduga kadang menghampiri, tetapi kita harus tetap siap untuk mengantisipasinya, berikut ini adalah masalah yang banyak konstruksi jalan hadapi:<\/span><\/p>\n<h3 id=\"d\"><span style=\"font-weight: 400;\">1. Anggaran yang tidak sesuai<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Setiap proyek tentunya membutuhkan dana dan anggaran. Karena jika dana tidak mencukupi, maka proyek yang sedang Anda jalankan kemungkinan akan terhambat atau bahkan mangkrak.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Oleh sebab itu, penting untuk merencanakan jumlah anggaran dana yang cukup untuk membiayai kebutuhan proyek. Selain itu, Anda juga harus memikirkan hal-hal yang kemungkinan yang bisa terjadi yang mempengaruhi jumlah anggaran.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Contohnya adalah ketika terjadi perubahan harga bahan-bahan bangunan karena adanya kenaikan nilai tukar rupiah.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Jika kesulitan untuk memilah anggaran yang harus Anda utamakan, buatlah daftar untuk setiap biaya dan urutkan dari pembiayaan yang paling besar sampai yang paling kecil. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Setelah itu, tandai anggaran mana yang menjadi prioritas bagi pelaksanaan proyek. Dari sini bisa melihat anggaran mana perlu Anda perhatikan dan anggaran mana yang dapat Anda alokasikan ke dana tambahan.<\/span><\/p>\n<h3 id=\"e\"><span style=\"font-weight: 400;\">2. Pengerjaan yang lambat karena pekerja proyek yang tidak kompeten\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Industri konstruksi telah mengalami pertumbuhan yang signifikan selama beberapa tahun terakhir dan terus menunjukkan pertumbuhan yang besar di tahun 2017. Namun, kontraktor konstruksi berpendapat bahwa mereka merasa sulit mendapatkan pekerja dan pekerja berkualitas untuk melakukan pekerjaan konstruksi tertentu.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Hal ini disebabkan <\/span><span style=\"font-weight: 400;\">misalignment<\/span><span style=\"font-weight: 400;\"> yang dinaikkan antara jumlah tenaga kerja terampil yang tersedia dan jumlah pekerjaan yang tersedia. Inilah salah satu masalah terbesar yang konstruksi jalan hadapi saat ini<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Masalah konstruksi ini mengharuskan organisasi atau perusahaan konstruksi untuk membelanjakan dan berinvestasi untuk melatih orang-orang untuk pekerjaan yang membutuhkan pemberian pembayaran tambahan bersamaan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Studi dan pendapat dari para insinyur lapangan dan para kontraktor mengatakan bahwa kurangnya pekerja dan pekerja yang belum berpengalaman menimbulkan masalah keamanan yang sangat besar.<\/span><\/p>\n<h3 id=\"f\"><span style=\"font-weight: 400;\">3. Kurang komunikasi<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Masalah yang industri konstruksi hadapi karena beberapa kesalahan atau kesalahan terutama karena hancurnya komunikasi antara pihak-pihak terkait proyek. Saat ini kita berada di era yang mana kita memiliki semua jenis metode untuk menjalani komunikasi yang baik.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Jika semua orang dalam sebuah proyek saling berkomunikasi dan semua tentang proyek tentang rincian perencanaan, rincian penyelidikan, keraguan dan klarifikasi, izin untuk permulaan kerja, sebuah masalah besar karena kesalahan kecil dapat Anda hindari dengan mudah.<\/span><\/p>\n<h2><strong>Tingkatkan Efisiensi Konstruksi Jalan dengan Sistem Terintegrasi<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-192925\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/Konstruksi-Jalan-HashMicro.webp\" alt=\"konstruksi jalan\" width=\"1350\" height=\"570\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/Konstruksi-Jalan-HashMicro.webp 1350w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/Konstruksi-Jalan-HashMicro-300x127.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/Konstruksi-Jalan-HashMicro-1024x432.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/Konstruksi-Jalan-HashMicro-768x324.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/Konstruksi-Jalan-HashMicro-995x420.webp 995w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/Konstruksi-Jalan-HashMicro-150x63.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/Konstruksi-Jalan-HashMicro-696x294.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/Konstruksi-Jalan-HashMicro-1068x451.webp 1068w\" sizes=\"auto, (max-width: 1350px) 100vw, 1350px\" \/><\/p>\n<p>Dalam proyek konstruksi jalan, efisiensi bukan hanya soal menekan biaya tetapi juga bagaimana setiap proses berjalan tepat waktu dan sesuai rencana. Tantangannya, data sering tersebar di berbagai tim dan lokasi sehingga koordinasi menjadi lambat dan berisiko menimbulkan kesalahan. Di sinilah<a href=\"https:\/\/www.hashmicro.com\/id\/blog\/sistem-konstruksi\/\"> sistem konstruksi yang terintegrasi<\/a> berperan penting untuk menyatukan seluruh informasi dalam satu platform yang mudah diakses.<\/p>\n<p>Dengan sistem terintegrasi, Anda dapat memantau progres proyek secara real-time mulai dari tahap perencanaan, penggunaan material, hingga laporan keuangan. Semua pihak yang terlibat bisa bekerja dengan data yang sama sehingga komunikasi menjadi lebih cepat dan keputusan dapat diambil dengan lebih akurat. Hal ini membantu mengurangi potensi keterlambatan dan pembengkakan biaya.<\/p>\n<p>Lebih dari itu, penggunaan teknologi juga memudahkan Anda dalam mengidentifikasi kendala sejak dini dan segera mengambil tindakan. Dengan proses yang lebih terkontrol dan transparan, proyek konstruksi jalan dapat berjalan lebih efisien dengan kualitas yang sesuai harapan.<\/p>\n<h2 id=\"4\"><b>Kesimpulan<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Demikian pembahasan singkat mengenai jenis dan cara mudah kelola konstruksi jalan. Ada banyak sekali proses dan fase yang terlibat dalam sebuah proyek, di antaranya meliputi perkembangan proyek, tenaga kerja, penggunaan bahan baku, RAB (Rencana Anggaran Biaya) dan RAP (Rincian Anggaran Pekerjaan).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Semua hal tersebut merupakan proses yang kompleks bila Anda kerjakan secara manual. Itupun belum ditambah dengan risiko terjadinya <\/span><span style=\"font-weight: 400;\">human error <\/span><span style=\"font-weight: 400;\">dalam pengerjaan, sehingga pengerjaan secara manual tentu akan membuang banyak waktu berharga. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Oleh sebab itu, sebuah perusahaan jasa konstruksi memerlukan bantuan berupa otomatisasi pada hal-hal di atas, agar semua proses tersebut dapat berjalan dan selesai tepat waktu.\u00a0<\/span><\/p>\n<a href=\"https:\/\/www.hashmicro.com\/id\/hash-construction-software?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/47-Construction-Desktop.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/47-Construction-Desktop.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/47-Construction-Mobile.webp\" alt=\"HashConstructionSuite\" 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 Konstruksi Jalan<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa fungsi lapisan pondasi pada jalan?<\/strong><\/summary>\n<p>Lapisan pondasi berfungsi untuk menopang beban kendaraan dan mendistribusikan tekanan agar tidak langsung diterima oleh tanah dasar, sehingga meningkatkan daya tahan jalan.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Berapa lama waktu yang dibutuhkan untuk proyek konstruksi jalan?<\/strong><\/summary>\n<p>Durasi proyek sangat bergantung pada panjang jalan, kondisi lahan, kompleksitas pekerjaan, serta cuaca. Proyek bisa berlangsung dari beberapa bulan hingga lebih dari satu tahun.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Mengapa survei topografi penting dilakukan?<\/strong><\/summary>\n<p>Survei topografi memberikan data akurat tentang kondisi lahan sehingga desain jalan dapat disesuaikan dan meminimalkan risiko kesalahan saat konstruksi.<\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"Apa fungsi lapisan pondasi pada jalan?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Lapisan pondasi berfungsi untuk menopang beban kendaraan dan mendistribusikan tekanan agar tidak langsung diterima oleh tanah dasar, sehingga meningkatkan daya tahan jalan.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Berapa lama waktu yang dibutuhkan untuk proyek konstruksi jalan?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Durasi proyek sangat bergantung pada panjang jalan, kondisi lahan, kompleksitas pekerjaan, serta cuaca. Proyek bisa berlangsung dari beberapa bulan hingga lebih dari satu tahun.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Mengapa survei topografi penting dilakukan?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Survei topografi memberikan data akurat tentang kondisi lahan sehingga desain jalan dapat disesuaikan dan meminimalkan risiko kesalahan saat konstruksi.\"\n    }\n  }]\n}\n<\/script><\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Konstruksi jalan bukan sekadar membangun akses penghubung, tetapi juga investasi penting yang memengaruhi kelancaran mobilitas dan pertumbuhan bisnis. Dalam praktiknya proyek ini melibatkan banyak tahapan dan koordinasi yang kompleks mulai dari perencanaan hingga pelaksanaan di lapangan. Tanpa pengelolaan yang tepat proyek konstruksi jalan berisiko menghadapi keterlambatan, pembengkakan biaya, hingga penurunan kualitas hasil. Oleh karena itu, [&hellip;]<\/p>\n","protected":false},"author":165,"featured_media":140849,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-44144","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-construction"},"acf":{"post_reviewer":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.1 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Jenis dan Cara Mudah Kelola Konstruksi Jalan<\/title>\n<meta name=\"description\" content=\"Ada beberapa jenis dan cara mudah kelola konstruksi jalan. Untuk mengetahuinya, simak artikel berikut ini!\" \/>\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\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cara Mengelola Konstruksi Jalan dengan Optimal\" \/>\n<meta property=\"og:description\" content=\"Ada beberapa jenis dan cara mudah kelola konstruksi jalan. Untuk mengetahuinya, simak artikel berikut ini!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/\" \/>\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=\"2022-10-21T03:28:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-27T07:09:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/kelola-konstruksi-jalan.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"625\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Novi Herawati\" \/>\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=\"Novi Herawati\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 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\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/\"},\"author\":{\"name\":\"Novi Herawati\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/685b29538f3b84216a3584178a792653\"},\"headline\":\"Cara Mengelola Konstruksi Jalan dengan Optimal\",\"datePublished\":\"2022-10-21T03:28:39+00:00\",\"dateModified\":\"2026-04-27T07:09:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/\"},\"wordCount\":1816,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/kelola-konstruksi-jalan.png\",\"articleSection\":[\"Construction Suite\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/\",\"name\":\"Jenis dan Cara Mudah Kelola Konstruksi Jalan\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/kelola-konstruksi-jalan.png\",\"datePublished\":\"2022-10-21T03:28:39+00:00\",\"dateModified\":\"2026-04-27T07:09:32+00:00\",\"description\":\"Ada beberapa jenis dan cara mudah kelola konstruksi jalan. Untuk mengetahuinya, simak artikel berikut ini!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/kelola-konstruksi-jalan.png\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/kelola-konstruksi-jalan.png\",\"width\":1000,\"height\":625,\"caption\":\"kelola-konstruksi-jalan\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cara Mengelola Konstruksi Jalan dengan Optimal\"}]},{\"@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\\\/685b29538f3b84216a3584178a792653\",\"name\":\"Novi Herawati\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Novi-1-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Novi-1-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Novi-1-96x96.webp\",\"caption\":\"Novi Herawati\"},\"description\":\"Novi adalah Content Writer yang sudah berpengalaman selama 4 tahun yang aktif dalam menulis artikel untuk topik bisnis dan manajemen, integrasi sistem digital untuk otomatisasi bisnis, dan manajemen keuangan perusahaan. Melalui tulisannya, Ia mendorong inovasi dan efisien perusahaan untuk meningkatkan profitabilitas bisnis.\",\"sameAs\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/\"],\"gender\":\"Perempuan\",\"knowsAbout\":[\"manajemen bisnis\",\"B2B\",\"inovasi bisnis\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Content Writer\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/author\\\/novi-herawati\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Jenis dan Cara Mudah Kelola Konstruksi Jalan","description":"Ada beberapa jenis dan cara mudah kelola konstruksi jalan. Untuk mengetahuinya, simak artikel berikut ini!","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\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/","og_locale":"id_ID","og_type":"article","og_title":"Cara Mengelola Konstruksi Jalan dengan Optimal","og_description":"Ada beberapa jenis dan cara mudah kelola konstruksi jalan. Untuk mengetahuinya, simak artikel berikut ini!","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2022-10-21T03:28:39+00:00","article_modified_time":"2026-04-27T07:09:32+00:00","og_image":[{"width":1000,"height":625,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/kelola-konstruksi-jalan.png","type":"image\/png"}],"author":"Novi Herawati","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Novi Herawati","Estimasi waktu membaca":"12 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/"},"author":{"name":"Novi Herawati","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/685b29538f3b84216a3584178a792653"},"headline":"Cara Mengelola Konstruksi Jalan dengan Optimal","datePublished":"2022-10-21T03:28:39+00:00","dateModified":"2026-04-27T07:09:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/"},"wordCount":1816,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/kelola-konstruksi-jalan.png","articleSection":["Construction Suite"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/","name":"Jenis dan Cara Mudah Kelola Konstruksi Jalan","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/kelola-konstruksi-jalan.png","datePublished":"2022-10-21T03:28:39+00:00","dateModified":"2026-04-27T07:09:32+00:00","description":"Ada beberapa jenis dan cara mudah kelola konstruksi jalan. Untuk mengetahuinya, simak artikel berikut ini!","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/kelola-konstruksi-jalan.png","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/kelola-konstruksi-jalan.png","width":1000,"height":625,"caption":"kelola-konstruksi-jalan"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/jenis-dan-cara-mudah-kelola-konstruksi-jalan\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Cara Mengelola Konstruksi Jalan dengan Optimal"}]},{"@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\/685b29538f3b84216a3584178a792653","name":"Novi Herawati","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Novi-1-96x96.webp","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Novi-1-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Novi-1-96x96.webp","caption":"Novi Herawati"},"description":"Novi adalah Content Writer yang sudah berpengalaman selama 4 tahun yang aktif dalam menulis artikel untuk topik bisnis dan manajemen, integrasi sistem digital untuk otomatisasi bisnis, dan manajemen keuangan perusahaan. Melalui tulisannya, Ia mendorong inovasi dan efisien perusahaan untuk meningkatkan profitabilitas bisnis.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"Perempuan","knowsAbout":["manajemen bisnis","B2B","inovasi bisnis"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/novi-herawati\/"}]}},"focus_keyword":"Konstruksi jalan","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/44144","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\/165"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=44144"}],"version-history":[{"count":5,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/44144\/revisions"}],"predecessor-version":[{"id":192928,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/44144\/revisions\/192928"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/140849"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=44144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=44144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=44144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}