{"id":13071,"date":"2024-05-01T11:28:47","date_gmt":"2024-05-01T04:28:47","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=13071"},"modified":"2026-01-21T10:26:22","modified_gmt":"2026-01-21T03:26:22","slug":"job-costing-adalah","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/","title":{"rendered":"Job Costing: Pengertian &#038; Cara Implementasinya"},"content":{"rendered":"<p>Dalam pekerjaan berbasis proyek atau pesanan, angka biaya total sering terlihat rapi, tetapi detailnya bisa bercampur antar pekerjaan. Di sinilah job costing membantu perusahaan memisahkan dan membaca biaya per job dengan lebih jelas sejak awal.<\/p>\n<p>Job costing memetakan biaya ke tiap pekerjaan, termasuk material, tenaga kerja, dan overhead yang terkait. Dengan pemisahan ini, perusahaan lebih mudah membandingkan estimasi vs realisasi dan menelusuri sumber pembengkakan biaya.<\/p>\n<p>Bagi manajemen, job costing menjadi dasar untuk menentukan harga, mengontrol anggaran, dan mengevaluasi profitabilitas tiap job. Saat pencatatan dilakukan konsisten dan mudah ditelusuri, keputusan berikutnya terasa lebih terarah dan berbasis data.<\/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\"><a href=\"#apa\"><i><span style=\"font-weight: 400;\">Job costing<\/span><\/i><span style=\"font-weight: 400;\"> atau <\/span><i><span style=\"font-weight: 400;\">job order costing <\/span><\/i><\/a><span style=\"font-weight: 400;\">adalah metode penghitungan biaya produksi kumulatif yang kemudian ditagihkan ke harga pokok unit produksi.<\/span><\/li>\n<li aria-level=\"1\"><a href=\"#karakteristik\">Perusahaan yang cocok<\/a> menerapkan\u00a0<em>job costing\u00a0<\/em>ada 2, yaitu p<span style=\"font-weight: 400;\">erusahaan dengan banyak posisi dan spesialisasi berbeda.<\/span><\/li>\n<li aria-level=\"1\"><a href=\"#implementasi\">Implementasi job costing<\/a> akan lebih efektif jika setup rapi, tracking per job disiplin, dan review varians dilakukan rutin.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script> <span data-sheets-root=\"1\" data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:513,&quot;3&quot;:{&quot;1&quot;:0},&quot;12&quot;:0}\"><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 id=\"pengertian\"><strong>Job Costing: Definisi, Fungsi &amp; Perbedaannya dengan Process Costing<\/strong><\/h2>\n<p>Job Costing adalah metode perhitungan biaya produksi berdasarkan setiap proyek atau pesanan. Sistem ini mencatat seluruh pengeluaran seperti bahan baku, tenaga kerja, dan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/mengenal-biaya-overhead-dan-cara-menghitungnya\/\">biaya overhead<\/a>, lalu menghitung total biaya yang membentuk harga pokok per unit.<\/p>\n<p>Metode ini membantu perusahaan memahami biaya secara detail, meningkatkan akurasi laporan keuangan, dan memantau efisiensi setiap proyek.<\/p>\n<p>Selain itu, job costing juga membantu perusahaan mengevaluasi profitabilitas tiap pesanan dengan membandingkan estimasi biaya dan realisasi di lapangan.<\/p>\n<p>Dari hasilnya, manajemen bisa menentukan strategi harga yang lebih tepat, mengontrol pemborosan lebih cepat, dan menjadikan data biaya sebagai acuan untuk proyek berikutnya.<\/p>\n<h3><strong>Perbedaan Job Costing dan Process Costing<\/strong><\/h3>\n<p>Memilih metode costing yang tepat perlu disesuaikan dengan cara perusahaan menjalankan produksi. Untuk memudahkan, tabel berikut merangkum perbedaan utama job costing dan process costing.<\/p>\n<div style=\"max-width: 920px; margin: 16px 0; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;\">\n<div style=\"overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 12px; border: 1px solid #e5e7eb;\">\n<table style=\"width: 100%; border-collapse: separate; border-spacing: 0; min-width: 760px; table-layout: fixed; background: #ffffff;\">\n<thead>\n<tr>\n<th style=\"width: 26%; text-align: left; padding: 12px 16px; background: #b91c1c; color: #ffffff; font-size: 13px; font-weight: bold;\">Aspek<\/th>\n<th style=\"width: 37%; text-align: left; padding: 12px 16px; background: #b91c1c; color: #ffffff; font-size: 13px; font-weight: bold;\">Job Costing<\/th>\n<th style=\"width: 37%; text-align: left; padding: 12px 16px; background: #b91c1c; color: #ffffff; font-size: 13px; font-weight: bold;\">Process Costing<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px 16px; font-size: 13px; font-weight: 600; color: #111827; border-top: 1px solid #e5e7eb;\">Jenis Produksi<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Berdasarkan pesanan (custom\/unik)<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Produksi massal (homogen)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px 16px; font-size: 13px; font-weight: 600; color: #111827; border-top: 1px solid #e5e7eb;\">Contoh Industri<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Konstruksi, percetakan, furniture custom<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">F&amp;B, kimia, tekstil, minuman botol<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px 16px; font-size: 13px; font-weight: 600; color: #111827; border-top: 1px solid #e5e7eb;\">Unit Biaya<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Per proyek atau job<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Per batch atau departemen<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px 16px; font-size: 13px; font-weight: 600; color: #111827; border-top: 1px solid #e5e7eb;\">Tracking Biaya<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Setiap job memiliki cost sheet terpisah<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Biaya dicatat per proses atau departemen<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px 16px; font-size: 13px; font-weight: 600; color: #111827; border-top: 1px solid #e5e7eb;\">Kompleksitas<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Lebih tinggi karena banyak variabel per job<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Lebih rendah dan terstandarisasi<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px 16px; font-size: 13px; font-weight: 600; color: #111827; border-top: 1px solid #e5e7eb;\">Cocok Digunakan<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Bisnis dengan variasi produk atau pesanan tinggi<\/td>\n<td style=\"padding: 12px 16px; font-size: 13px; color: #111827; border-top: 1px solid #e5e7eb;\">Bisnis dengan produk seragam dan volume besar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>Gunakan Job Costing jika:<\/strong><\/p>\n<ul>\n<li>Setiap proyek\/pesanan memiliki spesifikasi unik<\/li>\n<li>Biaya material dan tenaga kerja sangat bervariasi antar-job<\/li>\n<li>Anda perlu tahu profitabilitas per proyek (bukan rata-rata)<\/li>\n<li>Pricing ditentukan berdasarkan estimasi biaya + markup<\/li>\n<li>Customer expect itemized quote sebelum order<\/li>\n<li>Ada kontrak jangka panjang yang perlu tracking terpisah<\/li>\n<\/ul>\n<p><strong>Process Costing lebih cocok jika:<\/strong><\/p>\n<ul>\n<li>Produk identik dan diproduksi dalam volume besar<\/li>\n<li>Biaya per unit relatif sama dari batch ke batch<\/li>\n<li>Anda butuh cost per unit untuk pricing standar<\/li>\n<li>Produksi continuous (24\/7) dengan flow yang sama<\/li>\n<\/ul>\n<h2><strong>Karakteristik Utama Job Costing<\/strong><\/h2>\n<p>Secara sederhana, job costing cocok dipakai ketika perusahaan perlu melihat biaya per pesanan\/per proyek secara jelas, bukan digabung jadi satu angka besar. Berikut karakteristik utamanya (inti poinnya mirip, tapi sudah ditulis ulang):<\/p>\n<h3><strong>1. Pekerjaan bersifat spesifik dan bisa unik<\/strong><\/h3>\n<p><span style=\"color: #222222; font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; font-size: 15px;\">Job costing paling relevan untuk pesanan atau proyek yang detailnya unik, sehingga kebutuhan bahan, waktu kerja, dan aktivitasnya tidak selalu sama antar job.<\/span><\/p>\n<h3><strong>2. Biaya dihitung per job, bukan per periode saja<\/strong><\/h3>\n<p>Fokus utamanya ada pada \u201cberapa biaya untuk Job A vs Job B\u201d, sehingga perusahaan bisa menilai biaya dan hasil tiap pekerjaan secara lebih presisi.<\/p>\n<h3><strong>3. Setiap job punya identitas dan pencatatan terpisah<\/strong><\/h3>\n<p>Umumnya tiap pesanan diberi kode\/nomor job supaya seluruh biaya terkait (material, tenaga kerja, overhead) bisa ditarik dan ditelusuri tanpa tercampur dengan pekerjaan lain.<\/p>\n<p><span style=\"font-weight: 400;\">Tentunya, jika bisnis menggunakan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/construction-job-costing-software\/\"><em>construction job costing software <\/em>yang tepat sesuai kebutuhan dengan bisnis<\/a><\/span><span style=\"font-weight: 400;\">, maka akan mempengaruhi perhitungan keuntungan.<\/span><\/p>\n<h2 id=\"keuntungan\"><strong>Manfaat Job Costing untuk Meningkatkan Profitabilitas Proyek<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"td-center wp-image-135991 size-large aligncenter\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah-2-1024x555.png\" alt=\"job costing adalah\" width=\"696\" height=\"377\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah-2-1024x555.png 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah-2-300x163.png 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah-2-768x416.png 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah-2-775x420.png 775w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah-2-150x81.png 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah-2-696x377.png 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah-2-1068x580.png 1068w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah-2.png 1200w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/p>\n<p>Untuk bisnis berbasis proyek atau pesanan, job costing bukan cuma soal menghitung biaya, tapi juga memberi \u201cpeta\u201d yang jelas untuk mengambil keputusan. Saat data biaya per job tercatat rapi, perusahaan bisa menilai prioritas pesanan, menjaga margin, dan mengevaluasi proses kerja dengan lebih terukur.<\/p>\n<ul>\n<li><strong>Membantu menilai pesanan sebelum diterima:<\/strong> Perusahaan bisa memperkirakan apakah pesanan layak dikerjakan dari sisi kapasitas dan potensi margin.<\/li>\n<li><strong>Menjadi dasar penentuan harga jual:<\/strong> Harga dapat disusun berdasarkan biaya per job, bukan sekadar mengikuti patokan pasar.<\/li>\n<li><strong>Memetakan laba per pesanan atau proyek:<\/strong> Profit tidak tercampur antar job, sehingga kontribusi tiap pesanan terlihat jelas.<\/li>\n<li><strong>Memudahkan pelacakan biaya produksi:<\/strong> Biaya bahan, tenaga kerja, dan overhead dapat ditelusuri sampai ke job tertentu.<\/li>\n<li><strong>Membandingkan biaya estimasi vs biaya aktual:<\/strong> Selisih biaya bisa dianalisis untuk memperbaiki perencanaan di job berikutnya.<\/li>\n<li><strong>Membantu menghitung beban produksi secara lebih tepat:<\/strong> Alokasi overhead menjadi lebih terukur karena ada basis pembebanan yang jelas.<\/li>\n<li><strong>Mendukung analisis tren biaya dan kinerja:<\/strong> Perusahaan bisa melihat pola biaya dari waktu ke waktu untuk perbaikan berkelanjutan.<\/li>\n<\/ul>\n<style>\r\n\t#baca-juga {\r\n\t\tpadding: 16px;\r\n\t\tbackground-color: #f7eaea;\r\n\t\tborder-left: 3px solid #af2828;\r\n\t\tfont-weight: 500;\r\n\t\tmargin-bottom: 26px;\r\n\t}\r\n\t\r\n\t#baca-juga a {\r\n\t\tcolor: #af2828 !important;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t}\r\n\t\r\n\t#baca-juga a:hover {\r\n\t\tcolor: #af282880 !important;\r\n\t}\r\n<\/style>\r\n\r\n<div id=\"baca-juga\">\r\n\t<span>Baca juga: <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/jurnal-penutup\/\">Fungsi dan Contoh Jurnal Penutup dalam Akuntansi Perusahaan<\/a><\/span>\r\n<\/div>\n<h2 id=\"tips\"><strong>Implementasi Job Costing (Step-by-Step dengan Contoh)<\/strong><\/h2>\n<p><span id=\"implementasi\">Agar job costing benar-benar membantu kontrol biaya, perusahaan perlu menerapkannya dengan alur yang konsisten dari awal sampai akhir pekerjaan.<\/span><\/p>\n<p>Di bawah ini langkah-langkah praktis yang bisa diikuti, lengkap dengan contoh sederhana supaya lebih mudah dibayangkan di operasional sehari-hari.<\/p>\n<h3><strong>1. Identifikasi job sebagai objek biaya<\/strong><\/h3>\n<p>Langkah pertama dalam job costing adalah menentukan pekerjaan atau pesanan yang akan dijadikan objek biaya. Setiap job harus memiliki identitas yang jelas, misalnya nomor proyek, nomor pesanan, atau nama klien.<\/p>\n<p>Contoh:<br \/>\nPesanan pembuatan 1.000 unit kemasan khusus untuk Klien A dicatat sebagai satu job terpisah dari pesanan klien lainnya.<\/p>\n<h3><strong>2. Tentukan biaya langsung per job<\/strong><\/h3>\n<p>Catat semua biaya yang bisa ditelusuri langsung ke pekerjaan tersebut, terutama bahan baku dan tenaga kerja langsung. Biaya ini biasanya menjadi komponen terbesar dalam job costing.<\/p>\n<p>Contoh:<\/p>\n<ul>\n<li>Bahan baku kemasan: Rp25.000.000<\/li>\n<li>Tenaga kerja langsung (40 jam produksi): Rp8.000.000<\/li>\n<\/ul>\n<h3><strong>3. Tentukan dasar alokasi biaya overhead<\/strong><\/h3>\n<p>Biaya overhead tidak bisa ditelusuri langsung ke satu job, sehingga perlu dialokasikan menggunakan dasar tertentu. Pilih basis yang paling relevan dengan aktivitas produksi.<\/p>\n<p>Contoh basis alokasi:<\/p>\n<ul>\n<li>Jam tenaga kerja langsung<\/li>\n<li>Jam mesin<\/li>\n<li>Unit produksi<\/li>\n<\/ul>\n<h3><strong>4. Hitung dan alokasikan biaya overhead<\/strong><\/h3>\n<p>Setelah menentukan basis alokasi, hitung tarif overhead lalu alokasikan ke masing-masing job sesuai pemakaiannya. Langkah ini membantu memastikan biaya tidak langsung tetap tercermin dalam total biaya job.<\/p>\n<p>Contoh:<br \/>\nJika tarif overhead Rp50.000 per jam kerja dan job menggunakan 40 jam, maka overhead yang dialokasikan sebesar Rp2.000.000.<\/p>\n<h3><strong>5. Hitung total biaya job<\/strong><\/h3>\n<p>Jumlahkan seluruh biaya langsung dan biaya overhead yang telah dialokasikan untuk mendapatkan total biaya pekerjaan. Angka ini menjadi dasar perhitungan harga pokok dan evaluasi margin.<\/p>\n<p>Contoh perhitungan:<\/p>\n<ul>\n<li>Biaya bahan: Rp25.000.000<\/li>\n<li>Tenaga kerja langsung: Rp8.000.000<\/li>\n<li>Overhead: Rp2.000.000<br \/>\n<strong>Total biaya job: Rp35.000.000<\/strong><\/li>\n<\/ul>\n<h3><strong>6. Bandingkan estimasi dan realisasi<\/strong><\/h3>\n<p>Setelah job selesai, bandingkan biaya aktual dengan estimasi awal. Dari sini, perusahaan bisa mengevaluasi akurasi perencanaan biaya dan menemukan area yang perlu diperbaiki.<\/p>\n<p>Contoh:<br \/>\nJika estimasi awal Rp32.000.000, selisih Rp3.000.000 bisa dianalisis untuk mengetahui sumber pembengkakan biaya.<\/p>\n<p>Agar hasilnya akurat, pastikan metode pencatatan dan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/process-costing-adalah-manfaat-jenis-dan-cara-menghitungnya\/\">perencanaan biaya berbasis proses produksi<\/a> disusun rapi sejak awal proses produksi, sehingga perhitungan keuntungan tidak bergantung pada perkiraan.<\/p>\n<h3><strong>Checklist Implementasi<\/strong><\/h3>\n<p>Checklist berikut membantu memastikan implementasi job costing berjalan rapi dari tahap persiapan, eksekusi, sampai evaluasi setelahnya. Dengan langkah yang jelas, tim bisa menjaga konsistensi pencatatan biaya dan lebih mudah menelusuri penyebab selisih saat terjadi deviasi.<\/p>\n<div style=\"max-width: 920px; margin: 20px 0; font-family: Inter,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif; color: #111827;\">\n<div style=\"border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden; background: #ffffff;\">\n<p><!-- HEADER --><\/p>\n<div style=\"background: #b91c1c; color: #ffffff; padding: 12px 16px; font-weight: 800; font-size: 15px;\">Pre-Implementation Checklist<\/div>\n<p><!-- TABLE --><\/p>\n<table style=\"width: 100%; border-collapse: collapse; font-size: 14px;\">\n<tbody>\n<tr>\n<td style=\"width: 36px; padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Identifikasi seluruh komponen biaya (material, tenaga kerja, overhead)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Siapkan chart of accounts untuk job costing<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Tentukan dasar alokasi overhead (DLH, DLC, jam mesin)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Hitung Predetermined Overhead Rate (POHR)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Buat template job cost sheet<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Lakukan training tim (mandor, admin, accounting)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Siapkan sistem permintaan material per job<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Atur pencatatan timesheet atau kehadiran per job<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Tentukan alur persetujuan biaya (approval workflow)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div style=\"max-width: 920px; margin: 20px 0; font-family: Inter,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif; color: #111827;\">\n<div style=\"border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden; background: #ffffff;\">\n<p><!-- HEADER --><\/p>\n<div style=\"background: #b91c1c; color: #ffffff; padding: 12px 16px; font-weight: 800; font-size: 15px;\">During Implementation<\/div>\n<p><!-- TABLE --><\/p>\n<table style=\"width: 100%; border-collapse: collapse; font-size: 14px;\">\n<tbody>\n<tr>\n<td style=\"width: 36px; padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Tetapkan nomor job untuk setiap proyek<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Catat seluruh pembelian material berdasarkan job<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Rekam jam kerja tenaga kerja harian per job<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Perbarui job cost sheet secara mingguan<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Bandingkan estimasi biaya dengan biaya aktual setiap bulan<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Hitung varians dan lakukan investigasi jika selisih lebih dari 10%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div style=\"max-width: 920px; margin: 20px 0; font-family: Inter,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif; color: #111827;\">\n<div style=\"border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden; background: #ffffff;\">\n<p><!-- HEADER --><\/p>\n<div style=\"background: #b91c1c; color: #ffffff; padding: 12px 16px; font-weight: 800; font-size: 15px;\">Post-Implementation Review<\/div>\n<p><!-- TABLE --><\/p>\n<table style=\"width: 100%; border-collapse: collapse; font-size: 14px;\">\n<tbody>\n<tr>\n<td style=\"width: 36px; padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Analisis profitabilitas setiap job<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Identifikasi tipe job paling dan paling tidak menguntungkan<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Tinjau kembali alokasi overhead dan pastikan masih akurat<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Sesuaikan Predetermined Overhead Rate (POHR) jika diperlukan (tahunan)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 10px; text-align: center; vertical-align: top;\"><input type=\"checkbox\" \/><\/td>\n<td style=\"padding: 8px 12px; vertical-align: top;\">Lakukan perbaikan berkelanjutan berdasarkan data historis<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2 id=\"kesimpulan\"><b>Kesimpulan<\/b><\/h2>\n<p>Pengelolaan job costing membutuhkan ketelitian karena banyak komponen biaya terlibat dan saling memengaruhi. Ketika pencatatan kurang rapi, perhitungan biaya bisa meleset dan berdampak langsung pada margin tiap proyek atau pesanan.<\/p>\n<p>Karena itu, banyak perusahaan mulai menata job costing dengan pendekatan yang lebih terstruktur agar biaya material, tenaga kerja, dan overhead mudah ditelusuri. Dengan data yang jelas, evaluasi profitabilitas tiap job dapat dilakukan lebih cepat dan objektif.<\/p>\n<p>Jika Anda ingin memastikan penerapan job costing di perusahaan sudah akurat dan relevan dengan proses operasional, <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">konsultasi gratis<\/a> dengan tim expert bisa membantu meninjau alurnya.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/id\/sistem-erp?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/erp-descriptive.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/erp-descriptive.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/erp-descriptive-m.webp\" alt=\"ERP_Definisi\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script>\n<h2><strong> Pertanyaan Seputar Job Costing <\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Siapa yang sebaiknya menggunakan Job Costing?<\/strong><\/summary>\n<p>Metode ini sangat berguna untuk perusahaan yang memproduksi berbagai jenis produk atau menyediakan layanan berbasis proyek. Namun, perusahaan jasa juga dapat memanfaatkan Job Costing untuk memantau biaya tenaga kerja dan operasional secara rinci.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah Job Costing hanya berlaku untuk perusahaan manufaktur?<\/strong><\/summary>\n<p>Tidak. Selain manufaktur, Job Costing juga relevan untuk perusahaan jasa, konstruksi, atau proyek berbasis kontrak lainnya. Setiap jenis usaha yang membutuhkan perhitungan biaya spesifik per proyek dapat memanfaatkan metode ini.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Bagaimana Job Costing membantu pengambilan keputusan?<\/strong><\/summary>\n<p>Dengan informasi biaya yang rinci, manajemen bisa menentukan proyek yang menguntungkan, mengidentifikasi area efisiensi, dan merencanakan anggaran secara lebih tepat.<\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"Siapa yang sebaiknya menggunakan Job Costing?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Metode ini sangat berguna untuk perusahaan yang memproduksi berbagai jenis produk atau menyediakan layanan berbasis proyek. Namun, perusahaan jasa juga dapat memanfaatkan Job Costing untuk memantau biaya tenaga kerja dan operasional secara rinci.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah Job Costing hanya berlaku untuk perusahaan manufaktur?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Tidak. Selain manufaktur, Job Costing juga relevan untuk perusahaan jasa, konstruksi, atau proyek berbasis kontrak lainnya. Setiap jenis usaha yang membutuhkan perhitungan biaya spesifik per proyek dapat memanfaatkan metode ini.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Bagaimana Job Costing membantu pengambilan keputusan?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Dengan informasi biaya yang rinci, manajemen bisa menentukan proyek yang menguntungkan, mengidentifikasi area efisiensi, dan merencanakan anggaran secara lebih tepat.\"\n    }\n  }]\n}\n<\/script><\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dalam pekerjaan berbasis proyek atau pesanan, angka biaya total sering terlihat rapi, tetapi detailnya bisa bercampur antar pekerjaan. Di sinilah job costing membantu perusahaan memisahkan dan membaca biaya per job dengan lebih jelas sejak awal. Job costing memetakan biaya ke tiap pekerjaan, termasuk material, tenaga kerja, dan overhead yang terkait. Dengan pemisahan ini, perusahaan lebih [&hellip;]<\/p>\n","protected":false},"author":165,"featured_media":135990,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1232],"tags":[],"class_list":{"0":"post-13071","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-accounting"},"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>Job Costing: Pengertian &amp; Cara Implementasinya<\/title>\n<meta name=\"description\" content=\"Walau job costing dapat memberikan banyak manfaat kepada perusahaan, banyak orang masih asing dengan istilah ini. Simak selengkapnya di sini!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Job Costing: Pengertian &amp; Cara Implementasinya\" \/>\n<meta property=\"og:description\" content=\"Walau job costing dapat memberikan banyak manfaat kepada perusahaan, banyak orang masih asing dengan istilah ini. Simak selengkapnya di sini!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-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=\"2024-05-01T04:28:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-21T03:26:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"650\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Novi Herawati\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:site\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"Novi Herawati\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 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\\\/job-costing-adalah\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/\"},\"author\":{\"name\":\"Novi Herawati\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/685b29538f3b84216a3584178a792653\"},\"headline\":\"Job Costing: Pengertian &#038; Cara Implementasinya\",\"datePublished\":\"2024-05-01T04:28:47+00:00\",\"dateModified\":\"2026-01-21T03:26:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/\"},\"wordCount\":1513,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/job-costing-adalah.png\",\"articleSection\":[\"Accounting\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/\",\"name\":\"Job Costing: Pengertian & Cara Implementasinya\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/job-costing-adalah.png\",\"datePublished\":\"2024-05-01T04:28:47+00:00\",\"dateModified\":\"2026-01-21T03:26:22+00:00\",\"description\":\"Walau job costing dapat memberikan banyak manfaat kepada perusahaan, banyak orang masih asing dengan istilah ini. Simak selengkapnya di sini!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/job-costing-adalah.png\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/job-costing-adalah.png\",\"width\":1200,\"height\":650},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/job-costing-adalah\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Job Costing: Pengertian &#038; Cara Implementasinya\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\",\"name\":\"HashMicro Indonesia\",\"description\":\"Blog Software Manajemen Bisnis Indonesia #1\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\",\"name\":\"HashMicro Indonesia\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/hashmicro-logo-blog.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/hashmicro-logo-blog.webp\",\"width\":924,\"height\":121,\"caption\":\"HashMicro Indonesia\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/hashmicro\",\"https:\\\/\\\/x.com\\\/hashmicro\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/685b29538f3b84216a3584178a792653\",\"name\":\"Novi Herawati\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Novi-1-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Novi-1-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Novi-1-96x96.webp\",\"caption\":\"Novi Herawati\"},\"description\":\"Novi adalah Content Writer yang sudah berpengalaman selama 4 tahun yang aktif dalam menulis artikel untuk topik bisnis dan manajemen, integrasi sistem digital untuk otomatisasi bisnis, dan manajemen keuangan perusahaan. Melalui tulisannya, Ia mendorong inovasi dan efisien perusahaan untuk meningkatkan profitabilitas bisnis.\",\"sameAs\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/\"],\"gender\":\"Perempuan\",\"knowsAbout\":[\"manajemen bisnis\",\"B2B\",\"inovasi bisnis\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Content Writer\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/author\\\/novi-herawati\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Job Costing: Pengertian & Cara Implementasinya","description":"Walau job costing dapat memberikan banyak manfaat kepada perusahaan, banyak orang masih asing dengan istilah ini. Simak selengkapnya di sini!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/","og_locale":"id_ID","og_type":"article","og_title":"Job Costing: Pengertian & Cara Implementasinya","og_description":"Walau job costing dapat memberikan banyak manfaat kepada perusahaan, banyak orang masih asing dengan istilah ini. Simak selengkapnya di sini!","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2024-05-01T04:28:47+00:00","article_modified_time":"2026-01-21T03:26:22+00:00","og_image":[{"width":1200,"height":650,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah.png","type":"image\/png"}],"author":"Novi Herawati","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Novi Herawati","Estimasi waktu membaca":"9 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/"},"author":{"name":"Novi Herawati","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/685b29538f3b84216a3584178a792653"},"headline":"Job Costing: Pengertian &#038; Cara Implementasinya","datePublished":"2024-05-01T04:28:47+00:00","dateModified":"2026-01-21T03:26:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/"},"wordCount":1513,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah.png","articleSection":["Accounting"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/","name":"Job Costing: Pengertian & Cara Implementasinya","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah.png","datePublished":"2024-05-01T04:28:47+00:00","dateModified":"2026-01-21T03:26:22+00:00","description":"Walau job costing dapat memberikan banyak manfaat kepada perusahaan, banyak orang masih asing dengan istilah ini. Simak selengkapnya di sini!","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah.png","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/09\/job-costing-adalah.png","width":1200,"height":650},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/job-costing-adalah\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Job Costing: Pengertian &#038; Cara Implementasinya"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website","url":"https:\/\/www.hashmicro.com\/id\/blog\/","name":"HashMicro Indonesia","description":"Blog Software Manajemen Bisnis Indonesia #1","publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/id\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization","name":"HashMicro Indonesia","url":"https:\/\/www.hashmicro.com\/id\/blog\/","logo":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/hashmicro-logo-blog.webp","width":924,"height":121,"caption":"HashMicro Indonesia"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hashmicro","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/685b29538f3b84216a3584178a792653","name":"Novi Herawati","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Novi-1-96x96.webp","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Novi-1-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Novi-1-96x96.webp","caption":"Novi Herawati"},"description":"Novi adalah Content Writer yang sudah berpengalaman selama 4 tahun yang aktif dalam menulis artikel untuk topik bisnis dan manajemen, integrasi sistem digital untuk otomatisasi bisnis, dan manajemen keuangan perusahaan. Melalui tulisannya, Ia mendorong inovasi dan efisien perusahaan untuk meningkatkan profitabilitas bisnis.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"Perempuan","knowsAbout":["manajemen bisnis","B2B","inovasi bisnis"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/novi-herawati\/"}]}},"focus_keyword":"costing adalah","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/13071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/users\/165"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=13071"}],"version-history":[{"count":14,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/13071\/revisions"}],"predecessor-version":[{"id":186267,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/13071\/revisions\/186267"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/135990"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=13071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=13071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=13071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}