{"id":193361,"date":"2026-05-11T13:57:42","date_gmt":"2026-05-11T06:57:42","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=193361"},"modified":"2026-05-11T13:57:42","modified_gmt":"2026-05-11T06:57:42","slug":"cost-plus-pricing","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/","title":{"rendered":"Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung dengan Benar"},"content":{"rendered":"\r\n<p>Banyak pemilik bisnis menetapkan harga jual berdasarkan insting atau sekadar mengikuti harga kompetitor, tanpa benar-benar menghitung apakah harga tersebut sudah menutup semua biaya dan menghasilkan laba yang diinginkan. Akibatnya, ada yang menjual terlalu murah hingga margin menipis tanpa disadari atau terlalu mahal hingga kehilangan pelanggan.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<p><a href=\"https:\/\/www.bi.go.id\/id\/publikasi\/kajian\/Documents\/WP_12_2020.pdf\" target=\"_blank\" rel=\"noopener\">Survei Bank Indonesia (2020)<\/a> terhadap perusahaan besar di Jabotabek menemukan bahwa perusahaan-perusahaan Indonesia umumnya berperan sebagai price setters, yaitu menetapkan harga berdasarkan proyeksi biaya produksi ke depan, bukan sekadar mengikuti pasar. Prinsip inilah yang menjadi fondasi cost plus pricing.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<p>Lalu, apa saja yang perlu Anda pahami tentang cost plus pricing mulai dari rumus, cara hitung, hingga kapan metode ini paling tepat dipakai? Semua jawabannya ada di artikel ini.<\/p>\r\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%\">\r\n<tbody>\r\n<tr>\r\n<td style=\"padding: 15px; border: none;\">\r\n<h3 class=\"wp-block-heading\" style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#A\">Cost plus pricing<\/a> adalah metode penentuan harga jual dengan menambahkan markup di atas total biaya produksi.<\/li>\r\n<li aria-level=\"1\"><a href=\"#B\">Full cost-plus<\/a> memasukkan semua biaya termasuk biaya tetap dan variabel, sedangkan Variable cost-plus\u00a0hanya biaya variabel, lebih fleksibel untuk pesanan khusus.<\/li>\r\n<li aria-level=\"1\"><a href=\"#C\">Kelebihan cost plus pricing<\/a>: sederhana, semua biaya tertutupi, margin laba terjamin per unit.<\/li>\r\n<li aria-level=\"1\"><a href=\"#D\">Rumusnya<\/a> adalah <strong>Harga Jual = Total Biaya + (Total Biaya \u00d7 % Markup)<\/strong><\/li>\r\n<\/ul>\r\n<p style=\"text-align: center;\">\r\n<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<p><span id=\"sales-tracking-system\">\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> <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>\r\n<h2 class=\"wp-block-heading\"><strong>Apa Itu Cost Plus Pricing?<\/strong>\r\n\r\n\r\n\r\n<\/h2>\r\n<p>Cost plus pricing adalah metode penetapan harga jual produk atau jasa dengan cara menghitung total biaya yang dikeluarkan untuk memproduksi satu unit, kemudian menambahkan persentase keuntungan (markup) yang diinginkan.<br \/><br \/>Metode ini juga dikenal dengan sebutan markup pricing atau merupakan bagian dari pendekatan\u00a0<a href=\"https:\/\/www.hashmicro.com\/id\/blog\/cost-based-pricing\/\">cost-based pricing<\/a> yang lebih luas. Prinsip dasarnya adalah selama semua komponen biaya sudah diperhitungkan dengan benar, bisnis tidak akan merugi dari setiap unit yang terjual.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><strong>Rumus Cost Plus Pricing<\/strong>\r\n\r\n\r\n\r\n<\/h2>\r\n<p>Rumus dasar penetapan harga produk adalah:<\/p>\r\n\r\n\r\n\r\n<p style=\"text-align: center;\"><strong>Harga Jual = Total Biaya + (Total Biaya \u00d7 Persentase Markup)<\/strong>\r\n\r\n<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<p>Keterangan:<\/p>\r\n<ul>\r\n<li><strong>Total Biaya<\/strong> = seluruh biaya yang dikeluarkan untuk memproduksi satu unit produk atau menyelesaikan satu unit jasa.<\/li>\r\n<li><strong>Persentase Markup<\/strong> = persentase keuntungan yang ingin diperoleh dari setiap unit yang terjual, dihitung dari total biaya.<\/li>\r\n<\/ul>\r\n<p>Salah satu hal yang sering membingungkan adalah perbedaan antara <strong>markup<\/strong>\u00a0dan\u00a0<strong>margin<\/strong>. Keduanya sama-sama mengukur profitabilitas, tetapi dihitung dari basis yang berbeda:<\/p>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"33%\"><b>Aspek<\/b><\/td>\r\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"33%\"><b>Markup<\/b><\/td>\r\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"34%\"><b>Margin<\/b><\/td>\r\n<\/tr>\r\n<tr>\r\n<td><b>Dasar Perhitungan<\/b><\/td>\r\n<td>Biaya produksi (HPP)<\/td>\r\n<td>Harga jual<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><b>Contoh<\/b><\/td>\r\n<td>Biaya Rp100.000, markup 25% \u2192 Laba Rp25.000<\/td>\r\n<td>Harga Rp125.000, margin 20% \u2192 Laba Rp25.000<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><b>Persentase<\/b><\/td>\r\n<td>25% dari Rp100.000<\/td>\r\n<td>20% dari Rp125.000<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n\r\n\r\n\r\n<p><br \/>Angka yang sama (Rp25.000 laba) menghasilkan persentase yang berbeda tergantung dari mana dihitungnya. Dalam cost plus pricing, markup selalu dihitung dari biaya, bukan dari harga jual.<\/p>\r\n<p>Dalam menentukan persentase markup yang tepat, pertimbangkan faktor-faktor berikut:<\/p>\r\n<ul>\r\n<li>Target ROI (Return on Investment) tahunan perusahaan<\/li>\r\n<li>Besarnya overhead yang perlu ditanggung per unit produk<\/li>\r\n<li>Standar markup industri sejenis sebagai benchmark<\/li>\r\n<li>Tingkat elastisitas harga dari segmen pelanggan yang ditarget<\/li>\r\n<\/ul>\r\n<h2 class=\"wp-block-heading\"><strong>Komponen Biaya dalam Cost Plus Pricing<\/strong>\r\n\r\n<\/h2>\r\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-193402 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-1-e1778123493889.jpg\" alt=\"komponen biaya dalam cost plus pricing\" width=\"1774\" height=\"640\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-1-e1778123493889.jpg 1774w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-1-e1778123493889-300x108.jpg 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-1-e1778123493889-1024x369.jpg 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-1-e1778123493889-768x277.jpg 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-1-e1778123493889-1536x554.jpg 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-1-e1778123493889-1164x420.jpg 1164w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-1-e1778123493889-150x54.jpg 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-1-e1778123493889-696x251.jpg 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-1-e1778123493889-1068x385.jpg 1068w\" sizes=\"auto, (max-width: 1774px) 100vw, 1774px\" \/><\/p>\r\n<p>Ada tiga kelompok biaya utama yang umumnya masuk dalam perhitungan metode penetapan harga ini:<\/p>\r\n<h2>\r\n\r\n<\/h2>\r\n<ol class=\"wp-block-list\">\r\n<li><strong>Biaya langsung (direct costs)<\/strong> : bahan baku dan tenaga kerja langsung yang langsung digunakan dalam proses produksi.<\/li>\r\n<li><strong>Biaya tidak langsung \/ overhead<\/strong> : biaya seperti listrik, sewa pabrik, penyusutan mesin, dan gaji staf administrasi.<\/li>\r\n<li><strong>Biaya non-produksi (opsional)<\/strong> : biaya distribusi, pemasaran, atau layanan purna jual. Pada dasarnya, masuk atau tidaknya biaya ini tergantung dengan kebijakan perusahaan.<\/li>\r\n<\/ol>\r\n<h2 class=\"wp-block-heading\"><strong>Jenis-Jenis Cost Plus Pricing<\/strong> <span id=\"B\"><\/span><\/h2>\r\n<p>Struktur penetapan harga ini menyesuaikan dengan bagaimana bisnis memperhitungkan biaya dan seberapa fleksibel harga yang dibutuhkan di lapangan:<\/p>\r\n<ul>\r\n<li class=\"whitespace-normal break-words pl-2\"><strong>Full Cost Plus Pricing:<\/strong> memperhitungkan seluruh komponen biaya, mulai dari biaya variabel seperti bahan baku dan tenaga kerja, hingga biaya tetap seperti sewa dan penyusutan mesin.<br \/><br \/>Metode ini memberikan gambaran harga yang paling konservatif dan aman, cocok untuk manufaktur skala besar, kontrak pemerintah, atau bisnis dengan struktur overhead yang stabil dan dapat diprediksi.<\/li>\r\n<\/ul>\r\n<ul>\r\n<li class=\"whitespace-normal break-words pl-2\"><strong>Variable Cost Plus Pricing:<\/strong>\u00a0hanya memasukkan biaya variabel dalam perhitungan harga, dengan asumsi biaya tetap sudah tertutupi oleh volume produksi reguler. <br \/><br \/>Metode ini menghasilkan harga dasar yang lebih rendah sehingga lebih kompetitif untuk pesanan khusus atau kontrak jangka pendek.<\/li>\r\n<\/ul>\r\n<p>Baca lebih lanjut mengenai komponen biaya variabel di artikel berikut <a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/www.hashmicro.com\/id\/blog\/proses-penetapan-biaya-dalam-dunia-bisnis-dengan-variable-costing\/\">variable costing.<\/a><\/p>\r\n<h2 class=\"wp-block-heading\"><strong>Perbedaan Cost Plus Pricing dan Markup Pricing<\/strong><\/h2>\r\n<p>Cost plus pricing dan\u00a0<a href=\"https:\/\/www.hashmicro.com\/id\/blog\/mark-up-adalah\/\">markup pricing<\/a>\u00a0sering digunakan secara bergantian, padahal keduanya memiliki perbedaan mendasar dalam hal dasar perhitungan dan konteks penggunaan:<\/p>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: left;\" width=\"25%\"><b>Aspek<\/b><\/td>\r\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: left;\" width=\"37%\"><b>Cost Plus Pricing<\/b><\/td>\r\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: left;\" width=\"38%\"><b>Markup Pricing<\/b><\/td>\r\n<\/tr>\r\n<tr>\r\n<td><b>Dasar perhitungan<\/b><\/td>\r\n<td>Total biaya produksi<\/td>\r\n<td>Harga beli \/ HPP<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><b>Umum digunakan<\/b><\/td>\r\n<td>Manufaktur, jasa, konstruksi<\/td>\r\n<td>Ritel, perdagangan<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><b>Kompleksitas<\/b><\/td>\r\n<td>Lebih kompleks \u2014 perlu alokasi overhead<\/td>\r\n<td>Lebih sederhana<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><b>Fokus<\/b><\/td>\r\n<td>Menutup semua biaya produksi + profit<\/td>\r\n<td>Menambah margin dari harga beli<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<!-- \/wp:post-content -->\r\n\r\n<!-- wp:heading -->\r\n<p><br \/>Keduanya merupakan bagian dari pendekatan\u00a0cost-based pricing yang lebih luas. Pilihan di antara keduanya bergantung pada model bisnis: apakah Anda memproduksi sendiri, maka cost plus pricing lebih tepat atau Anda membeli untuk dijual kembali, maka markup pricing jauh lebih praktis.<\/p>\r\n<h2 class=\"wp-block-heading\"><strong>Cara Menghitung Cost Plus Pricing<\/strong><!-- \/wp:heading --> <span id=\"D\"><\/span><!-- wp:heading {\"level\":3} --><\/h2>\r\n<p class=\"wp-block-heading\">Langkah-Langkah Menghitung:<!-- \/wp:heading -->\r\n\r\n<!-- wp:list {\"ordered\":true} --><\/p>\r\n<ol class=\"wp-block-list\">\r\n<li><strong>Identifikasi semua komponen biaya:<\/strong>\u00a0tentukan pendekatan full cost atau variable cost.<\/li>\r\n<li><strong>Hitung total biaya per unit:<\/strong>\u00a0jumlahkan seluruh komponen biaya.<\/li>\r\n<li><strong>Tentukan persentase markup:<\/strong>\u00a0berdasarkan target laba dan standar industri.<\/li>\r\n<li><strong>Terapkan rumus:<\/strong>\u00a0Harga Jual = Total Biaya \u00d7 (1 + % Markup).<\/li>\r\n<\/ol>\r\n<h3 class=\"wp-block-heading\"><strong>Contoh Perhitungan Cost Plus Pricing untuk Produk Manufaktur<\/strong><!-- \/wp:list --><\/h3>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: left;\" width=\"60%\"><b>Komponen Biaya<\/b><\/td>\r\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: left;\" width=\"40%\"><b>Jumlah per Unit<\/b><\/td>\r\n<\/tr>\r\n<tr>\r\n<td>Bahan baku (kulit, benang, aksesoris)<\/td>\r\n<td>Rp180.000<\/td>\r\n<\/tr>\r\n<tr>\r\n<td>Tenaga kerja langsung<\/td>\r\n<td>Rp75.000<\/td>\r\n<\/tr>\r\n<tr>\r\n<td>Overhead (listrik, sewa, penyusutan)<\/td>\r\n<td>Rp45.000<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><b>Total Biaya per Unit<\/b><\/td>\r\n<td><b>Rp300.000<\/b><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<h3 class=\"wp-block-heading\"><!-- wp:paragraph --><\/h3>\r\n<p>Dengan markup 35%: Harga Jual = Rp300.000 \u00d7 1,35 = <strong>Rp405.000<\/strong> per unit. Laba kotor per unit: Rp105.000.<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading {\"level\":3} -->\r\n<h3 class=\"wp-block-heading\"><strong>Contoh Perhitungan Cost Plus Pricing untuk Bisnis Jasa<\/strong><!-- \/wp:heading --><\/h3>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: left;\" width=\"60%\"><b>Komponen Biaya<\/b><\/td>\r\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: left;\" width=\"40%\"><b>Jumlah per Project<\/b><\/td>\r\n<\/tr>\r\n<tr>\r\n<td>Gaji konsultan yang dialokasikan<\/td>\r\n<td>Rp8.000.000<\/td>\r\n<\/tr>\r\n<tr>\r\n<td>Overhead kantor (proporsional)<\/td>\r\n<td>Rp2.000.000<\/td>\r\n<\/tr>\r\n<tr>\r\n<td>Software &amp; tools<\/td>\r\n<td>Rp500.000<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><b>Total Biaya per Project<\/b><\/td>\r\n<td><b>Rp10.500.000<\/b><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<p><br \/>Dengan markup 25%: Harga Jual = Rp10.500.000 \u00d7 1,25 = <strong>Rp13.125.000<\/strong> per bulan. Laba kotor: Rp2.625.000.<\/p>\r\n<h3 class=\"wp-block-heading\"><!-- \/wp:paragraph --> <span id=\"C\"><\/span><!-- wp:heading --><\/h3>\r\n<h2 class=\"wp-block-heading\"><strong>Kelebihan dan Kelemahan Cost Plus Pricing<\/strong><!-- \/wp:heading --><\/h2>\r\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-193403 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-37-e1778123962433.webp\" alt=\"kelebihan dan kelemahan cost plus pricing\" width=\"1774\" height=\"736\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-37-e1778123962433.webp 1774w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-37-e1778123962433-300x124.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-37-e1778123962433-1024x425.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-37-e1778123962433-768x319.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-37-e1778123962433-1536x637.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-37-e1778123962433-1012x420.webp 1012w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-37-e1778123962433-150x62.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-37-e1778123962433-696x289.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-37-e1778123962433-1068x443.webp 1068w\" sizes=\"auto, (max-width: 1774px) 100vw, 1774px\" \/><\/p>\r\n<h3 class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Kelebihan Cost Plus Pricing<\/strong><\/h3>\r\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\r\n<li class=\"whitespace-normal break-words pl-2\"><strong>Sederhana diterapkan <\/strong>dan\u00a0tidak memerlukan riset pasar yang kompleks, cukup data biaya internal yang sudah dimiliki bisnis.<\/li>\r\n<li class=\"whitespace-normal break-words pl-2\"><strong>Semua biaya pasti tertutupi<\/strong> dimana setiap unit yang terjual berkontribusi langsung pada penutupan biaya produksi.<\/li>\r\n<li class=\"whitespace-normal break-words pl-2\"><strong>Margin laba terjamin per unit<\/strong> dan profitabilitas dapat diprediksi sejak awal selama volume penjualan sesuai asumsi.<\/li>\r\n<li class=\"whitespace-normal break-words pl-2\"><strong>Transparan untuk kontrak<\/strong> dan cocok untuk pengadaan pemerintah dan proyek berbasis kontrak yang membutuhkan struktur harga yang dapat diaudit.<\/li>\r\n<\/ul>\r\n<h3 class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Kelemahan Cost Plus Pricing<\/strong><\/h3>\r\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\r\n<li class=\"whitespace-normal break-words pl-2\"><strong>Mengabaikan dinamika pasar<\/strong> dimana harga yang ditetapkan bisa tidak kompetitif jika tidak dibandingkan dengan harga pasar secara berkala.<\/li>\r\n<li class=\"whitespace-normal break-words pl-2\"><strong>Tidak mempertimbangkan nilai pelanggan<\/strong> menyebabkan peluang revenue bisa hilang ketika <a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/www.hashmicro.com\/id\/blog\/customer-based-pricing\/\">customer based pricing<\/a> atau pelanggan sebenarnya bersedia membayar lebih dari harga yang ditetapkan.<\/li>\r\n<li class=\"whitespace-normal break-words pl-2\"><strong>Tidak mendorong efisiensi biaya<\/strong> dan kenaikan biaya produksi akan langsung ditranslasikan ke kenaikan harga jual tanpa insentif untuk menekan biaya.<\/li>\r\n<li class=\"whitespace-normal break-words pl-2\"><strong>Rentan kesalahan alokasi overhead<\/strong> dimana kesalahan dalam menghitung overhead akan langsung merusak akurasi harga jual secara keseluruhan.<\/li>\r\n<\/ul>\r\n<h2 class=\"wp-block-heading\"><strong>Kapan Sebaiknya Menggunakan Cost Plus Pricing?<\/strong><\/h2>\r\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-193405\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-38.webp\" alt=\"kapan sebaiknya menggunakan cost plus pricing\" width=\"1774\" height=\"887\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-38.webp 1774w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-38-300x150.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-38-1024x512.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-38-768x384.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-38-1536x768.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-38-840x420.webp 840w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-38-150x75.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-38-696x348.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-38-1068x534.webp 1068w\" sizes=\"auto, (max-width: 1774px) 100vw, 1774px\" \/><\/p>\r\n<p>Metode penetapan harga cost plus paling efektif digunakan ketika bisnis Anda memiliki struktur biaya yang stabil dan dapat dihitung dengan akurat karena harga jual tidak perlu terus-menerus disesuaikan.\u00a0<\/p>\r\n<p>Metode ini sangat cocok untuk bisnis manufaktur, kontraktor, atau perusahaan yang mengerjakan proyek berbasis kontrak di mana transparansi biaya menjadi tuntutan klien dan margin laba perlu dijamin sejak awal.\u00a0<\/p>\r\n<p>Namun, metode ini mulai kehilangan efektivitasnya ketika kondisi pasar menjadi variabel utama penentu harga. Di pasar yang sangat kompetitif dengan sensitivitas harga tinggi, harga yang dihitung murni dari biaya internal bisa terlalu mahal dibanding kompetitor.<\/p>\r\n<p>Hal yang sama berlaku ketika pelanggan membeli berdasarkan nilai yang dirasakan, bukan sekadar angka dalam situasi ini, value-based pricing akan jauh lebih optimal. Untuk panduan memilih <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/strategi-penetapan-harga\/\" target=\"_blank\" rel=\"noopener\">strategi penetapan harga yang paling sesuai<\/a> dengan model bisnis Anda, baca selengkapnya artike di bawah ini!<\/p>\r\n<p><span data-sheets-root=\"1\"><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\/strategi-penetapan-harga\/\">Strategi Penetapan Harga: Cara, Metode, dan Fungsinya<\/a><\/span>\r\n<\/div><\/span><\/p>\r\n<h3 class=\"wp-block-heading\"><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading --><\/h3>\r\n<h2 class=\"wp-block-heading\"><strong>Kesimpulan<\/strong><!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph --><\/h2>\r\n<p>Cost plus pricing adalah fondasi penetapan harga yang memastikan bisnis tidak merugi dari setiap unit yang terjual.<\/p>\r\n<h3 class=\"wp-block-heading\"><!-- \/wp:paragraph -->\r\n\r\n<!-- wp:paragraph --><\/h3>\r\n<p>Kuncinya adalah memastikan semua komponen biaya sudah teridentifikasi dan dialokasikan secara akurat. Seiring pertumbuhan bisnis, sistem akuntansi terintegrasi membantu memastikan data biaya selalu aktual dan keputusan harga selalu didasarkan pada angka yang benar.<\/p>\r\n<p>Software akuntansi seperti HashMicro membantu bisnis menghitung dan memantau komponen biaya secara real-time, sehingga penetapan harga berbasis cost plus menjadi lebih andal dan dapat dipertanggungjawabkan. Jika Anda ingin melihat langsung bagaimana sistem ini bekerja untuk bisnis Anda, coba <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">demo gratis HashMicro<\/a> di sini.<\/p>\r\n<h2><strong>Pertanyaan Seputar Cost Plus Pricing<\/strong><\/h2>\r\n<ul class=\"bottom_faq\">\r\n<li><details>\r\n<summary><strong><b>Apa itu cost plus pricing?<\/b><\/strong><\/summary>\r\n<span style=\"font-weight: 400;\">Singkatnya, sales tracking adalah bagian dari ekosistem CRM, bukan penggantinya. Cost plus pricing adalah metode penetapan harga jual produk atau jasa dengan cara menghitung total biaya produksi, kemudian menambahkan persentase keuntungan (markup) yang diinginkan. Banyak digunakan di manufaktur dan konstruksi karena sederhana dan memastikan semua biaya tertutupi.<\/span><\/details><\/li>\r\n<li><details>\r\n<summary><strong><b>Bagaimana contoh perhitungan cost plus pricing?<\/b><\/strong><\/summary>\r\n<span style=\"font-weight: 400;\">Jika total biaya produksi satu unit adalah Rp300.000 dan markup 35%, maka: Harga Jual = Rp300.000 \u00d7 1,35 = Rp405.000. Laba kotor per unit: Rp105.000 (35% dari biaya produksi).<\/span><\/details><\/li>\r\n<li><details>\r\n<summary><strong><b>Apa perbedaan cost plus pricing dan markup pricing?<\/b><\/strong><\/summary>\r\n<span style=\"font-weight: 400;\">Cost plus pricing menghitung harga dari total biaya produksi penuh, sedangkan markup pricing menambahkan persentase di atas harga beli atau HPP. Cost plus lebih tepat untuk manufaktur dan jasa, markup pricing lebih umum di bisnis ritel dan perdagangan.<\/span><\/details><\/li>\r\n<li><details>\r\n<summary><strong><b>Apa kelebihan dan kekurangan cost plus pricing?<\/b><\/strong><\/summary>\r\n<span style=\"font-weight: 400;\">Kelebihan: sederhana, semua biaya tertutupi, margin laba terjamin, transparan untuk kontrak. Kelemahan: tidak mempertimbangkan harga pasar, tidak mendorong efisiensi biaya, dan sangat bergantung pada akurasi alokasi overhead.<\/span><\/details><\/li>\r\n<li><details>\r\n<summary><strong>Kapan <b> Cost Plus Pricing tidak cocok digunakan?<\/b><\/strong><\/summary>\r\nCost plus pricing kurang tepat untuk pasar yang sangat kompetitif atau produk yang nilainya bergantung pada persepsi pelanggan. Dalam kasus tersebut, value-based pricing atau competitive pricing lebih efektif karena mempertimbangkan faktor eksternal.<\/details><\/li>\r\n<\/ul>\r\n<p><script type=\"application\/ld+json\">\r\n{\r\n  \"@context\": \"https:\/\/schema.org\",\r\n  \"@type\": \"FAQPage\",\r\n  \"mainEntity\": [\r\n    {\r\n      \"@type\": \"Question\",\r\n      \"name\": \"Apa itu Cost Plus Pricing?\",\r\n      \"acceptedAnswer\": {\r\n        \"@type\": \"Answer\",\r\n        \"text\": \"Cost plus pricing adalah metode penetapan harga jual produk atau jasa dengan cara menghitung total biaya produksi, kemudian menambahkan persentase keuntungan (markup) yang diinginkan. Banyak digunakan di manufaktur dan konstruksi karena sederhana dan memastikan semua biaya tertutupi.\"\r\n      }\r\n    },\r\n    {\r\n      \"@type\": \"Question\",\r\n      \"name\": \"Bagaimana contoh perhitungan Cost Plus Pricing?\",\r\n      \"acceptedAnswer\": {\r\n        \"@type\": \"Answer\",\r\n        \"text\": \"Jika total biaya produksi satu unit adalah Rp300.000 dan markup 35%, maka: Harga Jual = Rp300.000 \u00d7 1,35 = Rp405.000. Laba kotor per unit: Rp105.000 (35% dari biaya produksi).\"\r\n      }\r\n    },\r\n    {\r\n      \"@type\": \"Question\",\r\n      \"name\": \"Apa perbedaan Cost Plus Pricing dan Markup Pricing?\",\r\n      \"acceptedAnswer\": {\r\n        \"@type\": \"Answer\",\r\n        \"text\": \"Cost plus pricing menghitung harga dari total biaya produksi penuh, sedangkan markup pricing menambahkan persentase di atas harga beli atau HPP. Cost plus lebih tepat untuk manufaktur dan jasa, markup pricing lebih umum di bisnis ritel dan perdagangan.\"\r\n      }\r\n    },\r\n    {\r\n      \"@type\": \"Question\",\r\n      \"name\": \"Apa kelebihan dan kekurangan Cost Plus Pricing?\",\r\n      \"acceptedAnswer\": {\r\n        \"@type\": \"Answer\",\r\n        \"text\": \"Kelebihan: sederhana, semua biaya tertutupi, margin laba terjamin, transparan untuk kontrak. Kelemahan: tidak mempertimbangkan harga pasar, tidak mendorong efisiensi biaya, dan sangat bergantung pada akurasi alokasi overhead.\"\r\n      }\r\n    },\r\n    {\r\n      \"@type\": \"Question\",\r\n      \"name\": \"Kapan Cost Plus Pricing tidak cocok digunakan?\",\r\n      \"acceptedAnswer\": {\r\n        \"@type\": \"Answer\",\r\n        \"text\": \"Cost plus pricing kurang tepat untuk pasar yang sangat kompetitif atau produk yang nilainya bergantung pada persepsi pelanggan. Dalam kasus tersebut, value-based pricing atau competitive pricing lebih efektif karena mempertimbangkan faktor eksternal.\"\r\n      }\r\n    }\r\n  ]\r\n}\r\n<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>Banyak pemilik bisnis menetapkan harga jual berdasarkan insting atau sekadar mengikuti harga kompetitor, tanpa benar-benar menghitung apakah harga tersebut sudah menutup semua biaya dan menghasilkan laba yang diinginkan. Akibatnya, ada yang menjual terlalu murah hingga margin menipis tanpa disadari atau terlalu mahal hingga kehilangan pelanggan. Survei Bank Indonesia (2020) terhadap perusahaan besar di Jabotabek menemukan [&hellip;]<\/p>\n","protected":false},"author":164,"featured_media":193401,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1232],"tags":[],"class_list":{"0":"post-193361","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-accounting"},"acf":{"post_reviewer":281},"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>Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung<\/title>\n<meta name=\"description\" content=\"Cost plus pricing adalah metode penetapan harga dengan menambahkan persentase markup di atas total biaya produksi. Ketahui cara hitungnya!\" \/>\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\/cost-plus-pricing\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung dengan Benar\" \/>\n<meta property=\"og:description\" content=\"Cost plus pricing adalah metode penetapan harga dengan menambahkan persentase markup di atas total biaya produksi. Ketahui cara hitungnya!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/\" \/>\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-11T06:57:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-36.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1774\" \/>\n\t<meta property=\"og:image:height\" content=\"887\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Dewi Sartika\" \/>\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=\"Dewi Sartika\" \/>\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\\\/cost-plus-pricing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/\"},\"author\":{\"name\":\"Dewi Sartika\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/9d2e46cf3129df0cdcfe1ea9bbdb74f1\"},\"headline\":\"Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung dengan Benar\",\"datePublished\":\"2026-05-11T06:57:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/\"},\"wordCount\":1487,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/image-36.webp\",\"articleSection\":[\"Accounting\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/\",\"name\":\"Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/image-36.webp\",\"datePublished\":\"2026-05-11T06:57:42+00:00\",\"description\":\"Cost plus pricing adalah metode penetapan harga dengan menambahkan persentase markup di atas total biaya produksi. Ketahui cara hitungnya!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/image-36.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/image-36.webp\",\"width\":1774,\"height\":887,\"caption\":\"cara menghitung cost plus pricing\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/cost-plus-pricing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung dengan Benar\"}]},{\"@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\\\/9d2e46cf3129df0cdcfe1ea9bbdb74f1\",\"name\":\"Dewi Sartika\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Dewi-Sartika-2-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Dewi-Sartika-2-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Dewi-Sartika-2-96x96.webp\",\"caption\":\"Dewi Sartika\"},\"description\":\"Berbekal pengalaman selama 6 tahun dalam industri SaaS, Dewi telah menjadi praktisi untuk penulisan artikel terkait accounting dan bidang keuangan. Ia berfokus menulis artikel seputar Laporan keuangan (neraca, laba rugi, arus kas), standar akuntansi (PSAK, IFRS, GAAP), perpajakan (e-faktur, PPn, tax planning), dan manajemen biaya.\",\"sameAs\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/\"],\"gender\":\"Perempuan\",\"knowsAbout\":[\"Akuntansi\",\"Keuangan\",\"Pembukuan\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Senior Content Writer\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/author\\\/dewisartika\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung","description":"Cost plus pricing adalah metode penetapan harga dengan menambahkan persentase markup di atas total biaya produksi. Ketahui cara hitungnya!","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\/cost-plus-pricing\/","og_locale":"id_ID","og_type":"article","og_title":"Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung dengan Benar","og_description":"Cost plus pricing adalah metode penetapan harga dengan menambahkan persentase markup di atas total biaya produksi. Ketahui cara hitungnya!","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2026-05-11T06:57:42+00:00","og_image":[{"width":1774,"height":887,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-36.webp","type":"image\/webp"}],"author":"Dewi Sartika","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Dewi Sartika","Estimasi waktu membaca":"9 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/"},"author":{"name":"Dewi Sartika","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/9d2e46cf3129df0cdcfe1ea9bbdb74f1"},"headline":"Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung dengan Benar","datePublished":"2026-05-11T06:57:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/"},"wordCount":1487,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-36.webp","articleSection":["Accounting"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/","name":"Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-36.webp","datePublished":"2026-05-11T06:57:42+00:00","description":"Cost plus pricing adalah metode penetapan harga dengan menambahkan persentase markup di atas total biaya produksi. Ketahui cara hitungnya!","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-36.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/05\/image-36.webp","width":1774,"height":887,"caption":"cara menghitung cost plus pricing"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/cost-plus-pricing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Cost Plus Pricing: Pengertian, Rumus, dan Cara Menghitung dengan Benar"}]},{"@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\/9d2e46cf3129df0cdcfe1ea9bbdb74f1","name":"Dewi Sartika","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Dewi-Sartika-2-96x96.webp","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Dewi-Sartika-2-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Dewi-Sartika-2-96x96.webp","caption":"Dewi Sartika"},"description":"Berbekal pengalaman selama 6 tahun dalam industri SaaS, Dewi telah menjadi praktisi untuk penulisan artikel terkait accounting dan bidang keuangan. Ia berfokus menulis artikel seputar Laporan keuangan (neraca, laba rugi, arus kas), standar akuntansi (PSAK, IFRS, GAAP), perpajakan (e-faktur, PPn, tax planning), dan manajemen biaya.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"Perempuan","knowsAbout":["Akuntansi","Keuangan","Pembukuan"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Senior Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/dewisartika\/"}]}},"focus_keyword":"cost plus pricing","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/193361","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\/164"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=193361"}],"version-history":[{"count":7,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/193361\/revisions"}],"predecessor-version":[{"id":193504,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/193361\/revisions\/193504"}],"acf:user":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/users\/281"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/193401"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=193361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=193361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=193361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}