{"id":193368,"date":"2026-05-06T16:09:25","date_gmt":"2026-05-06T09:09:25","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=193368"},"modified":"2026-05-06T16:09:25","modified_gmt":"2026-05-06T09:09:25","slug":"construction-manager-adalah","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/","title":{"rendered":"Mengenal Construction Manager, Tugas, dan Gajinya"},"content":{"rendered":"<p>Proyek konstruksi senilai ratusan miliar rupiah tidak bisa berjalan hanya dengan gambar teknik dan tenaga kerja. Di balik setiap proyek yang selesai tepat waktu, sesuai anggaran, dan tanpa insiden besar, selalu ada seorang Construction Manager yang bekerja keras memastikan semuanya berjalan sesuai rencana.<\/p>\n<p>Namun di Indonesia, peran ini masih sering disalahpahami. Banyak yang menyamakannya dengan Project Manager, mandor, atau pengawas lapangan biasa, padahal lingkup tanggung jawabnya jauh lebih luas dan strategis dari itu.<\/p>\n<p>Artikel ini membahas secara lengkap apa itu Construction Manager: tugas dan tanggung jawabnya, skill yang dibutuhkan, kualifikasi yang dipersyaratkan, hingga gambaran gaji dan tantangan nyata yang dihadapi di lapangan.<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Construction Manager <a href=\"#a\">bertanggung jawab mengatur pelaksanaan<\/a> proyek konstruksi agar tetap sesuai biaya, waktu, kualitas, dan standar keselamatan.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#b\">Peran ini berbeda dari mandor<\/a> atau Project Manager karena fokusnya ada pada eksekusi teknis, koordinasi lapangan, dan pengendalian risiko konstruksi.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Di tengah proyek yang makin kompleks, <a href=\"#c\">Construction Manager butuh<\/a> kombinasi pengalaman, skill manajerial, dan dukungan software untuk menjaga proyek tetap terkendali. <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><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><b><span id=\"a\">Apa Itu Construction Manager?<\/span><\/b><\/h2>\n<p>Construction Manager (CM) adalah profesional yang bertanggung jawab atas perencanaan, koordinasi, dan pengawasan seluruh proses konstruksi dari pra-konstruksi hingga serah terima proyek kepada klien.<\/p>\n<p>Posisi ini berdiri di persimpangan antara teknis, manajerial, dan komunikasi. Jadi, seorang CM harus memahami gambar teknik sekaligus mampu mengelola anggaran, jadwal, dan tim yang besar.<\/p>\n<p>Di Indonesia, peran Construction Manager semakin krusial seiring meningkatnya kompleksitas proyek infrastruktur dan properti. Proyek gedung bertingkat, kawasan industri, hingga jalan tol membutuhkan CM yang mampu menjaga tiga variabel sekaligus: biaya, waktu, dan kualitas, yang dalam industri konstruksi dikenal sebagai <b>iron triangle<\/b>.<\/p>\n<p>Berbeda dengan mandor atau pengawas lapangan, Construction Manager bekerja di level strategis. Ia yang menentukan metode konstruksi, memilih subkontraktor, mengelola risiko proyek, dan menjadi jembatan antara pemilik proyek (owner), konsultan, dan kontraktor pelaksana.<\/p>\n<h2><b>Perbedaan Construction Manager dan Project Manager<\/b><\/h2>\n<p>Dua istilah ini sering dipakai bergantian, padahal keduanya memiliki lingkup kerja yang berbeda. Kesalahan memahami perbedaan ini bisa berdampak pada struktur organisasi proyek yang tidak tepat, dan ujungnya, proyek yang tidak berjalan efisien.<\/p>\n<p><b>Project Manager (PM)<\/b> memiliki cakupan yang lebih luas. Ia bertanggung jawab atas keseluruhan proyek dari sisi bisnis, termasuk anggaran global, hubungan dengan klien, manajemen stakeholder, dan pencapaian tujuan bisnis proyek. PM bisa mengelola proyek di berbagai industri, tidak harus konstruksi.<\/p>\n<p><b>Construction Manager (CM) <\/b>lebih spesifik pada eksekusi fisik di lapangan. Fokusnya adalah memastikan proses pembangunan berlangsung sesuai spesifikasi teknis, jadwal, dan standar keselamatan. CM adalah ahli konstruksi, ia memahami metode bangun, material, dan dinamika lapangan secara mendalam.<\/p>\n<p><span id=\"b\">Dalam proyek besar, keduanya bisa eksis bersamaan: PM mengelola hubungan kontraktual dan target bisnis, sementara CM memimpin eksekusi teknis di lapangan.<\/span><\/p>\n<table style=\"width: 100%; border-collapse: collapse; font-family: sans-serif; font-size: 14px; margin-top: 20px;\">\n<thead>\n<tr>\n<th style=\"background-color: #660000; color: #ffffff; padding: 12px 16px; text-align: left; width: 22%;\">Aspek<\/th>\n<th style=\"background-color: #990000; color: #ffffff; padding: 12px 16px; text-align: left; width: 39%;\">Construction Manager<\/th>\n<th style=\"background-color: #990000; color: #ffffff; padding: 12px 16px; text-align: left; width: 39%;\">Project Manager<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"background-color: #ffffff;\">\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; font-weight: 600; color: #660000;\">Fokus Utama<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada;\">Eksekusi teknis &amp; fisik konstruksi<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada;\">Keseluruhan proyek dari sisi bisnis<\/td>\n<\/tr>\n<tr style=\"background-color: #fdf4f4;\">\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; font-weight: 600; color: #660000;\">Industri<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada;\">Khusus konstruksi &amp; infrastruktur<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada;\">Lintas industri (IT, manufaktur, dll)<\/td>\n<\/tr>\n<tr style=\"background-color: #ffffff;\">\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; font-weight: 600; color: #660000;\">Tanggung Jawab<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada;\">Metode bangun, material, K3, subkontraktor<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada;\">Anggaran global, stakeholder, risiko bisnis<\/td>\n<\/tr>\n<tr style=\"background-color: #fdf4f4;\">\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; font-weight: 600; color: #660000;\">Posisi dalam Proyek<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada;\">Lapangan &amp; teknis \u2014 dekat dengan tim konstruksi<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada;\">Strategis \u2014 jembatan antara klien &amp; tim<\/td>\n<\/tr>\n<tr style=\"background-color: #ffffff;\">\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; font-weight: 600; color: #660000;\">Keahlian Utama<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada;\">Teknik sipil, metode konstruksi, K3<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada;\">Manajemen risiko, komunikasi, perencanaan<\/td>\n<\/tr>\n<tr style=\"background-color: #fdf4f4;\">\n<td style=\"padding: 11px 16px; font-weight: 600; color: #660000;\">Sertifikasi Umum<\/td>\n<td style=\"padding: 11px 16px;\">SKA (Sertifikat Keahlian), CCM<\/td>\n<td style=\"padding: 11px 16px;\">PMP, PRINCE2, Agile\/Scrum<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><b>Tugas dan Tanggung Jawab Construction Manager<\/b><\/h2>\n<p>Peran Construction Manager mencakup hampir semua aspek proyek \u2014 dari meja perencanaan hingga serah terima kunci. Berikut tanggung jawab utamanya:<\/p>\n<h3><b>1. Perencanaan Proyek<\/b><\/h3>\n<p>CM menyusun rencana kerja menyeluruh sebelum palu pertama diayunkan: jadwal konstruksi, alokasi sumber daya, metode pelaksanaan, hingga rencana mitigasi risiko. Perencanaan yang solid di awal adalah kunci proyek yang selesai tepat waktu.<\/p>\n<h3><b>2. Manajemen Anggaran<\/b><\/h3>\n<p>CM memantau pengeluaran proyek secara ketat, membandingkan realisasi biaya dengan anggaran yang telah disetujui, mengidentifikasi potensi pembengkakan sejak dini, dan mencari efisiensi tanpa mengorbankan kualitas.<\/p>\n<h3><b>3. Koordinasi Subkontraktor dan Vendor<\/b><\/h3>\n<p>Proyek konstruksi jarang dikerjakan satu pihak saja. CM yang memilih, mengontrak, dan mengoordinasikan puluhan subkontraktor spesialis \u2014 struktur, mekanikal, elektrikal, plumbing \u2014 agar semua pekerjaan berjalan sinergis tanpa tumpang tindih atau saling menunggu.<\/p>\n<h3><b>4. Pengawasan Kualitas<\/b><\/h3>\n<p>CM memastikan setiap tahap pekerjaan sesuai spesifikasi teknis, gambar rancangan, dan standar yang berlaku. Ini termasuk melakukan inspeksi lapangan, mengevaluasi hasil uji material, dan menolak pekerjaan yang tidak memenuhi standar.<\/p>\n<h3><b>5. Manajemen K3 (Keselamatan Kerja)<\/b><\/h3>\n<p>Zero accident adalah kewajiban hukum. CM bertanggung jawab memastikan seluruh aktivitas konstruksi mematuhi regulasi K3, mulai dari kelengkapan APD, keamanan scaffolding, hingga pengelolaan B3.<\/p>\n<h3><b>6. Komunikasi dan Pelaporan<\/b><\/h3>\n<p>CM adalah penghubung antara kontraktor pelaksana, konsultan pengawas, dan pemilik proyek. Ia menyiapkan laporan progres reguler, memimpin rapat koordinasi, dan memastikan semua pihak memiliki informasi yang sama dan akurat.<\/p>\n<h3><b>7. Manajemen Perubahan (Change Order)<\/b><\/h3>\n<p>Tidak ada proyek konstruksi yang berjalan persis sesuai rencana awal. CM mengelola setiap perubahan lingkup pekerjaan, mengevaluasi dampaknya terhadap biaya dan jadwal, mendokumentasikan persetujuan, dan mengomunikasikannya ke semua pihak terkait.<\/p>\n<h3><b>8. Serah Terima Proyek<\/b><\/h3>\n<p>Di tahap akhir, CM memimpin proses commissioning, uji fungsi, dan penyusunan dokumen as-built sebelum proyek resmi diserahkan kepada pemilik.<\/p>\n<h2><b>Syarat dan Kualifikasi Construction Manager<\/b><\/h2>\n<p>Menjadi Construction Manager bukan jalur instan \u2014 posisi ini menuntut kombinasi pendidikan formal, pengalaman lapangan, dan sertifikasi yang diakui industri.<\/p>\n<h3><b>Latar Belakang Pendidikan<\/b><\/h3>\n<p>Mayoritas Construction Manager memiliki gelar S1 di bidang Teknik Sipil, Teknik Arsitektur, atau Manajemen Konstruksi. Beberapa perusahaan besar juga menerima kandidat dari Teknik Industri atau Teknik Mesin untuk proyek infrastruktur spesifik.<\/p>\n<p>Gelar S2 di bidang Manajemen Proyek atau Konstruksi menjadi nilai tambah yang signifikan, terutama untuk proyek skala besar.<\/p>\n<h3><b>Pengalaman Kerja<\/b><\/h3>\n<p>Tidak ada jalan pintas di sini. Posisi Construction Manager umumnya mensyaratkan minimal 5\u201310 tahun pengalaman di industri konstruksi, dengan track record yang dapat diverifikasi \u2014 mulai dari peran engineer, site supervisor, hingga project engineer sebelum naik ke level manajerial.<\/p>\n<h3><b>Sertifikasi Profesional<\/b><\/h3>\n<p>Di Indonesia, sertifikasi berikut menjadi standar industri:<\/p>\n<ul>\n<li aria-level=\"1\">SKA (Sertifikat Keahlian) dari LPJK \u2014 khususnya kualifikasi Ahli Madya atau Ahli Utama Manajemen Konstruksi<\/li>\n<li aria-level=\"1\">PMP (Project Management Professional) dari PMI \u2014 diakui secara internasional<\/li>\n<li aria-level=\"1\">CCM (Certified Construction Manager) dari CMAA<\/li>\n<li aria-level=\"1\">Sertifikasi K3 Konstruksi dari Kemnaker \u2014 wajib untuk proyek yang melibatkan risiko tinggi<\/li>\n<\/ul>\n<h3><b>Kompetensi Teknis<\/b><\/h3>\n<ul>\n<li aria-level=\"1\">Kemampuan membaca dan menginterpretasi gambar teknik (shop drawing, as-built)<\/li>\n<li aria-level=\"1\">Penguasaan software manajemen proyek (Primavera P6, MS Project, Procore)<\/li>\n<li aria-level=\"1\">Pemahaman kontrak konstruksi (FIDIC, kontrak pemerintah)<\/li>\n<li aria-level=\"1\">Literasi terhadap standar teknis yang berlaku (SNI, ACI, ASTM)<\/li>\n<\/ul>\n<h3><b>Kompetensi Non-Teknis<\/b><\/h3>\n<p>Kemampuan kepemimpinan, komunikasi lintas disiplin, dan pengambilan keputusan di bawah tekanan adalah kompetensi yang tidak tertulis di ijazah, tapi justru yang paling menentukan karier seorang Construction Manager di lapangan.<\/p>\n<h2><b><span id=\"c\">Skill Utama yang Harus Dimiliki Construction Manager<\/span><\/b><\/h2>\n<p>Sertifikasi bisa dipelajari, tapi skill yang benar-benar membedakan Construction Manager biasa dengan yang luar biasa dibangun dari pengalaman dan kebiasaan berpikir. Berikut skill yang paling krusial:<\/p>\n<h3><b>Hard Skills<\/b><\/h3>\n<h4><b>1. Perencanaan &amp; Penjadwalan Proyek<\/b><\/h4>\n<p>Kemampuan menyusun Work Breakdown Structure (WBS), membuat critical path, dan membaca keterlambatan sebelum benar-benar terjadi. CM yang handal tidak hanya tahu proyek terlambat \u2014 ia tahu 3 minggu sebelumnya dan sudah punya rencana recovery.<\/p>\n<h4><b>2. Estimasi Biaya<\/b><\/h4>\n<p>Menghitung volume pekerjaan, harga satuan, dan membuat Bill of Quantity (BoQ) yang akurat. Skill ini juga mencakup kemampuan membaca dan mengevaluasi penawaran subkontraktor, apakah harganya wajar atau ada yang disembunyikan.<\/p>\n<h4><b>3. Manajemen Kontrak<\/b><\/h4>\n<p>Memahami klausul kontrak, kewajiban para pihak, prosedur change order, dan mekanisme klaim. Di proyek besar, satu klausul kontrak yang salah baca bisa berujung kerugian miliaran rupiah.<\/p>\n<h4><b>4. Building Information Modeling (BIM)<\/b><\/h4>\n<p>Semakin banyak proyek skala menengah ke atas yang mensyaratkan BIM. CM yang familiar dengan Autodesk Revit, Navisworks, atau platform BIM sejenis punya nilai jual yang jauh lebih tinggi di pasar saat ini.<\/p>\n<h4><b>5. Manajemen Risiko<\/b><\/h4>\n<p>Mengidentifikasi, menilai, dan menyusun respons terhadap risiko proyek baik teknis, finansial, maupun regulasi. CM yang baik selalu punya Plan B sebelum Plan A gagal.<\/p>\n<h3><b>Soft Skills<\/b><\/h3>\n<h4><b>1. Kepemimpinan Lintas Disiplin<\/b><\/h4>\n<p>Proyek konstruksi melibatkan berbagai profesi berbeda: arsitek, insinyur struktur, MEP, quantity surveyor, hingga pekerja lapangan. CM harus bisa memimpin semua pihak tanpa otoritas langsung atas sebagian besar dari mereka.<\/p>\n<h4><b>2. Negosiasi<\/b><\/h4>\n<p>Dari negosiasi kontrak subkontraktor, perubahan harga material, hingga penyelesaian sengketa di lapangan, negosiasi adalah skill yang dipakai Construction Manager hampir setiap hari.<\/p>\n<h4><b>3. Komunikasi Tertulis &amp; Lisan<\/b><\/h4>\n<p>Laporan progres, notulen rapat, surat teguran, hingga presentasi ke klien \u2014 semua harus dikomunikasikan dengan jelas, tepat, dan terdokumentasi. Dalam sengketa proyek, komunikasi tertulis yang baik bisa menjadi senjata utama.<\/p>\n<h4><b>4. Problem-Solving di Bawah Tekanan<\/b><\/h4>\n<p>Proyek konstruksi penuh kejutan: cuaca buruk, material terlambat datang, subkontraktor tiba-tiba mundur. CM yang efektif tidak panik, ia menganalisis situasi, membuat keputusan cepat, dan bergerak.<\/p>\n<h2><b>Berapa Gaji Construction Manager di Indonesia?<\/b><\/h2>\n<p>Gaji Construction Manager di Indonesia sangat bervariasi tergantung skala proyek, pengalaman, lokasi, dan jenis perusahaan, kontraktor lokal, BUMN, atau perusahaan asing. Berikut gambaran umum berdasarkan level karier:<\/p>\n<table style=\"width: 100%; border-collapse: collapse; font-family: sans-serif; font-size: 14px; margin-top: 20px;\">\n<thead>\n<tr>\n<th style=\"background-color: #660000; color: #ffffff; padding: 12px 16px; text-align: left; width: 35%;\">Level<\/th>\n<th style=\"background-color: #990000; color: #ffffff; padding: 12px 16px; text-align: left; width: 25%;\">Pengalaman<\/th>\n<th style=\"background-color: #990000; color: #ffffff; padding: 12px 16px; text-align: left; width: 40%;\">Estimasi Gaji\/Bulan<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"background-color: #ffffff;\">\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; font-weight: 600; color: #333333;\">Junior Construction Manager<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; color: #555555;\">3\u20135 tahun<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; color: #333333;\">Rp 8 juta \u2013 Rp 15 juta<\/td>\n<\/tr>\n<tr style=\"background-color: #fdf4f4;\">\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; font-weight: 600; color: #333333;\">Construction Manager<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; color: #555555;\">5\u201310 tahun<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; color: #333333;\">Rp 15 juta \u2013 Rp 35 juta<\/td>\n<\/tr>\n<tr style=\"background-color: #ffffff;\">\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; font-weight: 600; color: #333333;\">Senior Construction Manager<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; color: #555555;\">10\u201315 tahun<\/td>\n<td style=\"padding: 11px 16px; border-bottom: 1px solid #f0dada; color: #333333;\">Rp 35 juta \u2013 Rp 60 juta<\/td>\n<\/tr>\n<tr style=\"background-color: #fdf4f4;\">\n<td style=\"padding: 11px 16px; font-weight: 600; color: #333333;\">Principal \/ Project Director<\/td>\n<td style=\"padding: 11px 16px; color: #555555;\">15+ tahun<\/td>\n<td style=\"padding: 11px 16px; color: #333333;\">Rp 60 juta \u2013 Rp 120 juta+<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Faktor yang mempengaruhi besaran gaji:<\/p>\n<ul>\n<li aria-level=\"1\"><b>Skala proyek: <\/b>CM yang menangani proyek senilai Rp 500 miliar akan dibayar berbeda dengan yang menangani proyek Rp 50 miliar<\/li>\n<li aria-level=\"1\"><b>Lokasi: <\/b>Proyek di Jakarta, Batam, atau kawasan industri umumnya menawarkan kompensasi lebih tinggi dibanding daerah lain<\/li>\n<li aria-level=\"1\"><b>Jenis perusahaan: <\/b>Kontraktor asing atau joint venture biasanya membayar 30\u201350% lebih tinggi dibanding kontraktor lokal dengan skala setara<\/li>\n<li aria-level=\"1\"><b>Sertifikasi:<\/b> Pemegang SKA Ahli Utama + PMP memiliki bargaining power yang jauh lebih kuat saat negosiasi gaji<\/li>\n<li aria-level=\"1\"><b>Rekam jejak proyek:<\/b> Portfolio proyek besar yang berhasil diselesaikan adalah CV terbaik seorang Construction Manager<\/li>\n<\/ul>\n<h2><b>Tantangan Utama yang Dihadapi Construction Manager<\/b><\/h2>\n<p>Mengelola proyek konstruksi adalah pekerjaan yang tidak pernah berjalan lurus. Berikut tantangan yang paling sering dihadapi, dan yang paling banyak menguras energi seorang Construction Manager:<\/p>\n<h3><b>1. Keterlambatan Jadwal<\/b><\/h3>\n<p>Ini tantangan nomor satu di hampir semua proyek. Penyebabnya bisa dari mana saja: material terlambat tiba, cuaca ekstrem, perizinan yang berlarut, atau subkontraktor yang tidak perform. Yang membuat ini sulit bukan hanya soal mengejar ketertinggalan, tapi menjelaskan dampak keterlambatan satu item terhadap seluruh rangkaian pekerjaan berikutnya kepada klien.<\/p>\n<h3><b>2. Pembengkakan Biaya<\/b><\/h3>\n<p>Estimasi awal hampir tidak pernah sama persis dengan realisasi. Fluktuasi harga material, pekerjaan tambah yang tidak terdokumentasi, hingga klaim subkontraktor yang tidak terprediksi bisa memakan margin proyek secara signifikan. CM dituntut peka terhadap sinyal pembengkakan sejak dini.<\/p>\n<h3><b>3. Koordinasi Multi-Pihak yang Kompleks<\/b><\/h3>\n<p>Satu proyek bisa melibatkan puluhan subkontraktor, beberapa konsultan, pengawas dari pemilik, dan regulator. Ketika setiap pihak bergerak dengan agenda dan jadwalnya sendiri, CM harus memastikan semua tetap tersinkronisasi tanpa otoritas penuh atas sebagian besar dari mereka.<\/p>\n<h3><b>4. Masalah Keselamatan Kerja<\/b><\/h3>\n<p>Konstruksi adalah industri dengan risiko kecelakaan kerja yang tinggi. Membangun budaya K3 di lapangan, terutama di tengah tekanan jadwal yang ketat adalah perjuangan yang tidak pernah benar-benar selesai. Satu insiden bisa menghentikan proyek, merusak reputasi, dan berujung pada tuntutan hukum.<\/p>\n<h3><b>5. Perubahan Lingkup yang Tidak Terkontrol (Scope Creep)<\/b><\/h3>\n<p>Klien minta &#8220;sedikit perubahan&#8221; dan perubahan kecil itu ternyata berdampak domino ke desain, struktur, MEP, dan jadwal. CM yang tidak disiplin mendokumentasikan setiap perubahan akan menemukan dirinya mengerjakan lebih banyak tanpa kompensasi tambahan.<\/p>\n<h3><b>6. Kekurangan Tenaga Kerja Terampil<\/b><\/h3>\n<p>Industri konstruksi Indonesia menghadapi gap tenaga kerja terampil yang semakin nyata. Tukang las tersertifikasi, operator alat berat berlisensi, atau spesialis MEP berpengalaman tidak selalu mudah ditemukan, terutama di luar Jawa. CM sering harus berkompromi atau mencari solusi kreatif di tengah keterbatasan ini.<\/p>\n<h3><b>7. Manajemen Data dan Dokumentasi<\/b><\/h3>\n<p>Proyek konstruksi menghasilkan ribuan dokumen: gambar revisi, notulen rapat, laporan harian, RFI, transmittal, change order. CM yang masih mengelola ini secara manual di email dan spreadsheet terpisah sangat rentan kehilangan jejak informasi, yang bisa fatal saat terjadi sengketa kontrak.<\/p>\n<h2><b>Software yang Biasa Digunakan Construction Manager<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-188194\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/dashboard-hashmicro-manajemen-konstruksi.webp\" alt=\"dashboard hashmicro manajemen konstruksi\" width=\"1189\" height=\"606\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/dashboard-hashmicro-manajemen-konstruksi.webp 1189w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/dashboard-hashmicro-manajemen-konstruksi-300x153.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/dashboard-hashmicro-manajemen-konstruksi-1024x522.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/dashboard-hashmicro-manajemen-konstruksi-768x391.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/dashboard-hashmicro-manajemen-konstruksi-824x420.webp 824w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/dashboard-hashmicro-manajemen-konstruksi-150x76.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/dashboard-hashmicro-manajemen-konstruksi-696x355.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/dashboard-hashmicro-manajemen-konstruksi-1068x544.webp 1068w\" sizes=\"auto, (max-width: 1189px) 100vw, 1189px\" \/><\/p>\n<p>Profesi Construction Manager modern sangat bergantung pada tools digital. Berikut software yang paling banyak digunakan di industri:<\/p>\n<h3><b>1. Site Management Software<\/b><\/h3>\n<p>Digunakan untuk memantau aktivitas lapangan secara terpusat, mulai dari penjadwalan, pemantauan K3, hingga pelacakan biaya. Dengan visibilitas real-time, CM bisa mendeteksi masalah lebih awal sebelum berdampak pada jadwal atau anggaran.<\/p>\n<h3><b>2. Contract Management Software<\/b><\/h3>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/contract-management\">Software manajemen kontrak<\/a> membantu CM melacak seluruh dokumentasi kontrak, perubahan lingkup (change order), dan tenggat kewajiban secara otomatis, dilengkapi fitur audit untuk memastikan kepatuhan terhadap regulasi.<\/p>\n<h3><b>3. Collaboration &amp; Document Management Software<\/b><\/h3>\n<p>Memberikan satu sumber kebenaran (single source of truth) untuk semua dokumen proyek (gambar, RFI, laporan, transmittal) agar seluruh tim selalu bekerja dengan versi terbaru dan miskomunikasi bisa dihindari.<\/p>\n<h3><b>4. Data Analytics &amp; Reporting Software<\/b><\/h3>\n<p>Menggantikan laporan spreadsheet statis dengan dashboard interaktif yang memvisualisasikan progres, tren biaya, dan kinerja proyek secara real-time, bahkan bisa diakses langsung dari lapangan via mobile.<\/p>\n<h3><b>5. ERP (Enterprise Resource Planning)<\/b><\/h3>\n<p>Untuk perusahaan yang mengelola banyak proyek sekaligus, ERP mengintegrasikan manajemen proyek, keuangan, pengadaan, dan SDM dalam satu platform, sehingga CM punya gambaran menyeluruh tanpa harus mengumpulkan data dari berbagai sistem terpisah.<\/p>\n<h2><b>Kesimpulan<\/b><\/h2>\n<p>Construction Manager adalah tulang punggung eksekusi proyek konstruksi. Ia bukan hanya pengawas lapangan. Iia adalah pengambil keputusan yang harus mampu menyeimbangkan biaya, waktu, kualitas, dan keselamatan secara bersamaan, dalam kondisi yang hampir tidak pernah ideal.<\/p>\n<p>Seiring kompleksitas proyek yang terus meningkat, CM yang hanya mengandalkan pengalaman dan intuisi akan semakin tertinggal. Kemampuan membaca data, mengelola dokumentasi secara sistematis, dan memanfaatkan teknologi yang tepat menjadi pembeda antara CM yang sekadar bertahan dan yang benar-benar memimpin.<\/p>\n<p>Jika perusahaan Anda ingin memberikan Construction Manager tools yang tepat untuk bekerja lebih efektif; dari manajemen proyek, pengadaan, hingga pelaporan keuangan dalam satu sistem terintegrasi, Anda bisa <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">konsultasikan gratis<\/a> dengan tim kami.<\/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 Construction Manager<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apakah Construction Manager harus selalu berada di lokasi proyek?<\/strong><\/summary>\n<p>Tidak selalu sepanjang waktu, tetapi Construction Manager tetap perlu hadir secara rutin di lokasi proyek untuk memantau progres, mengecek kondisi lapangan, dan memastikan koordinasi berjalan baik. Kehadiran di site penting agar keputusan yang diambil tidak hanya berdasarkan laporan, tetapi juga kondisi nyata di lapangan.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah lulusan baru bisa langsung menjadi Construction Manager?<\/strong><\/summary>\n<p>Umumnya tidak. Posisi ini biasanya membutuhkan pengalaman beberapa tahun di proyek konstruksi karena tanggung jawabnya cukup besar. Lulusan baru biasanya memulai dari posisi seperti site engineer, field engineer, atau project engineer sebelum naik ke level manajerial.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah Construction Manager hanya dibutuhkan untuk proyek besar?<\/strong><\/summary>\n<p>Tidak. Proyek skala menengah bahkan kecil juga tetap membutuhkan fungsi pengelolaan konstruksi yang baik. Pada proyek yang lebih kecil, perannya memang bisa dirangkap oleh jabatan lain, tetapi fungsi koordinasi, pengawasan, dan pengendalian tetap dibutuhkan agar proyek tidak berjalan tanpa arah.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Bagaimana cara menilai Construction Manager yang kompeten?<\/strong><\/summary>\n<p>Construction Manager yang kompeten biasanya terlihat dari rekam jejak proyek yang pernah ditangani, kemampuan mengelola tim dan subkontraktor, ketepatan mengambil keputusan, serta cara mereka menjaga biaya, mutu, dan jadwal tetap terkendali. Sertifikasi penting, tetapi hasil kerja nyata di lapangan biasanya menjadi penilaian yang lebih kuat.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apa risiko jika proyek berjalan tanpa Construction Manager yang jelas?<\/strong><\/summary>\n<p>Tanpa peran Construction Manager yang jelas, proyek lebih rentan mengalami miskomunikasi, keterlambatan pekerjaan, pembengkakan biaya, dan masalah kualitas. Koordinasi antar pihak juga bisa menjadi lemah karena tidak ada sosok yang benar-benar mengendalikan pelaksanaan konstruksi secara menyeluruh.<\/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\": \"Apakah Construction Manager harus selalu berada di lokasi proyek?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Tidak selalu sepanjang waktu, tetapi Construction Manager tetap perlu hadir secara rutin di lokasi proyek untuk memantau progres, mengecek kondisi lapangan, dan memastikan koordinasi berjalan baik. Kehadiran di site penting agar keputusan yang diambil tidak hanya berdasarkan laporan, tetapi juga kondisi nyata di lapangan.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Apakah lulusan baru bisa langsung menjadi Construction Manager?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Umumnya tidak. Posisi ini biasanya membutuhkan pengalaman beberapa tahun di proyek konstruksi karena tanggung jawabnya cukup besar. Lulusan baru biasanya memulai dari posisi seperti site engineer, field engineer, atau project engineer sebelum naik ke level manajerial.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Apakah Construction Manager hanya dibutuhkan untuk proyek besar?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Tidak. Proyek skala menengah bahkan kecil juga tetap membutuhkan fungsi pengelolaan konstruksi yang baik. Pada proyek yang lebih kecil, perannya memang bisa dirangkap oleh jabatan lain, tetapi fungsi koordinasi, pengawasan, dan pengendalian tetap dibutuhkan agar proyek tidak berjalan tanpa arah.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Bagaimana cara menilai Construction Manager yang kompeten?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Construction Manager yang kompeten biasanya terlihat dari rekam jejak proyek yang pernah ditangani, kemampuan mengelola tim dan subkontraktor, ketepatan mengambil keputusan, serta cara mereka menjaga biaya, mutu, dan jadwal tetap terkendali. Sertifikasi penting, tetapi hasil kerja nyata di lapangan biasanya menjadi penilaian yang lebih kuat.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Apa risiko jika proyek berjalan tanpa Construction Manager yang jelas?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Tanpa peran Construction Manager yang jelas, proyek lebih rentan mengalami miskomunikasi, keterlambatan pekerjaan, pembengkakan biaya, dan masalah kualitas. Koordinasi antar pihak juga bisa menjadi lemah karena tidak ada sosok yang benar-benar mengendalikan pelaksanaan konstruksi secara menyeluruh.\"\n      }\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Proyek konstruksi senilai ratusan miliar rupiah tidak bisa berjalan hanya dengan gambar teknik dan tenaga kerja. Di balik setiap proyek yang selesai tepat waktu, sesuai anggaran, dan tanpa insiden besar, selalu ada seorang Construction Manager yang bekerja keras memastikan semuanya berjalan sesuai rencana. Namun di Indonesia, peran ini masih sering disalahpahami. Banyak yang menyamakannya dengan [&hellip;]<\/p>\n","protected":false},"author":223,"featured_media":193371,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-193368","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>Mengenal Construction Manager, Tugas, dan Gajinya<\/title>\n<meta name=\"description\" content=\"Ketahui peran Construction Manager dalam proyek konstruksi, mulai dari tugas, tanggung jawab, skill penting, hingga kisaran gajinya.\" \/>\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\/construction-manager-adalah\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mengenal Construction Manager, Tugas, dan Gajinya\" \/>\n<meta property=\"og:description\" content=\"Ketahui peran Construction Manager dalam proyek konstruksi, mulai dari tugas, tanggung jawab, skill penting, hingga kisaran gajinya.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-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-05-06T09:09:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/construction-accountant.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"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=\"14 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\\\/construction-manager-adalah\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/\"},\"author\":{\"name\":\"Nur Fi'llia Nugrahani\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/116eac6e4748cbaa02f000016234fc39\"},\"headline\":\"Mengenal Construction Manager, Tugas, dan Gajinya\",\"datePublished\":\"2026-05-06T09:09:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/\"},\"wordCount\":2355,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/construction-accountant.webp\",\"articleSection\":[\"Construction Suite\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/\",\"name\":\"Mengenal Construction Manager, Tugas, dan Gajinya\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/construction-accountant.webp\",\"datePublished\":\"2026-05-06T09:09:25+00:00\",\"description\":\"Ketahui peran Construction Manager dalam proyek konstruksi, mulai dari tugas, tanggung jawab, skill penting, hingga kisaran gajinya.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/construction-accountant.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/construction-accountant.webp\",\"width\":1200,\"height\":675,\"caption\":\"construction manager\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/construction-manager-adalah\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mengenal Construction Manager, Tugas, dan Gajinya\"}]},{\"@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\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/cropped-foto-profil-nuri-96x96.webp\",\"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":"Mengenal Construction Manager, Tugas, dan Gajinya","description":"Ketahui peran Construction Manager dalam proyek konstruksi, mulai dari tugas, tanggung jawab, skill penting, hingga kisaran gajinya.","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\/construction-manager-adalah\/","og_locale":"id_ID","og_type":"article","og_title":"Mengenal Construction Manager, Tugas, dan Gajinya","og_description":"Ketahui peran Construction Manager dalam proyek konstruksi, mulai dari tugas, tanggung jawab, skill penting, hingga kisaran gajinya.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2026-05-06T09:09:25+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/construction-accountant.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":"14 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/"},"author":{"name":"Nur Fi'llia Nugrahani","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/116eac6e4748cbaa02f000016234fc39"},"headline":"Mengenal Construction Manager, Tugas, dan Gajinya","datePublished":"2026-05-06T09:09:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/"},"wordCount":2355,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/construction-accountant.webp","articleSection":["Construction Suite"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/","name":"Mengenal Construction Manager, Tugas, dan Gajinya","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/construction-accountant.webp","datePublished":"2026-05-06T09:09:25+00:00","description":"Ketahui peran Construction Manager dalam proyek konstruksi, mulai dari tugas, tanggung jawab, skill penting, hingga kisaran gajinya.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/construction-accountant.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/construction-accountant.webp","width":1200,"height":675,"caption":"construction manager"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/construction-manager-adalah\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Mengenal Construction Manager, Tugas, dan Gajinya"}]},{"@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\/wp-content\/uploads\/2025\/08\/cropped-foto-profil-nuri-96x96.webp","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":"construction manager adalah","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/193368","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=193368"}],"version-history":[{"count":1,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/193368\/revisions"}],"predecessor-version":[{"id":193374,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/193368\/revisions\/193374"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/193371"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=193368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=193368"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=193368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}