{"id":191359,"date":"2026-03-26T14:23:24","date_gmt":"2026-03-26T07:23:24","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=191359"},"modified":"2026-04-20T15:00:12","modified_gmt":"2026-04-20T08:00:12","slug":"deviasi-proyek-adalah","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/","title":{"rendered":"Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Setiap proyek berangkat dari rencana untuk memastikan target biaya, jadwal kerja, ruang lingkup, hingga hasil akhir proyek sesuai dengan rencana. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Namun, dalam eksekusinya, pelaksanaan proyek sering menemui adanya ketidaksesuaian pelaksanaan seperti perubahan kebutuhan, keterlambatan material, miskomunikasi antartim, atau keputusan mendadak dari pihak terkait yang membuat hasil aktual mulai bergeser dari rencana awal.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Peran deviasi proyek menjadi penting di sini untuk mewujudkan pengambilan keputusan bisnis yang lebih sehat. Dalam lanskap kerja yang semakin dinamis, organisasi juga dituntut melihat keberhasilan proyek bukan hanya dari selesai atau tidaknya pekerjaan, tetapi dari nilai yang benar-benar dihasilkan.<\/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><a href=\"#memahami-apa-itu-deviasi-proyek\">Deviasi proyek<\/a> adalah selisih antara rencana dan realisasi proyek yang bisa terjadi pada jadwal, biaya, ruang lingkup, atau kualitas pekerjaan, sehingga perlu dipantau sejak awal.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#penyebab-utama-terjadinya-deviasi-proyek\">Penyebab deviasi proyek<\/a> biasanya berasal dari faktor internal dan eksternal seperti perencanaan yang kurang akurat, masalah sumber daya, hingga cuaca, perubahan regulasi, dan revisi dari pemilik proyek.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p>Penanganan deviasi seperti <a href=\"#langkah-langkah-implementasi-pengendalian-deviasi-proyek\">pemantauan rutin dan analisis penyebab yang tepat<\/a> dapat menekan risiko keterlambatan atau penurunan mutu.<\/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<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\n<h2 id=\"pengertian-deviasi-proyek-dalam-konstruksi\"><strong>Memahami Apa Itu Deviasi Proyek<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\"><span id=\"deviasi\">Deviasi proyek adalah selisih antara rencana awal proyek dengan realisasi yang terjadi saat eksekusi. Selisih ini bisa muncul pada jadwal, biaya, ruang lingkup, kualitas, pemakaian sumber daya, hingga manfaat bisnis yang seharusnya dihasilkan.\u00a0<\/span><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dalam praktik manajemen proyek, tim biasanya membandingkan hasil aktual dengan <\/span><i><span style=\"font-weight: 400;\">baseline<\/span><\/i><span style=\"font-weight: 400;\"> yang sudah disetujui, seperti <\/span><i><span style=\"font-weight: 400;\">scope baseline<\/span><\/i><span style=\"font-weight: 400;\">, <\/span><i><span style=\"font-weight: 400;\">schedule baseline<\/span><\/i><span style=\"font-weight: 400;\">, dan <\/span><i><span style=\"font-weight: 400;\">cost baseline<\/span><\/i><span style=\"font-weight: 400;\">, untuk melihat apakah proyek masih berjalan sesuai jalur awal.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Karena itu, deviasi proyek tidak selalu berarti proyek gagal. Kadang deviasi hanya menandakan bahwa proyek perlu penyesuaian cepat, contohnya seperti jadwal mundur satu minggu karena ada revisi desain yang memang penting untuk meningkatkan kualitas hasil.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Meski bagus, deviasi proyek tetap <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/manajemen-risiko\/\">memerlukan analisis risiko<\/a>, keputusan korektif, dan komunikasi yang jelas ke para pemangku kepentingan untuk memastikan progres proyek tidak menyimpang jauh dan malah menyebabkan kerugian margin proyek.<\/span><\/p>\n<h2 id=\"jenis-jenis-deviasi-proyek\"><strong>Jenis-jenis Deviasi Proyek<\/strong><\/h2>\n<p data-start=\"168\" data-end=\"394\">Deviasi proyek dalam konstruksi tidak hanya muncul pada satu sisi saja. Karena proyek melibatkan banyak elemen yang saling terhubung, <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/performance-bond-adalah\/\">penyimpangan pelaksanaan atau performa bisa terjadi<\/a> pada waktu, biaya, ruang lingkup, hingga kualitas hasil pekerjaan.<\/p>\n<p data-start=\"396\" data-end=\"591\">Itu sebabnya tim proyek perlu memantau deviasi dari beberapa aspek sekaligus. Jika hanya fokus pada satu area, masalah pada area lain bisa terlewat dan justru bisa memicu gangguan yang lebih besar.<\/p>\n<p data-start=\"593\" data-end=\"703\">Secara umum, ada empat jenis deviasi proyek yang paling sering menjadi perhatian dalam pelaksanaan konstruksi:<\/p>\n<h3 data-section-id=\"1j8jxqm\" data-start=\"705\" data-end=\"749\"><strong><span role=\"text\">1. Deviasi Jadwal (<em data-start=\"728\" data-end=\"748\">Schedule Deviation<\/em>)<\/span><\/strong><\/h3>\n<p data-start=\"751\" data-end=\"982\">Deviasi jadwal adalah penyimpangan yang terjadi saat durasi pekerjaan tidak berjalan sesuai <em data-start=\"843\" data-end=\"853\">timeline<\/em> yang telah direncanakan. Jenis deviasi ini paling sering terlihat karena langsung berhubungan dengan progres proyek di lapangan.<\/p>\n<p data-start=\"984\" data-end=\"1174\">Misalnya, pekerjaan pengecoran fondasi ditargetkan selesai dalam 14 hari, tetapi realisasinya memakan waktu 20 hari. Selisih waktu tersebut menunjukkan bahwa proyek mengalami deviasi jadwal.<\/p>\n<p data-start=\"1176\" data-end=\"1365\">Masalah ini menjadi lebih serius jika keterlambatan terjadi pada pekerjaan yang penting bagi alur proyek atau disebut juga <em data-start=\"1265\" data-end=\"1280\">critical path<\/em>. Jika hal itu terjadi, penyelesaian proyek secara keseluruhan juga bisa ikut mundur.<\/p>\n<h3 data-section-id=\"gc0u2s\" data-start=\"1367\" data-end=\"1406\"><strong><span role=\"text\">2. Deviasi Biaya (<em data-start=\"1389\" data-end=\"1405\">Cost Deviation<\/em>)<\/span><\/strong><\/h3>\n<p data-start=\"1408\" data-end=\"1635\">Deviasi biaya terjadi ketika pengeluaran aktual <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/contoh-rab\/\">tidak sesuai dengan Rencana Anggaran Biaya<\/a> atau RAB. Penyimpangan ini sangat penting untuk dipantau karena berpengaruh langsung pada profit proyek dan kondisi arus kas perusahaan.<\/p>\n<p data-start=\"1637\" data-end=\"1886\">Ada banyak penyebab yang bisa memicu deviasi biaya. Beberapa yang paling umum adalah kenaikan harga material, kebutuhan lembur yang tidak direncanakan, pemborosan penggunaan sumber daya, atau kesalahan menghitung volume pekerjaan sejak tahap tender.<\/p>\n<p data-start=\"1888\" data-end=\"2112\">Jika tim proyek tidak memantau biaya secara disiplin, deviasi ini bisa <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/cost-overrun-adalah\/\">berkembang menjadi pembengkakan anggaran<\/a> yang sulit dikendalikan. Dalam jangka panjang, kondisi tersebut tentu dapat mengurangi margin keuntungan proyek.<\/p>\n<h3 data-section-id=\"1rt6e4b\" data-start=\"2114\" data-end=\"2162\"><strong><span role=\"text\">3. Deviasi Ruang Lingkup (<em data-start=\"2144\" data-end=\"2161\">Scope Deviation<\/em>)<\/span><\/strong><\/h3>\n<p data-start=\"2164\" data-end=\"2364\">Deviasi ruang lingkup muncul saat ada perubahan, penambahan, atau pengurangan pekerjaan yang tidak tercantum dalam kontrak awal. Dalam praktik proyek, kondisi ini sering dikenal sebagai <em data-start=\"2350\" data-end=\"2363\">scope creep<\/em>.<\/p>\n<p data-start=\"2366\" data-end=\"2584\">Contohnya, pemilik proyek meminta tambahan fitur tertentu, perubahan spesifikasi material, atau pekerjaan baru di tengah pelaksanaan. Jika perubahan seperti ini tidak melalui prosedur resmi, dampaknya bisa cukup besar.<\/p>\n<p data-start=\"2586\" data-end=\"2760\">Masalahnya, deviasi ruang lingkup hampir selalu memengaruhi aspek lain. Ketika pekerjaan bertambah, waktu pelaksanaan biasanya ikut bertambah, dan biaya proyek pun ikut naik.<\/p>\n<h3 data-section-id=\"1epow5u\" data-start=\"2943\" data-end=\"2998\"><strong><span role=\"text\">4. Deviasi Mutu atau Kualitas (<em data-start=\"2978\" data-end=\"2997\">Quality Deviation<\/em>)<\/span><\/strong><\/h3>\n<p data-start=\"3000\" data-end=\"3275\">Deviasi mutu terjadi ketika hasil pekerjaan tidak memenuhi standar teknis, spesifikasi material, atau toleransi yang sudah ditetapkan dalam dokumen proyek. Jenis deviasi ini sering terlihat saat hasil pekerjaan di lapangan tidak sesuai dengan standar yang seharusnya dicapai.<\/p>\n<p data-start=\"3277\" data-end=\"3516\">Misalnya, hasil uji kuat tekan beton ternyata berada di bawah mutu yang disyaratkan, atau pemasangan keramik terlihat tidak rata dan tidak presisi. Sekilas masalah seperti ini mungkin terlihat teknis, tetapi dampaknya bisa sangat besar.<\/p>\n<p data-start=\"3518\" data-end=\"3758\">Saat kualitas tidak memenuhi standar, kontraktor biasanya harus melakukan <em data-start=\"3592\" data-end=\"3600\">rework<\/em> atau pekerjaan ulang. Akibatnya, proyek tidak hanya kehilangan waktu, tetapi juga menanggung biaya tambahan untuk perbaikan, material baru, dan tenaga kerja.<\/p>\n<h2 id=\"penyebab-utama-terjadinya-deviasi-proyek\"><strong>Penyebab Utama Terjadinya Deviasi Proyek<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\"><span id=\"umumnya\">Umumnya, penyebab deviasi proyek tidak berdiri sendiri. Dalam banyak kasus, efeknya seperti efek domino. Semisal jika ada revisi ruang lingkup proyek, maka biaya proyek bisa bertambah mahal karena ada pengerjaan ulang dalam eksekusi proyek. Anda dapat memahami penyebab-penyebab deviasi lebih detail di bawah:<\/span><\/span><\/p>\n<h3><strong>Faktor Internal<\/strong><\/h3>\n<p>Faktor internal berkaitan erat dengan kapabilitas manajerial, perencanaan, dan eksekusi dari pihak kontraktor maupun konsultan. Beberapa penyebab utamanya meliputi:<\/p>\n<ul>\n<li data-section-id=\"1omq6xl\" data-start=\"79\" data-end=\"389\"><strong data-start=\"81\" data-end=\"123\">Perencanaan dan estimasi kurang akurat<\/strong><br data-start=\"123\" data-end=\"126\" \/>Jadwal proyek kadang dibuat terlalu optimis, seperti saat anggaran ditekan terlalu rendah agar lebih kompetitif saat tender. Saat proyek mulai berjalan, asumsi awal ini sering tidak sesuai dengan kondisi lapangan sehingga deviasi negatif bisa muncul sejak awal.<\/li>\n<li data-section-id=\"1bd9ink\" data-start=\"391\" data-end=\"698\"><strong data-start=\"393\" data-end=\"438\">Manajemen sumber daya yang kurang efektif<\/strong><br data-start=\"438\" data-end=\"441\" \/>Ketersediaan alat berat yang terbatas, produktivitas tenaga kerja yang rendah, atau penempatan personel yang tidak sesuai keahlian dapat memperlambat progres proyek. Jika terus berlanjut, kondisi ini bisa memengaruhi jadwal, biaya, dan kualitas pekerjaan.<\/li>\n<li data-section-id=\"18d46kh\" data-start=\"700\" data-end=\"1073\"><strong data-start=\"702\" data-end=\"738\">Kesalahan desain dan spesifikasi<\/strong><br data-start=\"738\" data-end=\"741\" \/>Dalam proyek konstruksi, gambar kerja seperti <em data-start=\"789\" data-end=\"803\" data-is-only-node=\"\">shop drawing<\/em> kadang belum sinkron antara struktur, arsitektur, dan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/quantity-takeoff\/\">MEP (<em data-start=\"865\" data-end=\"899\">Mechanical, Electrical, Plumbing<\/em>)<\/a>. Masalah ini sering baru terlihat saat pekerjaan fisik sudah dimulai, sehingga tim perlu menghentikan pekerjaan, menunggu klarifikasi, atau merevisi desain di tengah jalan.<\/li>\n<li data-section-id=\"gd541q\" data-start=\"1075\" data-end=\"1355\"><strong data-start=\"1077\" data-end=\"1112\">Kinerja rantai pasok dan vendor yang rendah<\/strong><br data-start=\"1112\" data-end=\"1115\" \/>Pengelolaan vendor dan pemasok yang kurang baik juga sering memicu deviasi proyek. Keterlambatan material utama, seperti besi tulangan atau beton pracetak, dapat menghambat rangkaian pekerjaan lain dan membuat jadwal proyek ikut bergeser.<\/li>\n<li data-section-id=\"ugcwmc\" data-start=\"1357\" data-end=\"1628\"><strong data-start=\"1359\" data-end=\"1389\">Masalah pada subkontraktor<\/strong><br data-start=\"1389\" data-end=\"1392\" \/>Tantangan subkontraktor dalam proyek pembangunan juga sering berdampak pada progres utama. Beberapa masalah yang umum terjadi yaitu arus kas yang lemah, kekurangan tenaga kerja terampil, dan kemampuan eksekusi yang belum konsisten.<\/li>\n<\/ul>\n<h3><strong>Faktor Eksternal<\/strong><\/h3>\n<p>Faktor eksternal adalah kondisi-kondisi di luar kendali operasional langsung yang dapat memaksa eksekusi proyek keluar dari jalur. Beberapa di antaranya adalah:<\/p>\n<ul>\n<li data-section-id=\"zoeq9t\" data-start=\"135\" data-end=\"555\"><strong data-start=\"137\" data-end=\"162\">Kondisi cuaca ekstrem<\/strong><br data-start=\"162\" data-end=\"165\" \/>Cuaca masih menjadi salah satu faktor eksternal yang paling sering memengaruhi proyek konstruksi. Curah hujan tinggi, banjir, angin kencang, atau cuaca yang tidak menentu bisa menghambat pekerjaan luar ruangan, seperti penggalian, pemadatan, dan pengecoran. Jika jumlah hari hujan melebihi asumsi awal dalam jadwal, waktu kerja efektif otomatis berkurang dan progres proyek ikut terhambat.<\/li>\n<li data-section-id=\"1dss49r\" data-start=\"557\" data-end=\"952\"><strong data-start=\"559\" data-end=\"596\">Perubahan kebijakan atau regulasi<\/strong><br data-start=\"596\" data-end=\"599\" \/>Proyek juga bisa terdampak oleh perubahan aturan dari pemerintah atau otoritas setempat. Misalnya, ada pembaruan terkait perizinan, standar lingkungan, keselamatan kerja, atau pembatasan jam operasional di area tertentu. Saat hal ini terjadi, tim proyek sering harus menyesuaikan metode kerja, dokumen pendukung, bahkan urutan pelaksanaan di lapangan.<\/li>\n<li data-section-id=\"1mrgfk3\" data-start=\"954\" data-end=\"1352\"><strong data-start=\"956\" data-end=\"996\">Kondisi geoteknik yang tidak terduga<\/strong><br data-start=\"996\" data-end=\"999\" \/>Tidak semua kondisi tanah bisa terbaca sempurna pada survei awal. Saat proses penggalian dimulai, tim kadang baru menemukan tanah keras, muka air tanah yang tinggi, atau utilitas bawah tanah yang belum terpetakan. Temuan seperti ini bisa memaksa proyek mengubah metode kerja, menambah waktu pelaksanaan, dan meningkatkan biaya secara cukup signifikan.<\/li>\n<li data-section-id=\"cwnfhq\" data-start=\"1354\" data-end=\"1742\"><strong data-start=\"1356\" data-end=\"1399\">Perubahan kebutuhan dari pemilik proyek<\/strong><br data-start=\"1399\" data-end=\"1402\" \/>Permintaan revisi dari pemilik proyek masih menjadi salah satu penyebab deviasi yang paling umum. Perubahan desain, spesifikasi material, atau tambahan pekerjaan di tengah pelaksanaan sering membuat ruang lingkup proyek melebar. Jika tidak dikelola dengan baik, perubahan ini akan berdampak langsung pada jadwal kerja dan anggaran proyek.<\/li>\n<\/ul>\n<h2 id=\"dampak-deviasi-proyek-terhadap-keberhasilan-konstruksi\"><strong>Dampak Deviasi Proyek Terhadap Keberhasilan Konstruksi<\/strong><\/h2>\n<p data-start=\"172\" data-end=\"485\">Deviasi proyek yang tidak cepat dikenali dan ditangani bisa menimbulkan efek berantai. Awalnya mungkin hanya terlihat sebagai keterlambatan kecil atau selisih biaya yang belum terlalu besar. Namun, jika terus dibiarkan, dampaknya bisa melebar ke banyak aspek dan mengganggu keberhasilan proyek secara keseluruhan.<\/p>\n<p data-start=\"487\" data-end=\"765\">Kerugian ini dapat dirasakan oleh banyak pihak seperti kontraktor pelaksana. Pemilik proyek, konsultan, vendor, hingga pemangku kepentingan lain juga bisa ikut terdampak. Karena itu, deviasi negatif perlu dipantau sejak awal sebelum berkembang menjadi masalah yang lebih sulit dikendalikan.<\/p>\n<h3 data-section-id=\"l4kqm\" data-start=\"767\" data-end=\"809\"><strong><span role=\"text\">1. Pembengkakan Biaya (<em data-start=\"794\" data-end=\"808\">Cost Overrun<\/em>)<\/span><\/strong><\/h3>\n<p data-start=\"811\" data-end=\"993\">Dampak yang paling cepat terasa biasanya ada pada sisi finansial. Saat jadwal proyek mundur, kontraktor harus menanggung biaya lebih banyak dari yang sudah direncanakan.<\/p>\n<p data-start=\"995\" data-end=\"1256\">Biaya tersebut bisa mencakup sewa alat berat, gaji staf lapangan, asuransi, operasional kantor proyek, hingga kebutuhan pendukung lain yang terus berjalan selama proyek belum selesai. Semakin lama keterlambatan terjadi, semakin besar pula tekanan pada anggaran.<\/p>\n<p data-start=\"1258\" data-end=\"1489\">Kondisi ini bisa menjadi lebih berat jika deviasi muncul karena pekerjaan ulang atau <em data-start=\"1343\" data-end=\"1351\">rework <\/em>yang dapat membengkakan biaya material dan tenaga kerja.<\/p>\n<h3 data-section-id=\"wu7rsw\" data-start=\"1491\" data-end=\"1538\"><strong>2. Penundaan Serah Terima dan Potensi Denda<\/strong><\/h3>\n<p data-start=\"1540\" data-end=\"1722\">Setiap proyek konstruksi umumnya memiliki target penyelesaian yang sudah tercantum dalam kontrak. Jika deviasi jadwal tidak segera dikejar, proyek berisiko tidak selesai tepat waktu.<\/p>\n<p data-start=\"1724\" data-end=\"1942\">Akibatnya, proses serah terima awal bangunan juga ikut tertunda. Padahal, pada banyak proyek, serah terima menjadi tahap penting agar pemilik bisa mulai menggunakan aset tersebut untuk operasional atau kegiatan bisnis.<\/p>\n<p data-start=\"1944\" data-end=\"2314\">Ketika serah terima mundur, pemilik proyek bisa kehilangan peluang pendapatan karena bangunan belum bisa dimanfaatkan sesuai rencana. Di sisi lain, kontraktor juga berisiko terkena denda keterlambatan atau <em data-start=\"2150\" data-end=\"2170\">liquidated damages<\/em> yang dihitung berdasarkan jumlah hari keterlambatan.<\/p>\n<h3 data-section-id=\"4xymrd\" data-start=\"2316\" data-end=\"2357\"><strong>3. Penurunan Reputasi dan Kepercayaan<\/strong><\/h3>\n<p data-start=\"2359\" data-end=\"2580\">Dalam industri konstruksi, reputasi sangat menentukan keberlanjutan bisnis. Perusahaan yang terlalu sering mengalami deviasi besar, terutama pada waktu dan biaya, bisa kehilangan kepercayaan dari klien maupun mitra kerja.<\/p>\n<p data-start=\"2582\" data-end=\"2807\">Klien tentu akan lebih berhati-hati saat memilih kontraktor untuk proyek berikutnya. Mereka cenderung menilai rekam jejak penyelesaian proyek, kedisiplinan jadwal, dan kemampuan pengendalian biaya sebelum mengambil keputusan.<\/p>\n<p data-start=\"2809\" data-end=\"3048\">Selain itu, reputasi yang menurun juga bisa memengaruhi hubungan dengan lembaga keuangan. Bank atau pihak pemberi fasilitas pembiayaan biasanya akan lebih ketat dalam menilai risiko jika perusahaan memiliki catatan proyek yang kurang baik.<\/p>\n<h3 data-section-id=\"1kr31zs\" data-start=\"3050\" data-end=\"3090\"><strong><span role=\"text\">4. Risiko Sengketa Hukum (<em data-start=\"3080\" data-end=\"3089\">Dispute<\/em>)<\/span><\/strong><\/h3>\n<p data-start=\"3092\" data-end=\"3343\">Deviasi yang menimbulkan kerugian besar sering memicu perbedaan pendapat antar pihak. Biasanya, perdebatan muncul soal siapa yang harus bertanggung jawab atas keterlambatan, tambahan biaya, atau perubahan pekerjaan yang terjadi selama proyek berjalan.<\/p>\n<p data-start=\"3345\" data-end=\"3604\">Jika klaim perpanjangan waktu, tambahan biaya, atau revisi ruang lingkup tidak menemukan titik temu, masalah bisa meningkat menjadi sengketa formal. Proses ini akan sangat rumit karena bisa berujung pada arbitrase atau proses pengadilan.<\/p>\n<p data-start=\"3606\" data-end=\"3810\">Selain memakan waktu, sengketa hukum juga menguras biaya dan energi perusahaan. Fokus tim yang seharusnya tertuju pada penyelesaian proyek akhirnya terbagi untuk menangani masalah administratif dan legal.<\/p>\n<h3 data-section-id=\"a9n1kg\" data-start=\"3812\" data-end=\"3863\"><strong>5. Kompromi pada Aspek Keselamatan dan Kualitas<\/strong><\/h3>\n<p data-start=\"3865\" data-end=\"4072\">Saat proyek tertinggal dari jadwal, tekanan untuk mengejar progres biasanya meningkat. Dalam kondisi seperti ini, kontraktor kadang memilih langkah percepatan yang terlalu agresif agar target tetap tercapai.<\/p>\n<p data-start=\"4074\" data-end=\"4321\">Misalnya, jam lembur diperpanjang terus-menerus, ritme kerja dipaksa lebih cepat, atau <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/rks-proyek\/\">pengawasan mutu (<em>quality control<\/em>) proyek<\/a> dilakukan dengan waktu yang terlalu sempit. Langkah seperti ini memang bisa terlihat membantu dalam jangka pendek, tetapi risikonya cukup besar.<\/p>\n<p data-start=\"4323\" data-end=\"4647\">Tenaga kerja yang kelelahan lebih rentan mengalami kesalahan dan kecelakaan. Selain itu, kualitas hasil pekerjaan juga bisa menurun karena proses pemeriksaan tidak berjalan seteliti seharusnya. Jika ini terjadi, proyek justru bisa menghadapi masalah baru berupa <em data-start=\"4585\" data-end=\"4593\">rework<\/em>, komplain, atau kegagalan mutu pada tahap berikutnya.<\/p>\n<h2 id=\"langkah-langkah-implementasi-pengendalian-deviasi\"><strong>Langkah-Langkah Implementasi Pengendalian Deviasi Proyek<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-191382\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/infografis-langkah-pengendalian-deviasi-proyek-hashmicro.webp\" alt=\"Infografis langkah pengendalian deviasi proyek\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/infografis-langkah-pengendalian-deviasi-proyek-hashmicro.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/infografis-langkah-pengendalian-deviasi-proyek-hashmicro-300x200.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/infografis-langkah-pengendalian-deviasi-proyek-hashmicro-1024x683.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/infografis-langkah-pengendalian-deviasi-proyek-hashmicro-768x512.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/infografis-langkah-pengendalian-deviasi-proyek-hashmicro-630x420.webp 630w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/infografis-langkah-pengendalian-deviasi-proyek-hashmicro-150x100.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/infografis-langkah-pengendalian-deviasi-proyek-hashmicro-696x464.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/infografis-langkah-pengendalian-deviasi-proyek-hashmicro-1068x712.webp 1068w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p data-start=\"239\" data-end=\"491\"><span id=\"setelah\">Setelah memahami bentuk deviasi yang dialami proyek, tim harus bergerak cepat dalam membaca penyebab deviasi untuk menyiapkan langkah perbaikan yang tepat. Berikut tahapan pengendalian deviasi proyek yang umum digunakan di lapangan:<\/span><\/p>\n<h3 data-section-id=\"17cp9hk\" data-start=\"493\" data-end=\"537\"><strong><span role=\"text\">1. Tetapkan <em data-start=\"509\" data-end=\"519\">baseline<\/em> proyek yang jelas<\/span><\/strong><\/h3>\n<p data-start=\"539\" data-end=\"713\">Pengendalian deviasi harus punya acuan yang jelas. Karena itu, tim perlu menetapkan <em data-start=\"623\" data-end=\"633\">baseline<\/em> proyek sejak awal yang mencakup jadwal, anggaran, dan ruang lingkup pekerjaan.<\/p>\n<p data-start=\"715\" data-end=\"902\">Penting untuk <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/laporan-progress-proyek\/\">membuat <em>baseline<\/em> yang realistis<\/a> agar bisa diimplementasikan dalam menghadapi deviasi<i>.<\/i> Selain itu, pastikan semua pihak utama menyetujui <em>baseline<\/em> agar tidak muncul perbedaan pemahaman saat proyek berjalan.<\/p>\n<h3 data-section-id=\"1ikhmwl\" data-start=\"904\" data-end=\"944\"><strong>2. Perbarui data aktual secara rutin<\/strong><\/h3>\n<p data-start=\"946\" data-end=\"1110\">Setelah <em data-start=\"954\" data-end=\"964\">baseline<\/em> siap, tim perlu memperbarui data realisasi secara disiplin. Pembaruan ini bisa dilakukan harian, mingguan, atau bulanan, tergantung skala proyek.<\/p>\n<p data-start=\"1112\" data-end=\"1292\">Data yang dicatat biasanya meliputi progres fisik, pemakaian tenaga kerja, material terpasang, dan biaya aktual. Semakin rapi datanya, semakin mudah tim melihat deviasi sejak awal.<\/p>\n<h3 data-section-id=\"hwe566\" data-start=\"1294\" data-end=\"1347\"><strong>3. Ukur kinerja proyek dengan data yang terhubung<\/strong><\/h3>\n<p data-start=\"1349\" data-end=\"1545\">Agar deviasi tidak hanya terlihat dari perkiraan, tim perlu mengukurnya dengan metode yang lebih terstruktur. Salah satu pendekatan yang sering dipakai adalah <em data-start=\"1508\" data-end=\"1533\">Earned Value Management<\/em> atau <em data-start=\"1539\" data-end=\"1544\">EVM<\/em>. Berikut merupakan tiga metrik dasar EVM:<\/p>\n<div style=\"border: 2px solid #990000; background: #fff; padding: 14px; margin: 15px 0; border-radius: 6px; box-shadow: 0 3px 8px rgba(0,0,0,0.08); font-family: Arial, sans-serif; font-size: 18px; font-weight: bold; text-align: center; color: #222;\">Planned Value (PV): Nilai anggaran dari pekerjaan yang direncanakan untuk diselesaikan pada waktu tertentu.<br \/>\nEarned Value (EV): Nilai anggaran dari pekerjaan yang benar-benar telah diselesaikan secara fisik di lapangan (progres aktual).<br \/>\nActual Cost (AC): Biaya nyata yang telah dikeluarkan untuk menyelesaikan pekerjaan tersebut.<\/div>\n<p data-start=\"1547\" data-end=\"1797\">Dari ketiga metrik di atas, manajer proyek dapat menghitung deviasi dengan rumus berikut:<\/p>\n<div style=\"border: 2px solid #990000; background: #fff; padding: 14px; margin: 15px 0; border-radius: 6px; box-shadow: 0 3px 8px rgba(0,0,0,0.08); font-family: Arial, sans-serif; font-size: 18px; font-weight: bold; text-align: center; color: #222;\">Schedule Variance (SV = EV &#8211; PV): Jika hasilnya negatif, berarti proyek mengalami deviasi jadwal (terlambat).<br \/>\nCost Variance (CV = EV &#8211; AC): Jika hasilnya negatif, berarti proyek mengalami deviasi biaya (overbudget).<br \/>\nSchedule Performance Index (SPI = EV \/ PV): Jika SPI &lt; 1, proyek terlambat.<br \/>\nCost Performance Index (CPI = EV \/ AC): Jika CPI &lt; 1, proyek melebihi anggaran.<\/div>\n<p data-start=\"1547\" data-end=\"1797\">Metode ini membantu tim membandingkan pekerjaan yang direncanakan, pekerjaan yang benar-benar selesai, dan biaya yang sudah keluar. Dari sini, manajer proyek bisa melihat apakah proyek tertinggal, melebihi anggaran, atau masih berjalan sesuai target.<\/p>\n<h3 data-section-id=\"dri981\" data-start=\"1799\" data-end=\"1826\"><strong>4. Cari akar masalahnya<\/strong><\/h3>\n<p data-start=\"1828\" data-end=\"1994\">Setelah deviasi terlihat, langkah berikutnya adalah mencari penyebab utamanya. Jangan berhenti pada angka minus di laporan, karena angka biasanya hanya menunjukkan gejala penyimpangan.<\/p>\n<p data-start=\"1996\" data-end=\"2197\">Tim perlu mengecek apa yang sebenarnya terjadi di lapangan. Misalnya, apakah keterlambatan muncul karena material datang terlambat, alat kurang, cuaca terganggu, atau persetujuan gambar kerja berjalan lambat.<\/p>\n<h3 data-section-id=\"1ct0wn\" data-start=\"2199\" data-end=\"2245\"><strong>5. Susun tindakan perbaikan yang realistis<\/strong><\/h3>\n<p data-start=\"2247\" data-end=\"2463\">Jika akar masalah sudah dipahami dengan jelas, tim bisa mulai menyiapkan tindakan perbaikan. Dalam proyek konstruksi, langkah ini biasanya berupa penambahan sumber daya, lembur, atau perubahan urutan kerja agar progres bisa dikejar.<\/p>\n<p data-start=\"2465\" data-end=\"2710\">Namun, setiap tindakan tetap perlu dihitung dampaknya. Penambahan tenaga dan alat bisa mempercepat pekerjaan, tetapi biayanya ikut naik. Sementara itu, pekerjaan yang dibuat tumpang tindih bisa menghemat waktu, tetapi risikonya juga lebih besar.<\/p>\n<h3 data-section-id=\"v4e5wy\" data-start=\"2712\" data-end=\"2765\"><strong>6. Jalankan rencana perbaikan dan pantau hasilnya<\/strong><\/h3>\n<p data-start=\"2767\" data-end=\"2961\">Setelah rencana perbaikan disusun, tim harus segera menjalankannya di lapangan. Pada tahap ini, pengawasan perlu lebih ketat agar hasilnya benar-benar terlihat pada periode pelaporan berikutnya.<\/p>\n<p data-start=\"2963\" data-end=\"3173\">Jika deviasi mulai mengecil, berarti langkah perbaikannya cukup efektif. Namun, jika deviasi tetap membesar, tim perlu meninjau ulang strateginya atau mengevaluasi apakah <em data-start=\"3134\" data-end=\"3144\">baseline<\/em> awal memang sudah realistis.<\/p>\n<h2><b>Kesimpulan<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Deviasi proyek adalah sinyal bahwa pelaksanaan proyek mulai menyimpang dari rencana, baik dari sisi biaya, jadwal, ruang lingkup, kualitas, maupun nilai bisnis. Meskipun Anda tidak bisa menghindari semua perubahan, tetapi Anda bisa mencegah perubahan kecil berkembang menjadi gangguan besar. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Kuncinya ada pada definisi ruang lingkup yang jelas, <\/span><i><span style=\"font-weight: 400;\">baseline<\/span><\/i><span style=\"font-weight: 400;\"> yang terukur, kontrol perubahan yang disiplin, komunikasi yang rapi, serta pemantauan data yang cepat dan akurat. P<\/span><span style=\"font-weight: 400;\">erusahaan yang aktif membaca tanda deviasi sejak awal punya peluang lebih besar untuk menjaga proyek tetap terkendali serta memastikan biaya yang keluar tetap sebanding dengan manfaat yang diperoleh. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Itu sebabnya, memahami deviasi proyek bukan hanya penting untuk tim operasional, tetapi juga penting untuk menjaga kesehatan bisnis secara keseluruhan.<\/span><\/p>\n<h2><strong>FAQ Seputar Deviasi Proyek<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa yang dimaksud dengan deviasi proyek?<\/strong><\/summary>\n<p>Deviasi proyek adalah selisih antara rencana dan realisasi proyek dalam periode tertentu. Selisih ini bisa muncul pada jadwal, biaya, ruang lingkup, atau kualitas. Dalam eksekusi proyek, deviasi dipakai sebagai sinyal apakah proyek masih berjalan sesuai <em>baseline<\/em> atau sudah keluar jalur.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa itu retensi dalam proyek?<\/strong><\/summary>\n<p>Retensi dalam proyek adalah sejumlah nilai pembayaran yang ditahan sementara oleh pemilik proyek atau pihak pemberi kerja sebagai jaminan bahwa pekerjaan diselesaikan dengan baik dan cacat pekerjaan akan diperbaiki sesuai kontrak. Dalam konstruksi, retensi biasanya diambil dari pembayaran termin, lalu dilepas sesuai syarat kontrak, biasanya saat penyelesaian proyek dan setelah masa pemeliharaan berakhir.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Standar deviasi proyek sebaiknya berada di angka berapa?<\/strong><\/summary>\n<p>Tidak ada satu angka baku yang berlaku untuk semua proyek. Yang sehat adalah deviasi dijaga sedekat mungkin ke nol jika diukur sebagai varians, atau sedekat mungkin ke 1 jika diukur dengan indeks kinerja seperti SPI dan CPI. Nilai SPI = 1 berarti sesuai jadwal, sedangkan nilai di bawah 1 berarti terlambat.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Siapa yang paling bertanggung jawab saat deviasi proyek terjadi?<\/strong><\/summary>\n<p>Deviasi tidak bisa dianggap sebagai kesalahan satu pihak karena bisa muncul dari kekurangan dalam perencanaan, pelaksanaan, vendor, atau faktor eksternal. Karena itu, yang lebih penting adalah mencari akar masalahnya, bukan sekadar mencari pihak yang disalahkan.<\/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 yang dimaksud dengan deviasi proyek?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Deviasi proyek adalah selisih antara rencana dan realisasi proyek dalam periode tertentu. Selisih ini bisa muncul pada jadwal, biaya, ruang lingkup, atau kualitas. Dalam eksekusi proyek, deviasi dipakai sebagai sinyal apakah proyek masih berjalan sesuai baseline atau sudah keluar jalur.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apa itu retensi dalam proyek?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Retensi dalam proyek adalah sejumlah nilai pembayaran yang ditahan sementara oleh pemilik proyek atau pihak pemberi kerja sebagai jaminan bahwa pekerjaan diselesaikan dengan baik dan cacat pekerjaan akan diperbaiki sesuai kontrak. Dalam konstruksi, retensi biasanya diambil dari pembayaran termin, lalu dilepas sesuai syarat kontrak, biasanya saat penyelesaian proyek dan setelah masa pemeliharaan berakhir.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Standar deviasi proyek sebaiknya berada di angka berapa?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Tidak ada satu angka baku yang berlaku untuk semua proyek. Yang sehat adalah deviasi dijaga sedekat mungkin ke nol jika diukur sebagai varians, atau sedekat mungkin ke 1 jika diukur dengan indeks kinerja seperti SPI dan CPI. Nilai SPI = 1 berarti sesuai jadwal, sedangkan nilai di bawah 1 berarti terlambat.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Siapa yang paling bertanggung jawab saat deviasi proyek terjadi?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Deviasi tidak bisa dianggap sebagai kesalahan satu pihak karena bisa muncul dari kekurangan dalam perencanaan, pelaksanaan, vendor, atau faktor eksternal. Karena itu, yang lebih penting adalah mencari akar masalahnya, bukan sekadar mencari pihak yang disalahkan.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Setiap proyek berangkat dari rencana untuk memastikan target biaya, jadwal kerja, ruang lingkup, hingga hasil akhir proyek sesuai dengan rencana. Namun, dalam eksekusinya, pelaksanaan proyek sering menemui adanya ketidaksesuaian pelaksanaan seperti perubahan kebutuhan, keterlambatan material, miskomunikasi antartim, atau keputusan mendadak dari pihak terkait yang membuat hasil aktual mulai bergeser dari rencana awal. Peran deviasi proyek [&hellip;]<\/p>\n","protected":false},"author":222,"featured_media":191362,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-191359","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>Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya &#187; HashMicro Indonesia<\/title>\n<meta name=\"description\" content=\"Pahami deviasi proyek serta penyebab utama dan cara mengatasinya agar jadwal, biaya, dan kualitas proyek tetap terkendali.\" \/>\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\/deviasi-proyek-adalah\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya\" \/>\n<meta property=\"og:description\" content=\"Pahami deviasi proyek serta penyebab utama dan cara mengatasinya agar jadwal, biaya, dan kualitas proyek tetap terkendali.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/\" \/>\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=\"2026-03-26T07:23:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-20T08:00:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/deviasi-proyek-adalah-hashmicro.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Kinan Eliana\" \/>\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=\"Kinan Eliana\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 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\\\/deviasi-proyek-adalah\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/\"},\"author\":{\"name\":\"Kinan Eliana\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/53c7ddb69fea5f813a7687ddf4196411\"},\"headline\":\"Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya\",\"datePublished\":\"2026-03-26T07:23:24+00:00\",\"dateModified\":\"2026-04-20T08:00:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/\"},\"wordCount\":2691,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/deviasi-proyek-adalah-hashmicro.webp\",\"articleSection\":[\"Construction Suite\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/\",\"name\":\"Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya &#187; HashMicro Indonesia\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/deviasi-proyek-adalah-hashmicro.webp\",\"datePublished\":\"2026-03-26T07:23:24+00:00\",\"dateModified\":\"2026-04-20T08:00:12+00:00\",\"description\":\"Pahami deviasi proyek serta penyebab utama dan cara mengatasinya agar jadwal, biaya, dan kualitas proyek tetap terkendali.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/deviasi-proyek-adalah-hashmicro.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/deviasi-proyek-adalah-hashmicro.webp\",\"width\":1920,\"height\":1080,\"caption\":\"Deviasi proyek adalah\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/deviasi-proyek-adalah\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya\"}]},{\"@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\\\/53c7ddb69fea5f813a7687ddf4196411\",\"name\":\"Kinan Eliana\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/kinan-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/kinan-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/kinan-96x96.webp\",\"caption\":\"Kinan Eliana\"},\"description\":\"Kinan telah berpengalaman selama 3 tahun di bidang content writing untuk industri manufaktur, konstruksi, dan retail. Ia secara konsisten mengulas topik terkait proses operasional bisnis manufaktur, manajemen omnichannel, manajemen proyek, serta implementasi teknologi digital untuk proses bisnis.\",\"sameAs\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/\"],\"gender\":\"Perempuan\",\"knowsAbout\":[\"industri\",\"manajemen bisnis\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Content Writer\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/author\\\/kinan-eliana\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya &#187; HashMicro Indonesia","description":"Pahami deviasi proyek serta penyebab utama dan cara mengatasinya agar jadwal, biaya, dan kualitas proyek tetap terkendali.","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\/deviasi-proyek-adalah\/","og_locale":"id_ID","og_type":"article","og_title":"Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya","og_description":"Pahami deviasi proyek serta penyebab utama dan cara mengatasinya agar jadwal, biaya, dan kualitas proyek tetap terkendali.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2026-03-26T07:23:24+00:00","article_modified_time":"2026-04-20T08:00:12+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/deviasi-proyek-adalah-hashmicro.webp","type":"image\/webp"}],"author":"Kinan Eliana","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Kinan Eliana","Estimasi waktu membaca":"15 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/"},"author":{"name":"Kinan Eliana","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/53c7ddb69fea5f813a7687ddf4196411"},"headline":"Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya","datePublished":"2026-03-26T07:23:24+00:00","dateModified":"2026-04-20T08:00:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/"},"wordCount":2691,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/deviasi-proyek-adalah-hashmicro.webp","articleSection":["Construction Suite"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/","name":"Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya &#187; HashMicro Indonesia","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/deviasi-proyek-adalah-hashmicro.webp","datePublished":"2026-03-26T07:23:24+00:00","dateModified":"2026-04-20T08:00:12+00:00","description":"Pahami deviasi proyek serta penyebab utama dan cara mengatasinya agar jadwal, biaya, dan kualitas proyek tetap terkendali.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/deviasi-proyek-adalah-hashmicro.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/03\/deviasi-proyek-adalah-hashmicro.webp","width":1920,"height":1080,"caption":"Deviasi proyek adalah"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/deviasi-proyek-adalah\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Deviasi Proyek Adalah: Pahami Penyebab Serta Cara Mengatasinya"}]},{"@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\/53c7ddb69fea5f813a7687ddf4196411","name":"Kinan Eliana","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/kinan-96x96.webp","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/kinan-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/kinan-96x96.webp","caption":"Kinan Eliana"},"description":"Kinan telah berpengalaman selama 3 tahun di bidang content writing untuk industri manufaktur, konstruksi, dan retail. Ia secara konsisten mengulas topik terkait proses operasional bisnis manufaktur, manajemen omnichannel, manajemen proyek, serta implementasi teknologi digital untuk proses bisnis.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"Perempuan","knowsAbout":["industri","manajemen bisnis"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/kinan-eliana\/"}]}},"focus_keyword":"deviasi proyek adalah","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/191359","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\/222"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=191359"}],"version-history":[{"count":4,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/191359\/revisions"}],"predecessor-version":[{"id":192572,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/191359\/revisions\/192572"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/191362"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=191359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=191359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=191359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}