{"id":192302,"date":"2026-04-14T10:24:33","date_gmt":"2026-04-14T03:24:33","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=192302"},"modified":"2026-04-14T10:24:33","modified_gmt":"2026-04-14T03:24:33","slug":"contract-change-order-adalah","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/","title":{"rendered":"Memahami Contract Change Order dalam Proyek Konstruksi"},"content":{"rendered":"<p>Contract Change Order adalah bagian yang cukup dekat dengan realitas proyek konstruksi, karena pelaksanaan di lapangan tidak selalu berjalan persis seperti rencana awal. Saat ada perbedaan kondisi, perubahan kebutuhan, atau penyesuaian teknis, CCO menjadi dokumen penting untuk menjaga perubahan tetap tercatat dengan jelas dan sah.<\/p>\n<p>Dalam praktiknya, CCO tidak hanya berkaitan dengan penambahan pekerjaan, tetapi juga bisa mencakup perubahan volume, spesifikasi, metode kerja, hingga jadwal pelaksanaan. Karena itu, pemahaman tentang CCO penting bagi owner, kontraktor, maupun tim proyek agar setiap perubahan tidak menimbulkan kebingungan saat pekerjaan berjalan.<\/p>\n<p>Agar lebih mudah dipahami, pembahasan ini akan mengulas pengertian Contract Change Order, dasar hukumnya, perbedaannya dengan addendum, faktor penyebabnya, hingga alur pengajuannya dalam proyek konstruksi.<\/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=\"#a\">Contract Change Order<\/a> adalah dokumen resmi yang mencatat perubahan pekerjaan proyek setelah kontrak disepakati, seperti perubahan volume pekerjaan, spesifikasi, biaya, atau jadwal.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#b\">Contract Change Order<\/a> biasanya terjadi karena revisi desain, kondisi lapangan yang berbeda dari rencana, permintaan tambahan dari owner, atau ketidaksesuaian dokumen proyek.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p>Pengelolaan Contract Change Order <a href=\"#c\">yang terdokumentasi dengan baik<\/a> membantu proyek tetap terkendali karena setiap perubahan disetujui secara formal sebelum dilaksanakan.<\/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><span data-sheets-root=\"1\"><div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tDaftar Isi:\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Daftar Isi<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n\r\n<style>\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor:#000;\r\n\t\tmargin-bottom: 10px;\r\n\t\ttransition:all 0.2s ease-in-out;\r\n\t\tfont-size:15px\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#list_toc_float li a{margin-bottom:0px}\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width:768px){\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \/* custom scrollbar style *\/\r\n::-webkit-scrollbar {\r\n    width: 7px;\r\n}\r\n::-webkit-scrollbar-track {\r\n    background: #d7a2a4;\r\n}\r\n::-webkit-scrollbar-thumb {\r\n    background: #b1252d;\r\n    border-radius: 15px;\r\n}\t\t\r\n\r\n<\/style>\r\n\r\n<script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\t\/\/ Fungsi untuk menangani klik pada semua elemen <a> dengan href yang dimulai dengan #\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst targetId = this.getAttribute('href').substring(1);\r\n\t\t\tconst targetElement = document.getElementById(targetId);\r\n\r\n\t\t\tif (targetElement) {\r\n\t\t\t\tconst headerHeight = document.querySelector('#toc .header').offsetHeight;\r\n\t\t\t\tconst navbarHeight = document.getElementById('tdi_34') ? document.getElementById('tdi_34').offsetHeight : 0;\r\n\t\t\t\tconst windowHeight = window.innerHeight;\r\n\t\t\t\tconst targetOffset = targetElement.offsetTop;\r\n\t\t\t\tconst scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight) - navbarHeight - 40;\r\n\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: scrollTo,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Tambahkan event listener untuk semua elemen <a> di toc-list dan list-toc\r\n\t\tconst titleLinks = document.querySelectorAll('#toc-list a, #list_toc a');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n<\/script>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\n\/\/ document.addEventListener(\"DOMContentLoaded\", function() {\r\n\/\/   const toc = document.querySelector('#toc');\r\n\/\/   const footer = document.querySelector('.td-footer-template-wrap');\r\n\/\/   const tocParent = toc.parentElement;\r\n\/\/   const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n\/\/   const tocHeight = toc.offsetHeight;\r\n\/\/   const triggerPoint = divTop + tocHeight + 700;\r\n\/\/   const footerHeight = footer.offsetHeight;\r\n\/\/   const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n\/\/   const phtoc = document.querySelector('#placeholder-toc');\r\n\/\/   const headers = document.querySelectorAll('.td-post-content h2');\r\n\/\/   const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\/\/ \tconst panel2 = document.querySelector(\"#toc .list\");\r\n\/\/ \tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n\/\/   let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n\/\/   \/\/ Function to handle scroll and add\/remove .sticky class\r\n\/\/   function handleScroll() {\r\n\/\/     const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n\/\/     let currentHeader = '';\r\n\r\n\/\/     \/\/ Highlight user progress as the heading comes\r\n\/\/     headers.forEach(header => {\r\n\/\/ \t\tconst headerTop = header.offsetTop;\r\n\/\/ \t\tconst headerHeight = header.clientHeight;\r\n\/\/ \/\/ \t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\/\/ \/\/ \t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\/\/ \/\/ \t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\/\/ \/\/ \t\t\ttocTitle.textContent = currentHeaderText;\r\n\/\/ \/\/ \t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\/\/ \/\/ \t\t\tif(window.innerWidth < 767){\r\n\/\/ \/\/ \t\t\t\ttocTitle.textContent = 'Daftar Isi';\r\n\/\/ \/\/ \t\t\t}\r\n\/\/ \/\/ \t\t}\r\n\/\/ \t\tif(window.innerWidth < 767){\r\n\/\/ \t\t\ttocTitle.textContent = 'Daftar Isi'; \/\/ Selalu pertahankan judul ini di mobile\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\/\/ \t\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\/\/ \t\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\t\ttocTitle.textContent = currentHeaderText;\r\n\/\/ \t\t\t\tcurrentHeader = currentHeaderId;\r\n\/\/ \t\t\t}\r\n\/\/ \t\t}\r\n\/\/ \t});\r\n\r\n\/\/     navLinks.forEach(link => {\r\n\/\/       link.classList.remove('active');\r\n\/\/       if(currentHeader != '') {\r\n\/\/ \t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\/\/ \t\t\t  link.classList.add('active');\r\n\/\/ \t\t  }\r\n\/\/ \t  }\r\n\/\/     });\r\n\/\/ \/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/ \/\/         toc.style.display = 'block';\r\n\/\/ \/\/ \t}else{\r\n\/\/ \/\/         toc.style.display = 'none';\r\n\/\/ \/\/ \t}\r\n\/\/     \/\/ Update TOC title if sticky\r\n\/\/     if (windowTop > triggerPoint) {\r\n\/\/       if (!toc.classList.contains('sticky')) {\r\n\/\/         phtoc.style.display = \"block\";\r\n\/\/         toc.classList.add('sticky');\r\n\/\/         toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\/\/         toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/         toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\tpanel2.style.height = '0px';\r\n\/\/ \t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t  if(window.innerWidth < 767){\r\n\/\/ \/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\/\/ \t\t\t  tocTitle.textContent = 'Daftar Isi'; \/\/ Reset title\r\n\/\/        \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\/\/ \t\t  }\r\n\/\/       }\r\n\/\/       if (currentHeader) {\r\n\/\/ \/\/         console.log(\"activeLink:\", activeLink);\r\n\/\/         if (activeLink) {\r\n\/\/ \/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n\/\/           tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n\/\/         }\r\n\/\/       }\r\n\/\/     } else {\r\n\/\/       toc.classList.remove('sticky');\r\n\/\/       phtoc.style.display = \"none\";\r\n\/\/       toc.style.width = 'unset'; \/\/ Reset to original width\r\n\/\/       toc.style.backgroundColor = \"#FFF\";\r\n\/\/       tocTitle.textContent = 'Daftar isi'; \/\/ Reset title\r\n\/\/ \t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\/\/ \t\ticon.style.transform = \"rotate(180deg)\";\r\n\/\/     }\r\n\/\/   }\r\n\r\n\/\/     \/\/ Attach the scroll event listener to the window\r\n\/\/     window.addEventListener('scroll', handleScroll);\r\n\r\n\/\/     \/\/ Initial call to handleScroll to set the correct state on load\r\n\/\/     handleScroll();\r\n\/\/ });\r\n\t\r\n\/\/ \t\/\/ Open toggle TOC\r\n\/\/ \t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\/\/ \t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\/\/ \t\tvar toc = document.querySelector(\"#toc\");\r\n\/\/ \t\tvar icon = document.querySelector(\".toc-icon\");\r\n\/\/ \t\tconst tocTitle = document.querySelector('#toc-title');\r\n\/\/ \t\tconst tocs = document.querySelector('#toc.sticky');\r\n\/\/  \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\/\/ \t\t  tocHeader.addEventListener(\"click\", function() {\r\n\/\/ \t\t\tvar panel = this.nextElementSibling;\r\n\/\/ \t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\/\/ \t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\/\/ \t\t\t\tif(window.innerWidth > 768){\r\n\/\/ \t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\/\/ \t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t\t}\r\n\/\/ \t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\/\/ \t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t\t}\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t\tif(window.innerWidth < 767){\r\n\/\/ \t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\/\/ \t\t\t} else {\r\n\/\/ \t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\/\/ \t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\t\t  tocTitle.textContent = 'Daftar isi'; \/\/ Reset title\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '24px';\r\n\/\/ \t\t\t \tif(window.innerWidth < 767){\r\n\/\/ \t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\/\/ \t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t}\r\n\/\/ \t\t  });\r\n\r\n\/\/ \t\t  \/\/ Close TOC when a link inside it is clicked\r\n\/\/ \t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\/\/ \t\t  tocLinks.forEach(function(link) {\r\n\/\/ \t\t\tlink.addEventListener(\"click\", function() {\r\n\/\/ \t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\/\/ \t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\t\t});\r\n\/\/ \t\t  });\r\n\/\/ \t\t});\r\n\r\n\/\/ START new JS for ToC improvements\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 1750;\r\n\tconsole.log(triggerPoint)\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight*3;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n  \r\n  const panel2 = document.querySelector(\"#toc .list\");\r\n  const icon = document.querySelector(\".toc-icon\");\r\n  const tocTitle = document.querySelector('#toc-title');\r\n\r\n  let activeLink = null;\r\n  let userClosedTOC = false; \/\/ Flag user menutup TOC\r\n\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Update TOC title sesuai header yang terlihat\r\n    headers.forEach(header => {\r\n      const headerTop = header.offsetTop;\r\n      const headerHeight = header.clientHeight;\r\n      if(window.innerWidth < 767){\r\n        tocTitle.textContent = 'Daftar Isi'; \r\n      } else {\r\n        if (window.scrollY >= (headerTop - headerHeight + 1750)) {\r\n          const currentHeaderId = header.getAttribute('id');\r\n          const currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n          tocTitle.textContent = currentHeaderText;\r\n          currentHeader = currentHeaderId;\r\n        }\r\n      }\r\n    });\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader && link.getAttribute('href').includes(currentHeader)) {\r\n        link.classList.add('active');\r\n      }\r\n    });\r\n\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`;\r\n        toc.style.backgroundColor = \"#FFF\";\r\n        \/\/ Saat sticky, TOC otomatis tertutup\r\n        panel2.style.height = '0px';\r\n        icon.style.transform = \"rotate(180deg)\";\r\n        userClosedTOC = true; \/\/ Set flag supaya tidak terbuka saat scroll\r\n      }\r\n      \r\n      if(window.innerWidth < 767){\r\n        tocTitle.textContent = 'Daftar Isi'; \r\n        toc.style.width = '150px';\r\n      }\r\n\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset';\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Daftar isi'; \r\n\r\n      \/\/ Kembalikan panel jika user belum menutup manual\r\n      if(!userClosedTOC) {\r\n        panel2.style.height = panel2.scrollHeight + \"px\";\r\n        icon.style.transform = \"rotate(0deg)\";\r\n      }\r\n    }\r\n  }\r\n\r\n  window.addEventListener('scroll', handleScroll);\r\n  handleScroll();\r\n\r\n  \/\/ Toggle TOC saat user klik\r\n  const tocHeader = document.querySelector(\"#toc .header\");\r\n  tocHeader.addEventListener(\"click\", function() {\r\n    const panel = panel2;\r\n    if (panel.style.height !== '0px') {\r\n      panel.style.height = '0px';\r\n      icon.style.transform = \"rotate(180deg)\";\r\n      userClosedTOC = true;\r\n    } else {\r\n      panel.style.height = panel.scrollHeight + \"px\";\r\n      icon.style.transform = \"rotate(0deg)\";\r\n      userClosedTOC = false;\r\n    }\r\n  });\r\n\r\n  \/\/ Close TOC saat link diklik\r\n  document.querySelectorAll(\"#toc .list a\").forEach(link => {\r\n    link.addEventListener(\"click\", function() {\r\n      panel2.style.height = '0px';\r\n      icon.style.transform = \"rotate(180deg)\";\r\n      userClosedTOC = true;\r\n    });\r\n  });\r\n});\r\n\/\/ END new JS for ToC improvements\r\n\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } \r\n\t\t  else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener(\"DOMContentLoaded\", function() {\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        \/\/ Mengambil semua elemen h2 dan h3\r\n\t\tconst elements = document.querySelectorAll('.td-post-content h2');\r\n\r\n\t\t\tfunction newFormatId(text) {\r\n\t\t\t\tif(text.toLowerCase() === \"key takeaways\") {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tconst result = text.toLowerCase()\r\n\t\t\t\t.trim()\r\n\t\t\t\t.replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n\t\t\t\t.replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\r\n\t\telements.forEach(element => {\r\n\t\t\tif (element.tagName === 'H2') {\r\n\t\t\t\tconst id = newFormatId(element.textContent); \/\/ Hasilkan ID baru\r\n\t\t\t\telement.id = id; \/\/ Tetapkan ID ke elemen h2\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Kalau Key Takeaways, jangan dimasukin\r\n\t\t\t\theadings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n\t\t\t} else if (element.tagName === 'H3') {\r\n\t\t\t\tconst id = newFormatId(element.textContent); \/\/ Hasilkan ID baru\r\n\t\t\t\telement.id = id; \/\/ Tetapkan ID ke elemen h3\r\n\t\t\t\tif (headings.length > 0) {\r\n\t\t\t\t\theadings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n       \/\/ Membuat list HTML dari objek headings\r\n\t\tconst ul = document.getElementById('list_toc');\r\n\t\tlet currentUl = ul;\r\n\t\theadings.forEach(heading => {\r\n\t\t\tconst li = document.createElement('li');\r\n\t\t\tconst a = document.createElement('a');\r\n\t\t\ta.textContent = heading.title;\r\n\t\t\ta.href = `#${heading.id}`; \/\/ Gunakan ID yang baru dihasilkan\r\n\t\t\tli.appendChild(a);\r\n\r\n\t\t\tif (heading.level === 'h2') {\r\n\t\t\t\tcurrentUl = li;\r\n\t\t\t\tul.appendChild(li);\r\n\t\t\t} else if (heading.level === 'h3') {\r\n\t\t\t\tif (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n\t\t\t\t\tconst nestedUl = document.createElement('ul');\r\n\t\t\t\t\tcurrentUl.appendChild(nestedUl);\r\n\t\t\t\t\tcurrentUl = nestedUl;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUl.appendChild(li);\r\n\t\t\t}\r\n\r\n\t\t\tcreateNestedList(li, heading.children);\r\n\t\t});\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc'\r\n\t\tconst ulFloat = document.getElementById('list_toc');\r\n\r\n\t\t\/\/ Dapatkan isi (child elements) dari ul dengan id 'list_toc'\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\r\n\t\t\/\/ Tambahkan isi yang telah didapatkan dari 'list_toc' ke ul dengan id 'list_toc_float'\r\n\t\tulToc.append(...clonedChildren);\r\n\r\n\r\n        \/\/ Fungsi untuk mengambil tinggi navbar\r\n\t\tfunction getNavbarHeight() {\r\n\t\t\tconst navbar = document.getElementById('tdi_34');\r\n\t\t\treturn navbar ? navbar.offsetHeight : 0;\r\n\t\t}\r\n\r\n\t\t\/\/ Fungsi untuk menambahkan offset posisi scroll\r\n\t\tfunction scrollToElementWithOffset(elementId) {\r\n\t\t\tconst element = document.getElementById(elementId);\r\n\t\t\tif (element) {\r\n\t\t\t\tconst offset = getNavbarHeight();\r\n\t\t\t\tconst elementPosition = element.getBoundingClientRect().top;\r\n\t\t\t\tconst offsetPosition = elementPosition - offset - 40;\r\n\r\n\t\t\t\twindow.scrollBy({\r\n\t\t\t\t\ttop: offsetPosition,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Fungsi untuk menangani klik pada tautan judul\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst href = event.target.getAttribute('href').substr(1);\r\n\t\t\tscrollToElementWithOffset(href);\r\n\t\t}\r\n\r\n\t\t\/\/ Tambahkan event listener untuk semua tautan judul\r\n\t\tconst titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t\t\r\n\t});\r\n    <\/script> -->\r\n<\/span><\/p>\n<h2><b><span id=\"a\">Apa Itu Contract Change Order?<\/span><\/b><\/h2>\n<p>Contract Change Order (CCO) pada dasarnya merujuk pada perubahan kontrak yang dilakukan setelah kontrak awal disepakati. Soeharto (1995) menyebut CCO sebagai perubahan yang terjadi setelah kontrak ditandatangani.<\/p>\n<p>Dalam lingkup institusi dan pemerintahan, CCO juga dipahami sebagai perubahan kontrak yang dilakukan secara tertulis dan sah.<\/p>\n<p>Dalam proyek pemerintah, CCO didefinisikan sebagai perubahan tertulis antara Pejabat Pembuat Komitmen (PPK) dan penyedia atau kontraktor untuk mengubah ketentuan dalam dokumen kontrak awal, baik melalui penambahan maupun pengurangan pekerjaan.<\/p>\n<h2><b>Dasar Hukum Contract Change Order<\/b><\/h2>\n<p>Dalam proyek pengadaan barang\/jasa pemerintah, perubahan kontrak pada dasarnya tetap dimungkinkan selama ada kebutuhan nyata di lapangan dan disepakati secara resmi oleh para pihak.<\/p>\n<p>Karena itu, pembahasan mengenai Contract Change Order (CCO) sebaiknya merujuk pada <a href=\"https:\/\/peraturan.bpk.go.id\/details\/73586\/perpres-no-16-tahun-2018\">Perpres 16 Tahun 2018<\/a> tentang Pengadaan Barang\/Jasa Pemerintah beserta perubahannya, serta pedoman teknis dari LKPP.<\/p>\n<p>Secara umum, perubahan kontrak dapat dilakukan ketika pelaksanaan pekerjaan membutuhkan penyesuaian, misalnya karena kondisi lapangan berbeda dari dokumen awal, adanya perubahan volume pekerjaan, perubahan jenis pekerjaan, penyesuaian spesifikasi teknis atau gambar, maupun perubahan jadwal pelaksanaan.<\/p>\n<p>Namun, setiap perubahan tetap harus dibuat secara tertulis, didukung alasan yang jelas, disepakati oleh pihak yang berwenang, dan dilaksanakan sesuai ketentuan pengadaan yang berlaku.<\/p>\n<h2><b>Perbedaan CCO dan Addendum Kontrak<\/b><\/h2>\n<p><b>Contract Change Order (CCO)<\/b> adalah dokumen formal yang digunakan untuk mengubah detail teknis dan operasional pekerjaan dalam kontrak, seperti volume, spesifikasi, atau metode kerja yang berdampak pada biaya dan\/atau jadwal proyek.<\/p>\n<p><b>Addendum Kontrak<\/b> adalah dokumen formal yang digunakan untuk mengubah, menambah, atau menghapus ketentuan dan klausul pokok dalam kontrak seperti syarat pembayaran, pihak yang terlibat, jangka waktu, atau hak &amp; kewajiban.<\/p>\n<div style=\"overflow-x: auto; margin: 24px 0;\">\n<table style=\"width: 100%; min-width: 720px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.6; color: #222222; background: #ffffff; border: 1px solid #d9d9d9;\">\n<thead>\n<tr>\n<th style=\"background: #990000; color: #ffffff !important; padding: 14px 16px; border: 1px solid #cfcfcf; text-align: left; font-weight: bold; vertical-align: top; width: 20%;\">Aspek<\/th>\n<th style=\"background: #990000; color: #ffffff !important; padding: 14px 16px; border: 1px solid #cfcfcf; text-align: left; font-weight: bold; vertical-align: top; width: 40%;\">CCO<\/th>\n<th style=\"background: #990000; color: #ffffff !important; padding: 14px 16px; border: 1px solid #cfcfcf; text-align: left; font-weight: bold; vertical-align: top; width: 40%;\">Addendum<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; font-weight: bold; vertical-align: top; background: #fafafa; color: #222222;\">Fokus<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; vertical-align: top; color: #222222;\">Teknis &amp; operasional (scope pekerjaan)<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; vertical-align: top; color: #222222;\">Legal &amp; administratif (ketentuan kontrak)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; font-weight: bold; vertical-align: top; background: #fafafa; color: #222222;\">Mengubah apa<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; vertical-align: top; color: #222222;\">Volume, spesifikasi, metode kerja, jadwal<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; vertical-align: top; color: #222222;\">Syarat pembayaran, klausul hukum, hak &amp; kewajiban<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; font-weight: bold; vertical-align: top; background: #fafafa; color: #222222;\">Dampak biaya<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; vertical-align: top; color: #222222;\">Hampir selalu ada<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; vertical-align: top; color: #222222;\">Tidak selalu<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; font-weight: bold; vertical-align: top; background: #fafafa; color: #222222;\">Frekuensi<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; vertical-align: top; color: #222222;\">Bisa sangat sering (puluhan kali)<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; vertical-align: top; color: #222222;\">Relatif jarang<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; font-weight: bold; vertical-align: top; background: #fafafa; color: #222222;\">Kekuatan hukum<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; vertical-align: top; color: #222222;\">Bersifat teknis-operasional<\/td>\n<td style=\"padding: 14px 16px; border: 1px solid #d9d9d9; vertical-align: top; color: #222222;\">Setara kontrak asli<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3>\u00a0<b>Contoh CCO:<\/b><\/h3>\n<ul>\n<li aria-level=\"1\"><b>Proyek Pembangunan Gedung:<\/b> Klien meminta penambahan 2 lantai. CCO diterbitkan untuk mencatat perubahan desain, penambahan volume material, dan penyesuaian biaya sebesar Rp 2,5 Miliar.<\/li>\n<li aria-level=\"1\"><b>Implementasi ERP:<\/b> Klien meminta penambahan modul CRM yang tidak ada di scope awal. CCO diterbitkan untuk menambah scope, timeline (+2 bulan), dan biaya.<\/li>\n<li aria-level=\"1\"><b>Proyek Jalan Tol:<\/b> Kondisi tanah berbeda dari soil test awal, sehingga metode pondasi harus diubah. CCO mencatat perubahan metode kerja dan tambahan biaya.<\/li>\n<\/ul>\n<h3><b>Contoh Addendum:<\/b><\/h3>\n<ul>\n<li aria-level=\"1\"><b>Kontrak Sewa Kantor:<\/b> Masa sewa diperpanjang dari 3 tahun menjadi 5 tahun, dengan perubahan mekanisme pembayaran dari tahunan menjadi semesteran.<\/li>\n<li aria-level=\"1\"><b>Kontrak Distribusi:<\/b> Wilayah distribusi ditambah (Kalimantan), beserta perubahan klausul eksklusivitas dan target penjualan minimum.<\/li>\n<li aria-level=\"1\"><b>Kontrak Kerja Sama:<\/b> Pembagian profit diubah dari 60:40 menjadi 50:50, ditambah klausul penyelesaian sengketa melalui arbitrase.<\/li>\n<\/ul>\n<h2><b><span id=\"b\">Faktor Penyebab Terjadinya Contract Change Order<\/span><\/b><\/h2>\n<div style=\"max-width: 1100px; margin: 24px auto; font-family: Arial, sans-serif; color: #222222; line-height: 1.5;\">\n<div style=\"background: #ffffff; border: 1px solid #e5e7eb; border-radius: 18px; overflow: hidden; box-shadow: 0 6px 18px rgba(0,0,0,0.06);\">\n<div style=\"background: #990000; padding: 28px 24px; text-align: center;\">\n<div style=\"font-size: 28px; font-weight: bold; color: #ffffff !important; margin-bottom: 8px;\">Faktor Penyebab Contract Change Order<\/div>\n<div style=\"font-size: 15px; color: #ffe3e3 !important; max-width: 760px; margin: 0 auto;\">CCO biasanya terjadi karena perubahan kebutuhan, kondisi lapangan, atau kendala pelaksanaan proyek.<\/div>\n<\/div>\n<div style=\"padding: 28px 24px; background: #ffffff;\">\n<div style=\"display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 16px; margin-bottom: 24px;\">\n<div style=\"background: #fffafa; border: 1px solid #f3d6d6; border-radius: 14px; padding: 18px;\">\n<div style=\"width: 40px; height: 40px; border-radius: 50%; background: #990000; color: #ffffff !important; text-align: center; line-height: 40px; font-size: 18px; font-weight: bold; margin-bottom: 12px;\">1<\/div>\n<div style=\"font-size: 16px; font-weight: bold; margin-bottom: 6px;\">Perubahan desain<\/div>\n<div style=\"font-size: 14px; color: #444444;\">Gambar kerja direvisi atau belum final.<\/div>\n<\/div>\n<div style=\"background: #fffafa; border: 1px solid #f3d6d6; border-radius: 14px; padding: 18px;\">\n<div style=\"width: 40px; height: 40px; border-radius: 50%; background: #990000; color: #ffffff !important; text-align: center; line-height: 40px; font-size: 18px; font-weight: bold; margin-bottom: 12px;\">2<\/div>\n<div style=\"font-size: 16px; font-weight: bold; margin-bottom: 6px;\">Kondisi lapangan berbeda<\/div>\n<div style=\"font-size: 14px; color: #444444;\">Kondisi aktual tidak sama dengan rencana awal.<\/div>\n<\/div>\n<div style=\"background: #fffafa; border: 1px solid #f3d6d6; border-radius: 14px; padding: 18px;\">\n<div style=\"width: 40px; height: 40px; border-radius: 50%; background: #990000; color: #ffffff !important; text-align: center; line-height: 40px; font-size: 18px; font-weight: bold; margin-bottom: 12px;\">3<\/div>\n<div style=\"font-size: 16px; font-weight: bold; margin-bottom: 6px;\">Permintaan owner<\/div>\n<div style=\"font-size: 14px; color: #444444;\">Ada tambahan area, material, atau fungsi bangunan.<\/div>\n<\/div>\n<div style=\"background: #fffafa; border: 1px solid #f3d6d6; border-radius: 14px; padding: 18px;\">\n<div style=\"width: 40px; height: 40px; border-radius: 50%; background: #990000; color: #ffffff !important; text-align: center; line-height: 40px; font-size: 18px; font-weight: bold; margin-bottom: 12px;\">4<\/div>\n<div style=\"font-size: 16px; font-weight: bold; margin-bottom: 6px;\">Dokumen tidak sinkron<\/div>\n<div style=\"font-size: 14px; color: #444444;\">Gambar, spesifikasi, atau BOQ tidak sesuai.<\/div>\n<\/div>\n<\/div>\n<div style=\"background: #fafafa; border: 1px solid #e5e7eb; border-radius: 14px; padding: 20px;\">\n<div style=\"font-size: 18px; font-weight: bold; color: #990000; margin-bottom: 12px;\">Faktor pendukung lainnya<\/div>\n<div style=\"display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 10px;\">\n<div style=\"background: #ffffff; border: 1px solid #ececec; border-radius: 10px; padding: 12px; font-size: 14px;\">Perubahan spesifikasi material<\/div>\n<div style=\"background: #ffffff; border: 1px solid #ececec; border-radius: 10px; padding: 12px; font-size: 14px;\">Cuaca dan kondisi tak terduga<\/div>\n<div style=\"background: #ffffff; border: 1px solid #ececec; border-radius: 10px; padding: 12px; font-size: 14px;\">Masalah koordinasi antar pihak<\/div>\n<div style=\"background: #ffffff; border: 1px solid #ececec; border-radius: 10px; padding: 12px; font-size: 14px;\">Penyesuaian jadwal pekerjaan<\/div>\n<div style=\"background: #ffffff; border: 1px solid #ececec; border-radius: 10px; padding: 12px; font-size: 14px;\">Perubahan regulasi atau kebijakan<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Berikut beberapa faktor yang paling sering menyebabkan terjadinya Contract Change Order:<\/p>\n<h3><b>1. Perubahan desain atau gambar kerja<\/b><\/h3>\n<p>Perubahan pada desain menjadi salah satu penyebab paling umum CCO. Hal ini bisa terjadi karena gambar awal belum final, ada revisi dari konsultan, atau ditemukan kebutuhan teknis baru saat proyek mulai dikerjakan.<\/p>\n<h3><b>2. Perbedaan kondisi lapangan dengan rencana awal<\/b><\/h3>\n<p>Dalam praktiknya, kondisi aktual di lapangan tidak selalu sama dengan data saat tahap perencanaan. Misalnya, kontur tanah, utilitas eksisting, akses kerja, atau kondisi struktur lama ternyata berbeda, sehingga pekerjaan perlu disesuaikan.<\/p>\n<h3><b>3. Permintaan tambahan dari owner<\/b><\/h3>\n<p>Pemilik proyek kadang mengajukan perubahan setelah pekerjaan berjalan, seperti menambah area, mengganti material, atau menyesuaikan fungsi bangunan. Permintaan seperti ini biasanya berdampak langsung pada volume pekerjaan, biaya, dan waktu pelaksanaan.<\/p>\n<h3><b>4. Kesalahan atau ketidaksesuaian dokumen perencanaan<\/b><\/h3>\n<p>CCO juga dapat dipicu oleh gambar, spesifikasi, atau Bill of Quantity yang kurang lengkap dan tidak sinkron. Saat tim proyek menemukan perbedaan antar dokumen, kontrak sering kali perlu diperbarui agar pelaksanaan tetap jelas.<\/p>\n<p>Selain faktor di atas, ada juga penyebab lain yang muncul karena dinamika proyek yang cukup kompleks.<\/p>\n<p>Beberapa faktor pendukung lainnya meliputi:<\/p>\n<ul>\n<li aria-level=\"1\"><b>Perubahan spesifikasi material<\/b> karena material awal sulit diperoleh, tidak lagi sesuai kebutuhan, atau diganti untuk menyesuaikan kualitas proyek.<\/li>\n<li aria-level=\"1\"><b>Kondisi cuaca dan keadaan tak terduga<\/b> yang menghambat pekerjaan sehingga metode kerja atau jadwal pelaksanaan perlu diubah.<\/li>\n<li aria-level=\"1\"><b>Masalah koordinasi antar pihak<\/b> seperti owner, konsultan, dan kontraktor yang menyebabkan keputusan proyek berubah di tengah pelaksanaan.<\/li>\n<li aria-level=\"1\"><b>Kebutuhan penyesuaian jadwal<\/b> akibat keterlambatan pengiriman material, tenaga kerja, atau pekerjaan sebelumnya yang belum selesai.<\/li>\n<li aria-level=\"1\"><b>Perubahan regulasi atau kebijakan tertentu<\/b> yang membuat proyek harus menyesuaikan proses maupun spesifikasi pekerjaan.<\/li>\n<\/ul>\n<h2><b><span id=\"c\">Bagaimana Alur Proses Pengajuan CCO di Proyek Konstruksi?<\/span><\/b><\/h2>\n<p>CCO dalam <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/fungsi-manajemen-keuangan-proyek-konstruksi\/\">proyek konstruksi<\/a> tidak diajukan secara sembarangan karena setiap perubahan kontrak harus punya alasan yang jelas, dampak yang terukur, dan persetujuan dari pihak terkait. Supaya prosesnya tertib, setiap tahap perlu didokumentasikan dengan baik.<\/p>\n<h3><b>1. Identifikasi kebutuhan perubahan di lapangan<\/b><\/h3>\n<p>Proses pengajuan CCO biasanya dimulai saat tim proyek menemukan kondisi yang berbeda dari dokumen kontrak awal. Perbedaan ini bisa berupa volume pekerjaan yang berubah, spesifikasi yang perlu disesuaikan, kondisi lapangan yang tidak sesuai gambar, atau permintaan tambahan dari owner.<\/p>\n<h3><b>2. Pemeriksaan teknis oleh tim proyek<\/b><\/h3>\n<p>Setelah kebutuhan perubahan ditemukan, tim teknis akan meninjau apakah perubahan tersebut memang diperlukan. Pada tahap ini, kontraktor, konsultan, atau pengawas biasanya memeriksa dampaknya terhadap mutu pekerjaan, metode pelaksanaan, dan kesesuaian dengan kebutuhan proyek.<\/p>\n<h3><b>3. Penyusunan usulan perubahan pekerjaan<\/b><\/h3>\n<p>Jika perubahan dinilai perlu, tim proyek akan menyusun usulan CCO secara tertulis. Dokumen ini umumnya memuat uraian pekerjaan yang berubah, alasan perubahan, lokasi pekerjaan, serta penjelasan mengenai bagian kontrak yang terdampak.<\/p>\n<h3><b>4. Perhitungan dampak biaya dan waktu<\/b><\/h3>\n<p>Setelah usulan perubahan dibuat, langkah berikutnya adalah menghitung dampaknya terhadap nilai pekerjaan dan durasi proyek. Tahap ini penting karena perubahan kontrak tidak hanya memengaruhi ruang lingkup kerja, tetapi juga bisa berdampak pada anggaran dan jadwal pelaksanaan.<\/p>\n<h3><b>5. Review dan pembahasan dengan pihak terkait<\/b><\/h3>\n<p>Usulan CCO kemudian dibahas bersama pihak-pihak yang terlibat, seperti owner, konsultan pengawas, perencana, dan kontraktor. Tujuan pembahasan ini adalah memastikan bahwa perubahan yang diajukan memang wajar, bisa dipertanggungjawabkan, dan tidak menimbulkan masalah baru di lapangan.<\/p>\n<h3><b>6. Persetujuan resmi atas pengajuan CCO<\/b><\/h3>\n<p>Setelah isi perubahan disepakati, dokumen CCO perlu mendapatkan persetujuan resmi dari pihak yang berwenang. Persetujuan ini penting karena perubahan pekerjaan tidak boleh langsung dijalankan tanpa dasar tertulis yang sah.<\/p>\n<h3><b>7. Penerbitan dokumen perubahan kontrak<\/b><\/h3>\n<p>Sesudah disetujui, perubahan akan dituangkan ke dalam dokumen resmi, baik dalam bentuk Contract Change Order, adendum, atau dokumen lain sesuai mekanisme proyek. Dokumen inilah yang menjadi dasar administratif dan hukum untuk melaksanakan pekerjaan yang sudah berubah.<\/p>\n<h3><b>8. Pelaksanaan pekerjaan sesuai perubahan yang disetujui<\/b><\/h3>\n<p>Setelah dokumen perubahan terbit, kontraktor dapat mulai melaksanakan pekerjaan sesuai ruang lingkup baru yang telah disetujui. Pada tahap ini, pelaksanaan harus mengikuti detail perubahan yang sudah ditetapkan agar tidak menimbulkan selisih baru di kemudian hari.<\/p>\n<h3><b>9. Monitoring dan pencatatan selama pelaksanaan<\/b><\/h3>\n<p>Perubahan yang sudah berjalan tetap perlu diawasi dan dicatat dengan rapi. Monitoring ini membantu tim proyek memastikan bahwa pekerjaan tambahan, pengurangan pekerjaan, atau perubahan spesifikasi benar-benar sesuai dengan dokumen CCO yang telah disetujui.<\/p>\n<h3><b>10. Evaluasi akhir dan penyesuaian administrasi proyek<\/b><\/h3>\n<p>Setelah pekerjaan selesai, tim proyek biasanya melakukan evaluasi akhir untuk memastikan seluruh perubahan sudah tercermin dalam administrasi proyek. Tahap ini mencakup penyesuaian nilai kontrak, progres pekerjaan, laporan pelaksanaan, hingga dokumen pendukung untuk kebutuhan audit atau serah terima.<\/p>\n<h2><b>Contoh Contract Change Order<\/b><\/h2>\n<p>Untuk membantu memahami bagaimana perubahan kontrak dituangkan secara tertulis, berikut dua contoh Contract Change Order (CCO) yang sering ditemui dalam pelaksanaan proyek.<\/p>\n<h3><b>Contoh 1 Contract Change Order<\/b><\/h3>\n<p>Contoh CCO berikut dibuat untuk menggambarkan kondisi ketika volume pekerjaan pondasi perlu disesuaikan karena hasil evaluasi lapangan tidak sepenuhnya sama dengan data awal perencanaan.<\/p>\n<div style=\"max-width: 960px; margin: 20px auto; padding: 32px; border: 1px solid #000; font-family: Arial, sans-serif; font-size: 14px; color: #000; line-height: 1.6; background: #fff;\">\n<div style=\"text-align: center; margin-bottom: 24px;\">\n<div style=\"font-size: 20px; font-weight: bold; text-transform: uppercase;\">Contract Change Order<\/div>\n<div style=\"font-size: 16px; font-weight: bold; margin-top: 6px;\">Perubahan Volume Pekerjaan Pondasi<\/div>\n<div style=\"margin-top: 8px;\">Nomor: 001\/CCO\/PROYEK-IV\/2026<\/div>\n<\/div>\n<table style=\"width: 100%; border-collapse: collapse; margin-bottom: 20px;\">\n<tbody>\n<tr>\n<td style=\"padding: 6px 8px; width: 28%; vertical-align: top;\">Nama Proyek<\/td>\n<td style=\"padding: 6px 8px; width: 2%;\">:<\/td>\n<td style=\"padding: 6px 8px;\">Pembangunan Gedung Kantor Operasional<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 6px 8px; vertical-align: top;\">Lokasi Proyek<\/td>\n<td style=\"padding: 6px 8px;\">:<\/td>\n<td style=\"padding: 6px 8px;\">Jakarta<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 6px 8px; vertical-align: top;\">Pemberi Tugas<\/td>\n<td style=\"padding: 6px 8px;\">:<\/td>\n<td style=\"padding: 6px 8px;\">PT Maju Konstruksi Indonesia<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 6px 8px; vertical-align: top;\">Kontraktor Pelaksana<\/td>\n<td style=\"padding: 6px 8px;\">:<\/td>\n<td style=\"padding: 6px 8px;\">PT Cipta Bangun Nusantara<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 6px 8px; vertical-align: top;\">Tanggal<\/td>\n<td style=\"padding: 6px 8px;\">:<\/td>\n<td style=\"padding: 6px 8px;\">14\/04\/26<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div style=\"margin-bottom: 10px; font-weight: bold;\">Dasar Perubahan<\/div>\n<div style=\"margin-bottom: 16px; text-align: justify;\">Berdasarkan hasil evaluasi lapangan dan pemeriksaan teknis, ditemukan bahwa kondisi tanah pada area pekerjaan pondasi berbeda dari data awal perencanaan. Oleh karena itu, diperlukan penyesuaian volume pekerjaan pondasi agar pelaksanaan konstruksi tetap memenuhi kebutuhan struktur dan standar teknis proyek.<\/div>\n<div style=\"margin-bottom: 10px; font-weight: bold;\">Rincian Perubahan Pekerjaan<\/div>\n<table style=\"width: 100%; border-collapse: collapse; margin-bottom: 20px;\">\n<tbody>\n<tr>\n<th style=\"border: 1px solid #000; padding: 10px; text-align: left;\">Uraian<\/th>\n<th style=\"border: 1px solid #000; padding: 10px; text-align: left;\">Sebelum Perubahan<\/th>\n<th style=\"border: 1px solid #000; padding: 10px; text-align: left;\">Sesudah Perubahan<\/th>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000; padding: 10px;\">Volume pengecoran pondasi<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">120 m\u00b3<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">145 m\u00b3<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000; padding: 10px;\">Nilai pekerjaan<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">Rp480.000.000<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">Rp580.000.000<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000; padding: 10px;\">Durasi pekerjaan<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">14 hari<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">18 hari<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div style=\"margin-bottom: 10px; font-weight: bold;\">Keterangan<\/div>\n<div style=\"margin-bottom: 20px; text-align: justify;\">Perubahan ini dilakukan untuk menyesuaikan kondisi aktual di lapangan. Penambahan volume pekerjaan berdampak pada nilai kontrak dan waktu pelaksanaan, serta telah dibahas bersama oleh pihak terkait untuk mendapatkan persetujuan sesuai prosedur proyek.<\/div>\n<div style=\"margin-bottom: 10px; font-weight: bold;\">Persetujuan<\/div>\n<table style=\"width: 100%; border-collapse: collapse; margin-top: 16px; text-align: center;\">\n<tbody>\n<tr>\n<td style=\"width: 33.33%; padding: 10px;\">Diajukan oleh,<\/td>\n<td style=\"width: 33.33%; padding: 10px;\">Diperiksa oleh,<\/td>\n<td style=\"width: 33.33%; padding: 10px;\">Disetujui oleh,<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 50px 10px 10px 10px;\"><strong>Kontraktor<\/strong><\/td>\n<td style=\"padding: 50px 10px 10px 10px;\"><strong>Konsultan Pengawas<\/strong><\/td>\n<td style=\"padding: 50px 10px 10px 10px;\"><strong>Pemberi Tugas \/ Owner<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3><b>Contoh 2 <\/b><b>Contract Change Order<\/b><\/h3>\n<p>Contoh CCO ini menunjukkan perubahan kontrak yang terjadi karena spesifikasi material finishing perlu diganti selama proyek berlangsung.<\/p>\n<div style=\"max-width: 960px; margin: 20px auto; padding: 32px; border: 1px solid #000; font-family: Arial, sans-serif; font-size: 14px; color: #000; line-height: 1.6; background: #fff;\">\n<div style=\"text-align: center; margin-bottom: 24px;\">\n<div style=\"font-size: 20px; font-weight: bold; text-transform: uppercase;\">Contract Change Order<\/div>\n<div style=\"font-size: 16px; font-weight: bold; margin-top: 6px;\">Perubahan Spesifikasi Material Finishing<\/div>\n<div style=\"margin-top: 8px;\">Nomor: 002\/CCO\/PROYEK-IV\/2026<\/div>\n<\/div>\n<table style=\"width: 100%; border-collapse: collapse; margin-bottom: 20px;\">\n<tbody>\n<tr>\n<td style=\"padding: 6px 8px; width: 28%; vertical-align: top;\">Nama Proyek<\/td>\n<td style=\"padding: 6px 8px; width: 2%;\">:<\/td>\n<td style=\"padding: 6px 8px;\">Renovasi Interior Gedung Administrasi<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 6px 8px; vertical-align: top;\">Lokasi Proyek<\/td>\n<td style=\"padding: 6px 8px;\">:<\/td>\n<td style=\"padding: 6px 8px;\">Bandung<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 6px 8px; vertical-align: top;\">Pemberi Tugas<\/td>\n<td style=\"padding: 6px 8px;\">:<\/td>\n<td style=\"padding: 6px 8px;\">PT Sentra Properti Nusantara<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 6px 8px; vertical-align: top;\">Kontraktor Pelaksana<\/td>\n<td style=\"padding: 6px 8px;\">:<\/td>\n<td style=\"padding: 6px 8px;\">PT Interior Karya Utama<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 6px 8px; vertical-align: top;\">Tanggal<\/td>\n<td style=\"padding: 6px 8px;\">:<\/td>\n<td style=\"padding: 6px 8px;\">14\/04\/26<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div style=\"margin-bottom: 10px; font-weight: bold;\">Dasar Perubahan<\/div>\n<div style=\"margin-bottom: 16px; text-align: justify;\">Selama pelaksanaan pekerjaan finishing, material lantai yang tercantum dalam kontrak awal tidak tersedia sesuai jadwal pengadaan. Untuk menjaga kelancaran proyek dan memastikan kualitas hasil pekerjaan tetap sesuai kebutuhan, dilakukan perubahan spesifikasi material ke produk lain yang setara.<\/div>\n<div style=\"margin-bottom: 10px; font-weight: bold;\">Rincian Perubahan Pekerjaan<\/div>\n<table style=\"width: 100%; border-collapse: collapse; margin-bottom: 20px;\">\n<tbody>\n<tr>\n<th style=\"border: 1px solid #000; padding: 10px; text-align: left;\">Uraian<\/th>\n<th style=\"border: 1px solid #000; padding: 10px; text-align: left;\">Sebelum Perubahan<\/th>\n<th style=\"border: 1px solid #000; padding: 10px; text-align: left;\">Sesudah Perubahan<\/th>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000; padding: 10px;\">Material lantai<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">Granite Tile A 60&#215;60<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">Homogeneous Tile B 60&#215;60<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000; padding: 10px;\">Nilai pekerjaan<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">Rp250.000.000<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">Rp265.000.000<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000; padding: 10px;\">Durasi pekerjaan<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">10 hari<\/td>\n<td style=\"border: 1px solid #000; padding: 10px;\">12 hari<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div style=\"margin-bottom: 10px; font-weight: bold;\">Keterangan<\/div>\n<div style=\"margin-bottom: 20px; text-align: justify;\">Perubahan spesifikasi ini dilakukan agar pekerjaan tetap berjalan tanpa hambatan besar akibat keterlambatan material. Material pengganti telah ditinjau dari sisi fungsi, mutu, dan kecocokannya terhadap kebutuhan proyek sebelum diajukan dalam Contract Change Order.<\/div>\n<div style=\"margin-bottom: 10px; font-weight: bold;\">Persetujuan<\/div>\n<table style=\"width: 100%; border-collapse: collapse; margin-top: 16px; text-align: center;\">\n<tbody>\n<tr>\n<td style=\"width: 33.33%; padding: 10px;\">Diajukan oleh,<\/td>\n<td style=\"width: 33.33%; padding: 10px;\">Diperiksa oleh,<\/td>\n<td style=\"width: 33.33%; padding: 10px;\">Disetujui oleh,<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 50px 10px 10px 10px;\"><strong>Kontraktor<\/strong><\/td>\n<td style=\"padding: 50px 10px 10px 10px;\"><strong>Konsultan Pengawas<\/strong><\/td>\n<td style=\"padding: 50px 10px 10px 10px;\"><strong>Pemberi Tugas \/ Owner<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2><b>Kesimpulan<\/b><\/h2>\n<p>Contract Change Order (CCO) adalah mekanisme perubahan kontrak yang digunakan ketika pelaksanaan proyek tidak lagi sepenuhnya sesuai dengan rencana awal, baik karena perubahan desain, kondisi lapangan, permintaan owner, maupun penyesuaian teknis lainnya.<\/p>\n<p>Pada akhirnya, pengelolaan CCO yang baik membantu proyek tetap berjalan lebih terarah saat perubahan tidak bisa dihindari. Karena itu, setiap proyek perlu memiliki alur pengajuan perubahan yang jelas, mulai dari identifikasi kebutuhan, evaluasi teknis, perhitungan biaya dan waktu, hingga persetujuan resmi sebelum perubahan dijalankan.<\/p>\n<p><span data-sheets-root=\"1\"><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><\/span><\/p>\n<h2><strong>Pertanyaan Seputar Contract Change Order<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa itu Contract Change Order?<\/strong><\/summary>\n<p>Contract Change Order adalah dokumen resmi yang digunakan untuk mencatat perubahan pekerjaan setelah kontrak proyek disepakati. Perubahan ini bisa mencakup volume pekerjaan, spesifikasi, biaya, waktu pelaksanaan, atau metode kerja yang perlu disesuaikan selama proyek berjalan.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa perbedaan Contract Change Order dan addendum kontrak?<\/strong><\/summary>\n<p>Contract Change Order berfokus pada perubahan teknis dan operasional pekerjaan, seperti scope, spesifikasi, atau jadwal proyek. Sementara itu, addendum kontrak digunakan untuk mengubah ketentuan utama dalam kontrak, seperti syarat pembayaran, klausul hukum, jangka waktu, atau hak dan kewajiban para pihak.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa yang biasanya menyebabkan Contract Change Order terjadi?<\/strong><\/summary>\n<p>Contract Change Order biasanya muncul karena revisi desain, kondisi lapangan yang berbeda dari rencana awal, permintaan tambahan dari owner, atau dokumen proyek yang tidak sinkron. Selain itu, perubahan spesifikasi material, keterlambatan pekerjaan, dan kendala koordinasi juga bisa memicu perubahan kontrak.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah pekerjaan boleh langsung dijalankan sebelum CCO disetujui?<\/strong><\/summary>\n<p>Pada prinsipnya, perubahan pekerjaan sebaiknya tidak langsung dijalankan sebelum ada persetujuan resmi yang tertulis. Dokumen CCO dibutuhkan agar perubahan memiliki dasar administratif yang jelas, bisa dipertanggungjawabkan, dan tidak menimbulkan sengketa di kemudian hari.<\/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    {\n      \"@type\": \"Question\",\n      \"name\": \"Apa itu Contract Change Order?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Contract Change Order adalah dokumen resmi yang digunakan untuk mencatat perubahan pekerjaan setelah kontrak proyek disepakati. Perubahan ini bisa mencakup volume pekerjaan, spesifikasi, biaya, waktu pelaksanaan, atau metode kerja yang perlu disesuaikan selama proyek berjalan.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Apa perbedaan Contract Change Order dan addendum kontrak?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Contract Change Order berfokus pada perubahan teknis dan operasional pekerjaan, seperti scope, spesifikasi, atau jadwal proyek. Sementara itu, addendum kontrak digunakan untuk mengubah ketentuan utama dalam kontrak, seperti syarat pembayaran, klausul hukum, jangka waktu, atau hak dan kewajiban para pihak.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Apa yang biasanya menyebabkan Contract Change Order terjadi?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Contract Change Order biasanya muncul karena revisi desain, kondisi lapangan yang berbeda dari rencana awal, permintaan tambahan dari owner, atau dokumen proyek yang tidak sinkron. Selain itu, perubahan spesifikasi material, keterlambatan pekerjaan, dan kendala koordinasi juga bisa memicu perubahan kontrak.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Apakah pekerjaan boleh langsung dijalankan sebelum CCO disetujui?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Pada prinsipnya, perubahan pekerjaan sebaiknya tidak langsung dijalankan sebelum ada persetujuan resmi yang tertulis. Dokumen CCO dibutuhkan agar perubahan memiliki dasar administratif yang jelas, bisa dipertanggungjawabkan, dan tidak menimbulkan sengketa di kemudian hari.\"\n      }\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Contract Change Order adalah bagian yang cukup dekat dengan realitas proyek konstruksi, karena pelaksanaan di lapangan tidak selalu berjalan persis seperti rencana awal. Saat ada perbedaan kondisi, perubahan kebutuhan, atau penyesuaian teknis, CCO menjadi dokumen penting untuk menjaga perubahan tetap tercatat dengan jelas dan sah. Dalam praktiknya, CCO tidak hanya berkaitan dengan penambahan pekerjaan, tetapi [&hellip;]<\/p>\n","protected":false},"author":223,"featured_media":192318,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-192302","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 v25.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Memahami Contract Change Order dalam Proyek Konstruksi<\/title>\n<meta name=\"description\" content=\"Contract Change Order adalah perubahan kontrak dalam proyek yang mencakup penyesuaian pekerjaan, biaya, waktu, dan dokumen pelaksanaan.\" \/>\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\/contract-change-order-adalah\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Memahami Contract Change Order dalam Proyek Konstruksi\" \/>\n<meta property=\"og:description\" content=\"Contract Change Order adalah perubahan kontrak dalam proyek yang mencakup penyesuaian pekerjaan, biaya, waktu, dan dokumen pelaksanaan.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-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-04-14T03:24:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/contract-change-order.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Nur Fi&#039;llia Nugrahani\" \/>\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=\"Nur Fi&#039;llia Nugrahani\" \/>\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\/contract-change-order-adalah\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/\"},\"author\":{\"name\":\"Nur Fi'llia Nugrahani\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/116eac6e4748cbaa02f000016234fc39\"},\"headline\":\"Memahami Contract Change Order dalam Proyek Konstruksi\",\"datePublished\":\"2026-04-14T03:24:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/\"},\"wordCount\":2036,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/contract-change-order.webp\",\"articleSection\":[\"Construction Suite\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/\",\"name\":\"Memahami Contract Change Order dalam Proyek Konstruksi\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/contract-change-order.webp\",\"datePublished\":\"2026-04-14T03:24:33+00:00\",\"description\":\"Contract Change Order adalah perubahan kontrak dalam proyek yang mencakup penyesuaian pekerjaan, biaya, waktu, dan dokumen pelaksanaan.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/contract-change-order.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/contract-change-order.webp\",\"width\":1536,\"height\":1024,\"caption\":\"contract-change-order\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Memahami Contract Change Order dalam Proyek Konstruksi\"}]},{\"@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\/116eac6e4748cbaa02f000016234fc39\",\"name\":\"Nur Fi'llia Nugrahani\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/cropped-foto-profil-nuri-96x96.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/cropped-foto-profil-nuri-96x96.webp\",\"caption\":\"Nur Fi'llia Nugrahani\"},\"description\":\"Nuri adalah seorang spesialis dalam bidang inventory management dengan pengalaman 3 tahun. Berfokus pada penulisan yang mengangkat topik pengelolaan stok, pengendalian persediaan, dan implementasi sistem inventory digital untuk menjamin efisiensi operasional bisnis.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/nur-fi-llia-nugrahani\"],\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/author\/fillia-nugrahani\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Memahami Contract Change Order dalam Proyek Konstruksi","description":"Contract Change Order adalah perubahan kontrak dalam proyek yang mencakup penyesuaian pekerjaan, biaya, waktu, dan dokumen pelaksanaan.","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\/contract-change-order-adalah\/","og_locale":"id_ID","og_type":"article","og_title":"Memahami Contract Change Order dalam Proyek Konstruksi","og_description":"Contract Change Order adalah perubahan kontrak dalam proyek yang mencakup penyesuaian pekerjaan, biaya, waktu, dan dokumen pelaksanaan.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2026-04-14T03:24:33+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/contract-change-order.webp","type":"image\/webp"}],"author":"Nur Fi'llia Nugrahani","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Nur Fi'llia Nugrahani","Estimasi waktu membaca":"12 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/"},"author":{"name":"Nur Fi'llia Nugrahani","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/116eac6e4748cbaa02f000016234fc39"},"headline":"Memahami Contract Change Order dalam Proyek Konstruksi","datePublished":"2026-04-14T03:24:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/"},"wordCount":2036,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/contract-change-order.webp","articleSection":["Construction Suite"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/","name":"Memahami Contract Change Order dalam Proyek Konstruksi","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/contract-change-order.webp","datePublished":"2026-04-14T03:24:33+00:00","description":"Contract Change Order adalah perubahan kontrak dalam proyek yang mencakup penyesuaian pekerjaan, biaya, waktu, dan dokumen pelaksanaan.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/contract-change-order.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/contract-change-order.webp","width":1536,"height":1024,"caption":"contract-change-order"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/contract-change-order-adalah\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Memahami Contract Change Order dalam Proyek Konstruksi"}]},{"@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\/116eac6e4748cbaa02f000016234fc39","name":"Nur Fi'llia Nugrahani","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/cropped-foto-profil-nuri-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/08\/cropped-foto-profil-nuri-96x96.webp","caption":"Nur Fi'llia Nugrahani"},"description":"Nuri adalah seorang spesialis dalam bidang inventory management dengan pengalaman 3 tahun. Berfokus pada penulisan yang mengangkat topik pengelolaan stok, pengendalian persediaan, dan implementasi sistem inventory digital untuk menjamin efisiensi operasional bisnis.","sameAs":["https:\/\/www.linkedin.com\/in\/nur-fi-llia-nugrahani"],"url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/fillia-nugrahani\/"}]}},"focus_keyword":"contract change order","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/192302","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\/223"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=192302"}],"version-history":[{"count":4,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/192302\/revisions"}],"predecessor-version":[{"id":192326,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/192302\/revisions\/192326"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/192318"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=192302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=192302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=192302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}