{"id":164349,"date":"2025-07-01T15:54:21","date_gmt":"2025-07-01T08:54:21","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=164349"},"modified":"2026-01-21T11:05:15","modified_gmt":"2026-01-21T04:05:15","slug":"return-on-sales","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/","title":{"rendered":"Return on Sales: Pengertian, Cara Hitung, dan Faktor yang Mempengaruhinya"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Dalam dunia bisnis, penting bagi perusahaan untuk memahami seberapa efisien mereka menghasilkan keuntungan dari setiap penjualan. Salah satu metrik yang digunakan untuk menilainya adalah Return on Sales (ROS). Metrik ini membantu mengevaluasi kinerja operasional secara lebih objektif.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Return on Sales menunjukkan persentase laba bersih yang diperoleh dari total pendapatan penjualan. Angka ini bisa menjadi indikator penting untuk menilai efektivitas strategi bisnis dan membandingkan performa antar periode atau kompetitor.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dalam artikel ini, Anda akan mempelajari pengertian ROS, cara menghitungnya, serta faktor-faktor yang memengaruhinya. Proses analisis ini akan semakin mudah jika didukung oleh <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/sistem-akuntansi\"><span style=\"font-weight: 400;\">Software Akuntansi HashMicro<\/span><\/a><span style=\"font-weight: 400;\"> yang terintegrasi.<\/span><\/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\"><span style=\"font-weight: 400;\"><a href=\"#apa-ros\">Return on Sales (ROS)<\/a> adalah rasio keuangan berbentuk persentase yang menunjukkan efisiensi laba dari penjualan dan membantu menilai kinerja operasional bisnis.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><a href=\"#mengapa-ros\">Return on Sales <\/a>dihitung menggunakan rumus: (Laba Operasional \u00f7 Pendapatan Penjualan Bersih) x 100 = Return on Sales (%)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><a href=\"#faktor-ros\">Return on Sales <\/a>menghitung keuntungan yang diperoleh perusahaan setelah dikurangi seluruh biaya operasional, pajak, dan beban lainnya dibandingkan dengan total penjualan.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Pantau dan optimalkan Return on Sales secara akurat dengan bantuan <a href=\"https:\/\/www.hashmicro.com\/id\/sistem-akuntansi\">Software Akuntansi<\/a> terintegrasi dari HashMicro.<span id=\"apa-ros\"><\/span><\/span><\/li>\n<\/ul>\n<p><span data-sheets-root=\"1\"><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">\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>\n<h2><b>Apa Itu Return on Sales?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Return on Sales (ROS) adalah rasio keuangan yang menunjukkan seberapa besar laba bersih yang dihasilkan dari total penjualan. Metrik ini sering digunakan untuk mengukur efisiensi operasional sebuah bisnis. Semakin tinggi ROS, semakin baik kinerja perusahaan dalam mengelola pendapatannya.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">ROS biasanya dinyatakan dalam bentuk persentase, sehingga memudahkan untuk membandingkan antar periode atau antar perusahaan. Rasio ini juga dikenal sebagai <\/span><i><span style=\"font-weight: 400;\">operating profit margin<\/span><\/i><span style=\"font-weight: 400;\">, terutama jika menggunakan laba operasional sebagai dasar perhitungan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><span id=\"mengapa-ros\">Dengan menghitung ROS, pemilik bisnis dapat mengetahui apakah strategi penjualan dan pengeluaran sudah berjalan optimal. Ini menjadikan ROS sebagai indikator penting dalam proses pengambilan keputusan keuangan yang lebih akurat.<\/span><\/span><\/p>\n<h2><b>Mengapa Return on Sales Penting?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Setelah memahami definisi Return on Sales, penting untuk mengetahui mengapa metrik ini sering digunakan dalam analisis keuangan. Berikut beberapa alasan utama yang membuat ROS menjadi indikator vital bagi perusahaan:<\/span><\/p>\n<h3><strong>1. Mengukur efisiensi operasional<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">ROS menunjukkan seberapa besar laba bersih yang dihasilkan dari setiap rupiah penjualan. Semakin tinggi angkanya, semakin efisien perusahaan dalam mengelola biaya operasional dan beban usaha lainnya.<\/span><\/p>\n<h3><strong>2. Membandingkan kinerja antar perusahaan<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Karena berbentuk rasio, ROS memungkinkan perbandingan antara perusahaan berbeda, bahkan dalam industri yang sama. Ini membantu dalam analisis kompetitor dan benchmarking kinerja bisnis.<\/span><\/p>\n<h3><strong>3. Menjadi indikator kesehatan finansial<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">ROS yang konsisten atau meningkat dari waktu ke waktu menunjukkan bahwa bisnis dikelola dengan baik. Ini bisa menjadi sinyal positif bagi manajemen internal maupun pemangku kepentingan.<\/span><\/p>\n<h3><strong>4. Evaluasi strategi dan pengambilan keputusan<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Dengan memantau perubahan ROS, perusahaan dapat menilai efektivitas strategi penjualan, pengendalian biaya, dan operasional. Jika terjadi penurunan, langkah perbaikan bisa segera diambil.<\/span><\/p>\n<h3><strong>5. Menarik perhatian investor dan kreditor<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">ROS merupakan salah satu indikator yang dilirik investor saat menilai kelayakan investasi. Nilai yang tinggi menandakan bisnis yang menguntungkan dan layak untuk didukung secara finansial.<\/span><\/p>\n<h2><b>Cara Menghitung Return on Sales<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Return on Sales (ROS) dihitung menggunakan dua langkah utama, yaitu menghitung laba operasional terlebih dahulu, kemudian membaginya dengan pendapatan penjualan bersih. Dengan bantuan <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/sistem-akuntansi\/\"><span style=\"font-weight: 400;\">sistem akuntansi<\/span><\/a><span style=\"font-weight: 400;\"> yang andal, proses ini dapat dilakukan lebih akurat dan efisien.<\/span><\/p>\n<p><b>Langkah 1: Hitung Laba Operasional<\/b><\/p>\n<blockquote><p>Pendapatan Penjualan Bersih \u2013 Biaya Operasional = Laba Operasional<\/p><\/blockquote>\n<p>Laba operasional diperoleh dari selisih antara pendapatan penjualan bersih dan biaya operasional. Penting untuk dicatat, biaya operasional tidak mencakup pajak dan beban bunga.<\/p>\n<p><b>Langkah 2: Hitung Return on Sales<\/b><\/p>\n<p>&nbsp;<\/p>\n<blockquote><p>ROS = Laba Bersih\u200b\/Penjualan Bersih X 100%<\/p><\/blockquote>\n<p>Setelah mendapatkan laba operasional, langkah selanjutnya adalah menghitung ROS dengan membaginya terhadap pendapatan penjualan bersih, lalu dikalikan 100 agar berbentuk persentase.<\/p>\n<p><span style=\"font-weight: 400;\">Semakin tinggi angka ROS, maka semakin besar persentase keuntungan dari setiap penjualan. Ini menjadi indikator penting dalam analisis profitabilitas perusahaan secara menyeluruh.<\/span><\/p>\n<h2><b>Contoh Perhitungan Return on Sales<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Agar lebih mudah dipahami, berikut contoh soal cerita yang menggambarkan cara menghitung Return on Sales (ROS) secara sederhana dan praktis.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sebuah perusahaan ritel mencatat pendapatan penjualan bersih sebesar Rp2.500.000.000 selama satu periode. Dalam periode yang sama, total biaya operasional perusahaan adalah Rp2.000.000.000.<\/span><\/p>\n<p><b>Langkah 1: Hitung Laba Operasional<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Rp2.500.000.000 \u2013 Rp2.000.000.000 = <\/span><b>Rp500.000.000<\/b><\/p>\n<p><b>Langkah 2: Hitung Return on Sales<\/b><\/p>\n<p><span style=\"font-weight: 400;\">(Rp500.000.000 \u00f7 Rp2.500.000.000) x 100 = <\/span><b>20%<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Hasilnya, Return on Sales perusahaan tersebut adalah 20%. Artinya, dari setiap Rp1 penjualan, perusahaan berhasil memperoleh Rp0,20 sebagai laba operasional.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><span id=\"faktor-ros\">Angka ROS seperti ini menjadi salah satu indikator penting dalam praktik <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/financial-accounting\/\"><span style=\"font-weight: 400;\">financial accounting<\/span><\/a><span style=\"font-weight: 400;\">, karena mencerminkan efisiensi dan profitabilitas perusahaan dari sisi operasional.<\/span><\/span><\/p>\n<h2><b>Faktor yang Memengaruhi Return on Sales<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-164356\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-2.webp\" alt=\"Faktor Return on Sales\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-2.webp 1200w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-2-300x169.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-2-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-2-768x432.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-2-747x420.webp 747w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-2-150x84.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-2-696x392.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-2-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Return on Sales merupakan salah satu <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/kenali-rasio-profitabilitas\/\"><span style=\"font-weight: 400;\">rasio profitabilitas<\/span><\/a><span style=\"font-weight: 400;\"> yang mencerminkan efisiensi perusahaan dalam menghasilkan laba dari penjualan. Nilainya bisa naik turun dipengaruhi berbagai faktor internal maupun eksternal. Berikut beberapa aspek utama yang perlu diperhatikan untuk menjaga stabilitas ROS:<\/span><\/p>\n<h3><strong>1. Biaya operasional<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Semakin tinggi biaya operasional, semakin kecil laba yang tersisa dari penjualan. Pengeluaran seperti gaji, sewa, atau biaya produksi yang tidak terkendali bisa menurunkan ROS secara signifikan. Oleh karena itu, perusahaan perlu mengelola efisiensi biaya secara rutin, salah satunya dengan memanfaatkan <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/rekomendasi-software-akuntansi-di-indonesia\/\"><span style=\"font-weight: 400;\">software akuntansi<\/span><\/a><span style=\"font-weight: 400;\"> untuk memantau dan mengontrol pengeluaran secara lebih akurat.<\/span><\/p>\n<h3><strong>2. Harga produk atau jasa<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Strategi penetapan harga sangat memengaruhi pendapatan dan laba. Jika harga terlalu rendah, volume penjualan mungkin naik, tapi keuntungan bisa tergerus. Sebaliknya, harga terlalu tinggi bisa menurunkan daya beli pelanggan. Menemukan harga yang seimbang sangat krusial untuk menjaga ROS.<\/span><\/p>\n<h3><strong>3. Volume penjualan<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Penjualan yang tinggi dapat menutupi biaya tetap dan meningkatkan laba operasional. Namun, penjualan tinggi saja tidak cukup jika margin keuntungan per unit terlalu rendah. Perusahaan perlu menyeimbangkan volume dengan efisiensi biaya agar ROS tetap terjaga.<\/span><\/p>\n<h3><strong>4. Efisiensi produksi atau operasional<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Operasional yang efisien (baik dari sisi tenaga kerja, bahan baku, maupun proses) akan menghasilkan biaya yang lebih rendah. Ini berdampak langsung pada kenaikan laba operasional. Optimalisasi proses bisnis, termasuk melalui teknologi, dapat membantu meningkatkan efisiensi secara menyeluruh.<\/span><\/p>\n<h3><strong>5. Diskon dan promo penjualan<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Memberikan diskon bisa mendorong penjualan jangka pendek, tapi juga bisa menurunkan laba per transaksi. Jika tidak dikelola dengan baik, hal ini akan menurunkan ROS. Promo sebaiknya dirancang dengan perhitungan margin yang jelas agar tidak mengorbankan profitabilitas perusahaan.<\/span><\/p>\n<h3><strong>6. Perubahan ekonomi makro<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Inflasi, nilai tukar, atau kebijakan pemerintah bisa memengaruhi harga bahan baku dan daya beli konsumen. Hal ini dapat memengaruhi pendapatan dan biaya operasional secara langsung. Perusahaan yang adaptif terhadap kondisi eksternal cenderung lebih stabil dalam menjaga ROS.<\/span><\/p>\n<h2><strong>Apa Insight yang Didapat dari Perhitungan ROS?<\/strong><\/h2>\n<p>Insight yang didapat dari perhitungan Return on Sales (ROS) adalah seberapa efisien perusahaan mengubah penjualannya menjadi laba bersih.<\/p>\n<ul>\n<li>\n<h3><strong>ROS Tinggi\u00a0<\/strong><\/h3>\n<\/li>\n<\/ul>\n<p>Menunjukkan bahwa perusahaan mampu mengendalikan biaya dan memperoleh keuntungan besar dari setiap penjualan, menandakan kinerja yang sehat dan efisien.<\/p>\n<ul>\n<li>\n<h3><strong>ROS Rendah <\/strong><\/h3>\n<\/li>\n<\/ul>\n<p>Mengindikasikan tingginya biaya operasional atau harga pokok penjualan yang mengurangi margin laba, sehingga perlu evaluasi untuk meningkatkan profitabilitas.<\/p>\n<p>Secara keseluruhan, ROS memberikan gambaran tentang profitabilitas, efisiensi operasional, dan efektivitas strategi penetapan harga perusahaan.<\/p>\n<h2><b>Pantau Return on Sales Lebih Mudah dengan Software Akuntansi Terintegrasi dari HashMicro<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-164353\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/hashmicro-accounting.webp\" alt=\"hashmicro accounting\" width=\"1548\" height=\"1261\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/hashmicro-accounting.webp 1548w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/hashmicro-accounting-300x244.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/hashmicro-accounting-1024x834.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/hashmicro-accounting-768x626.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/hashmicro-accounting-1536x1251.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/hashmicro-accounting-516x420.webp 516w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/hashmicro-accounting-150x122.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/hashmicro-accounting-696x567.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/hashmicro-accounting-1068x870.webp 1068w\" sizes=\"auto, (max-width: 1548px) 100vw, 1548px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Mengelola dan memantau Return on Sales secara manual bisa menyita waktu dan rentan kesalahan. Sistem akuntansi yang terintegrasi memungkinkan proses pencatatan hingga pelaporan dilakukan otomatis. Hal ini membantu bisnis mengambil keputusan berbasis data dengan lebih cepat dan akurat.<\/span><\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/sistem-akuntansi\"><span style=\"font-weight: 400;\">Software Akuntansi HashMicro<\/span><\/a><span style=\"font-weight: 400;\"> adalah sistem akuntansi berbasis cloud yang lengkap dan mudah digunakan. Telah dipercaya oleh lebih dari 2.000+ klien di berbagai industri, HashMicro membantu memantau performa keuangan secara real-time melalui dashboard interaktif.<\/span><\/p>\n<p><b>Fitur-Fitur Utama yang Mendukung Pemantauan Return on Sales<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Financial dashboard: <\/b><span style=\"font-weight: 400;\">Pantau pendapatan, kas, piutang, dan utang usaha secara real-time untuk melihat gambaran cepat kondisi keuangan yang memengaruhi nilai Return on Sales Anda.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Cash flow forecasting: <\/b><span style=\"font-weight: 400;\">Prediksi arus masuk dan keluar kas secara akurat agar dapat mengelola biaya operasional lebih bijak dan menjaga efisiensi yang berdampak pada ROS.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Fast bank reconciliation: <\/b><span style=\"font-weight: 400;\">Rekomendasi transaksi dan pencocokan data bank otomatis membantu menjaga akurasi laporan keuangan, sehingga perhitungan ROS tidak meleset.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Accrual &amp; amortization: <\/b><span style=\"font-weight: 400;\">Proses pencatatan akrual dan amortisasi otomatis mengurangi risiko kesalahan hitung, menjaga laba operasional tetap sesuai dengan realitas bisnis.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Budget management: <\/b><span style=\"font-weight: 400;\">Kontrol anggaran dan belanja operasional secara ketat untuk mencegah pemborosan yang dapat menurunkan laba, sehingga ROS tetap optimal.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Analytical reporting: <\/b><span style=\"font-weight: 400;\">Dapatkan laporan laba rugi dan performa keuangan lainnya secara instan untuk memantau tren ROS dan mengambil tindakan tepat waktu.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Ingin tahu bagaimana sistem ini bekerja untuk bisnis Anda? Coba <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/?medium=web-form-header\">demo gratis<\/a> HashMicro sekarang dan rasakan sendiri kemudahan mengelola laporan keuangan secara efisien dan terintegrasi.<\/span><\/p>\n<h2><b>Kesimpulan<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Return on Sales (ROS) merupakan indikator penting dalam menilai seberapa efisien bisnis Anda menghasilkan laba dari penjualan. Dengan memahami cara menghitung dan faktor yang memengaruhinya, Anda bisa mengambil keputusan keuangan yang lebih tepat sasaran.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Untuk membantu Anda memantau ROS secara akurat dan real-time, penggunaan software akuntansi terintegrasi sangat disarankan. <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/sistem-akuntansi\"><span style=\"font-weight: 400;\">Software Akuntansi HashMicro<\/span><\/a><span style=\"font-weight: 400;\"> menawarkan berbagai fitur otomatis yang mendukung analisis profitabilitas secara menyeluruh dan efisien.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Jadwalkan <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/?medium=web-form-header\">demo gratis<\/a> bersama HashMicro dan pelajari bagaimana solusi akuntansi terintegrasi dapat membantu Anda mengambil keputusan lebih cermat dan berbasis data.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/id\/sistem-akuntansi?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/accounting-definitive.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/accounting-definitive.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/accounting-definitive-m.webp\" alt=\"Accounting_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><\/span><\/p>\n<h2><strong>Pertanyaan Seputar Return on Sales<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Bagaimana cara menghitung Return on Sales?<\/strong><\/summary>\n<p>Return on Sales (ROS) dihitung dengan membagi laba operasional dengan pendapatan penjualan bersih, kemudian dikalikan 100 untuk mendapatkan persentase. Rumusnya adalah: (Laba Operasional \u00f7 Pendapatan Penjualan Bersih) x 100<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Berapa nilai ROS yang dianggap baik?<\/strong><\/summary>\n<p>ROS yang baik umumnya berada di atas 10%, tergantung industri dan struktur biaya perusahaan.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah ROS bisa negatif?<\/strong><\/summary>\n<p>Ya, ROS bisa negatif jika perusahaan mengalami kerugian operasional atau biaya melebihi pendapatan.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"Bagaimana cara menghitung Return on Sales?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Return on Sales (ROS) dihitung dengan membagi laba operasional dengan pendapatan penjualan bersih, kemudian dikalikan 100 untuk mendapatkan persentase. Rumusnya adalah: (Laba Operasional \u00f7 Pendapatan Penjualan Bersih) x 100.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Berapa nilai ROS yang dianggap baik?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"ROS yang baik umumnya berada di atas 10%, tergantung industri dan struktur biaya perusahaan.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah ROS bisa negatif?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Ya, ROS bisa negatif jika perusahaan mengalami kerugian operasional atau biaya melebihi pendapatan.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dalam dunia bisnis, penting bagi perusahaan untuk memahami seberapa efisien mereka menghasilkan keuntungan dari setiap penjualan. Salah satu metrik yang digunakan untuk menilainya adalah Return on Sales (ROS). Metrik ini membantu mengevaluasi kinerja operasional secara lebih objektif. Return on Sales menunjukkan persentase laba bersih yang diperoleh dari total pendapatan penjualan. Angka ini bisa menjadi indikator [&hellip;]<\/p>\n","protected":false},"author":164,"featured_media":164354,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1232],"tags":[],"class_list":{"0":"post-164349","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 v25.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Return on Sales: Pengertian, Cara Hitung, dan Faktornya<\/title>\n<meta name=\"description\" content=\"Pelajari apa itu Return on Sales (ROS), cara menghitungnya, contoh perhitungan, serta faktor yang memengaruhinya.\" \/>\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\/return-on-sales\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Return on Sales: Pengertian, Cara Hitung, dan Faktor yang Mempengaruhinya\" \/>\n<meta property=\"og:description\" content=\"Pelajari apa itu Return on Sales (ROS), cara menghitungnya, contoh perhitungan, serta faktor yang memengaruhinya.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/\" \/>\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=\"2025-07-01T08:54:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-21T04:05:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"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\/return-on-sales\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/\"},\"author\":{\"name\":\"Dewi Sartika\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/9d2e46cf3129df0cdcfe1ea9bbdb74f1\"},\"headline\":\"Return on Sales: Pengertian, Cara Hitung, dan Faktor yang Mempengaruhinya\",\"datePublished\":\"2025-07-01T08:54:21+00:00\",\"dateModified\":\"2026-01-21T04:05:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/\"},\"wordCount\":1493,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-1.webp\",\"articleSection\":[\"Accounting\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/\",\"name\":\"Return on Sales: Pengertian, Cara Hitung, dan Faktornya\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-1.webp\",\"datePublished\":\"2025-07-01T08:54:21+00:00\",\"dateModified\":\"2026-01-21T04:05:15+00:00\",\"description\":\"Pelajari apa itu Return on Sales (ROS), cara menghitungnya, contoh perhitungan, serta faktor yang memengaruhinya.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-1.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-1.webp\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Return on Sales: Pengertian, Cara Hitung, dan Faktor yang Mempengaruhinya\"}]},{\"@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\/#\/schema\/person\/image\/\",\"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":"Return on Sales: Pengertian, Cara Hitung, dan Faktornya","description":"Pelajari apa itu Return on Sales (ROS), cara menghitungnya, contoh perhitungan, serta faktor yang memengaruhinya.","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\/return-on-sales\/","og_locale":"id_ID","og_type":"article","og_title":"Return on Sales: Pengertian, Cara Hitung, dan Faktor yang Mempengaruhinya","og_description":"Pelajari apa itu Return on Sales (ROS), cara menghitungnya, contoh perhitungan, serta faktor yang memengaruhinya.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-07-01T08:54:21+00:00","article_modified_time":"2026-01-21T04:05:15+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-1.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\/return-on-sales\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/"},"author":{"name":"Dewi Sartika","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/9d2e46cf3129df0cdcfe1ea9bbdb74f1"},"headline":"Return on Sales: Pengertian, Cara Hitung, dan Faktor yang Mempengaruhinya","datePublished":"2025-07-01T08:54:21+00:00","dateModified":"2026-01-21T04:05:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/"},"wordCount":1493,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-1.webp","articleSection":["Accounting"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/","name":"Return on Sales: Pengertian, Cara Hitung, dan Faktornya","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-1.webp","datePublished":"2025-07-01T08:54:21+00:00","dateModified":"2026-01-21T04:05:15+00:00","description":"Pelajari apa itu Return on Sales (ROS), cara menghitungnya, contoh perhitungan, serta faktor yang memengaruhinya.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-1.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/07\/Return-on-Sales-1.webp","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/return-on-sales\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Return on Sales: Pengertian, Cara Hitung, dan Faktor yang Mempengaruhinya"}]},{"@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\/#\/schema\/person\/image\/","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":"return on sales","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/164349","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=164349"}],"version-history":[{"count":6,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/164349\/revisions"}],"predecessor-version":[{"id":186491,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/164349\/revisions\/186491"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/164354"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=164349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=164349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=164349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}