{"id":39806,"date":"2023-11-27T09:02:59","date_gmt":"2023-11-27T02:02:59","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=39806"},"modified":"2026-01-27T11:19:13","modified_gmt":"2026-01-27T04:19:13","slug":"tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/","title":{"rendered":"Data Penjualan: Apa Itu &#038; Tips Mengelolanya"},"content":{"rendered":"<p>Data penjualan merangkum transaksi harian hingga tahunan, termasuk produk terjual, harga, diskon, kanal, dan metode pembayaran. Dari rangkuman ini, bisnis bisa membaca pola permintaan, nilai transaksi rata-rata, serta kontribusi tiap produk terhadap pendapatan.<\/p>\n<p>Agar data penjualan mudah dipakai, format pencatatan perlu konsisten dari awal, misalnya kode produk, kuantitas, harga, total, dan lokasi\/kanal. Konsistensi ini membuat laporan lebih cepat dibuat dan hasil analisis lebih akurat untuk kebutuhan operasional maupun strategi.<\/p>\n<p>Analisis data penjualan membantu memetakan produk dengan volume tinggi, margin terbaik, dan periode penjualan paling kuat. Hasilnya bisa langsung digunakan untuk menyesuaikan stok, menyusun target, dan merancang promo yang lebih tepat sasaran.<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#adalah\">Data penjualan merupakan<\/a> catatan transaksi produk atau jasa dalam periode tertentu yang berfungsi sebagai dasar evaluasi dan perencanaan bisnis.<\/li>\n<li aria-level=\"1\"><a href=\"#tips\">Tips mengelola data penjualan<\/a> mencakup kerapian catatan, analisis tren, keamanan data, dan pemanfaatan software CRM.<\/li>\n<li aria-level=\"1\">Komponen pentingnya mencakup nilai penjualan, jumlah unit terjual, margin, dan kontribusi channel penjualan.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span id=\"adalah\">\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><strong>Apa Itu Data Penjualan<\/strong><\/h2>\n<p>Data penjualan adalah kumpulan catatan transaksi yang merekam setiap penjualan produk atau jasa dalam periode tertentu. Isinya biasanya mencakup tanggal transaksi, identitas produk, jumlah terjual, harga, diskon, pajak, total pembayaran, hingga kanal penjualan.<\/p>\n<p>Agar data ini benar-benar bisa dipakai, perusahaan perlu membedakan data transaksi (baris per transaksi) dan laporan penjualan (ringkasan per hari\/minggu\/bulan). Dari laporan itulah <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/analisis-data-penjualan\/\">analisis data penjualan<\/a> bisa menghasilkan insight seperti produk paling konsisten, jam ramai, pola musiman, dan dampak promo.<\/p>\n<h2><strong>Contoh Format Data Penjualan yang Rapi<\/strong><\/h2>\n<p>Format yang rapi biasanya punya 3 ciri: konsisten, mudah difilter, dan jelas sumbernya.<\/p>\n<p>Karena itu, pisahkan komponen penting (misalnya diskon, pajak, kanal) ke kolom sendiri, gunakan satu ID transaksi yang unik, dan samakan format tanggal (misalnya dd\/mm\/yy) supaya tidak tertukar saat pelaporan.<\/p>\n<p>Di bawah ini contoh format sederhana yang cukup kuat untuk laporan harian\u2013bulanan:<\/p>\n<div style=\"width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e6e6ea; border-radius: 12px; background: #fff;\">\n<table style=\"width: 100%; border-collapse: collapse; min-width: 1100px; font-family: inherit; font-size: 14px; table-layout: auto;\">\n<thead>\n<tr>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Tanggal<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Invoice<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">SKU<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Produk<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Qty<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Harga<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Diskon<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Pajak<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Total<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Kanal<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Outlet<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Sales<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">27\/01\/26<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">INV-260127-001<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">SKU-TSH-001<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">T-Shirt Basic<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">2<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">125000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">10000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">0<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">240000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Offline<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Outlet Sudirman<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Rina<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">27\/01\/26<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">INV-260127-002<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">SKU-KOP-250<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Kopi 250g<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">1<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">98000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">0<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">0<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">98000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Marketplace<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Online<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">\u2014<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">27\/01\/26<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">INV-260127-003<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">SKU-BTL-002<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Botol Minum 600ml<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">3<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">60000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">15000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">0<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">165000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Website<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Online<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none;\">Dimas<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2><strong>Cara Menyusun Laporan Penjualan yang Mudah Dibaca<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-171700\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/Fungsi-Data-Penjualan-bagi-Perusahaan.webp\" alt=\"Fungsi-Data-Penjualan-bagi-Perusahaan\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/Fungsi-Data-Penjualan-bagi-Perusahaan.webp 1200w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/Fungsi-Data-Penjualan-bagi-Perusahaan-300x169.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/Fungsi-Data-Penjualan-bagi-Perusahaan-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/Fungsi-Data-Penjualan-bagi-Perusahaan-768x432.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/Fungsi-Data-Penjualan-bagi-Perusahaan-747x420.webp 747w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/Fungsi-Data-Penjualan-bagi-Perusahaan-150x84.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/Fungsi-Data-Penjualan-bagi-Perusahaan-696x392.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/Fungsi-Data-Penjualan-bagi-Perusahaan-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>Laporan penjualan yang mudah dibaca dan dimengerti harus menjawab pertanyaan &#8216;apa yang terjadi&#8217; dan &#8216;apa yang harus dilakukan&#8217;. Karena itu, susun laporan dengan urutan yang konsisten dan metrik yang jelas sejak awal.<\/p>\n<h3><strong>1. Tentukan format ringkasan dulu, baru detail<\/strong><\/h3>\n<ul>\n<li><strong>Bagian atas (ringkasan 1 layar):<\/strong> angka inti + perbandingan periode.<\/li>\n<li><strong>Bagian bawah (detail):<\/strong> breakdown per produk\/kategori, kanal, outlet, dan sales.<\/li>\n<li><strong>Lampiran (opsional):<\/strong> daftar transaksi untuk audit\/cek selisih.<\/li>\n<\/ul>\n<h3><strong>2. Pakai metrik inti yang disetujui seluruh tim<\/strong><\/h3>\n<p>Agar satu tim selaras perspektifnya, definisikan metrik berikut (cukup 1 baris per metrik):<\/p>\n<ul>\n<li><strong>Omzet (gross sales):<\/strong> total sebelum diskon\/retur (kalau Anda pakai ini).<\/li>\n<li><strong>Penjualan bersih (net sales):<\/strong> total setelah diskon + setelah retur\/refund.<\/li>\n<li><strong>Qty terjual:<\/strong> jumlah unit (pisahkan dari jumlah transaksi).<\/li>\n<li><strong>AOV (average order value):<\/strong> total penjualan \u00f7 jumlah transaksi.<\/li>\n<li><strong>Margin kotor:<\/strong> (net sales \u2212 HPP) \u00f7 net sales (kalau HPP tersedia).<\/li>\n<\/ul>\n<h3><strong>3. Susunan laporan harian\u2013mingguan\u2013bulanan yang mudah dipakai<\/strong><\/h3>\n<p>Gunakan tabel ini sebagai template struktur, supaya tim tidak ganti format tiap periode.<\/p>\n<div style=\"width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e6e6ea; border-radius: 12px; background: #fff;\">\n<table style=\"width: 100%; border-collapse: collapse; min-width: 1180px; font-family: inherit; font-size: 14px; table-layout: auto;\">\n<thead>\n<tr>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\" colspan=\"9\">Ringkasan Laporan Penjualan Mingguan (22\/01\/26\u201328\/01\/26)<\/th>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Periode<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Net Sales<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">WoW<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Transaksi<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">AOV<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Qty Terjual<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Diskon<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Retur\/Refund<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Margin Kotor<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: left; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Minggu ini<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">1.248.500.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">+6,8%<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">3.426<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">364.500<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">5.980<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">92.300.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">18.750.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">34,2%<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: left; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Minggu lalu<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">1.168.900.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">\u2014<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">3.298<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">354.300<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">5.744<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">88.500.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">21.100.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">33,6%<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px 12px; border-bottom: 1px solid #f0f1f4; text-align: left; background: #fff; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\" colspan=\"9\"><strong>Catatan:<\/strong> Net Sales = total setelah diskon dan setelah retur\/refund. AOV = Net Sales \u00f7 Transaksi.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>Tabel Detail Penjualan per Produk:<\/strong><\/p>\n<div style=\"width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e6e6ea; border-radius: 12px; background: #fff; margin-top: 14px;\">\n<table style=\"width: 100%; border-collapse: collapse; min-width: 1180px; font-family: inherit; font-size: 14px; table-layout: auto;\">\n<thead>\n<tr>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\" colspan=\"10\">Detail Penjualan per Produk (Top 5)<\/th>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">SKU<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Produk<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Kanal Utama<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Qty<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Net Sales<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Diskon<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Retur<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">HPP<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Laba Kotor<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Margin<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">SKU-KOP-250<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Kopi 250g<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Marketplace<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">1.120<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">287.400.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">18.200.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">3.900.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">176.800.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">110.600.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">38,5%<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">SKU-TSH-001<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">T-Shirt Basic<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Offline<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">980<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">215.600.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">14.700.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">2.100.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">141.200.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">74.400.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">34,5%<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">SKU-BTL-002<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Botol Minum 600ml<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Website<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">760<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">182.900.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">9.800.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">4.600.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">121.700.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">61.200.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">33,5%<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px 12px; border-bottom: 1px solid #f0f1f4; text-align: left; background: #fff; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\" colspan=\"10\">Catatan: HPP = total biaya pokok. Laba Kotor = Net Sales \u2212 HPP. Margin = Laba Kotor \u00f7 Net Sales.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3><strong>4. Gunakan format tampilan yang konsisten<\/strong><\/h3>\n<ul>\n<li>Pakai format tanggal konsisten: dd\/mm\/yy.<\/li>\n<li>Pisahkan angka: qty (unit) vs transaksi (order) vs nilai (rupiah).<\/li>\n<li>Tulis perbandingan singkat: MoM\/WoW dalam % + selisih nominal.<\/li>\n<li>Simpan catatan definisi di bawah tabel (1\u20132 baris), supaya tidak salah tafsir saat analisis data penjualan.<\/li>\n<\/ul>\n<h2><strong>Cara Menganalisis Tren Penjualan<\/strong><\/h2>\n<p>Untuk menganalisis tren, tak cukup sekadar naik\/turun semata, tapi gunakan pola yang bisa dihubungkan ke waktu, kanal, produk, dan dampak promo. Anda bisa mulai dari pembandingan yang setara, baru tarik kesimpulan.<\/p>\n<h3><strong>1. Bandingkan periode secara adil<\/strong><\/h3>\n<p>Pembandingnya harus setara dari sisi pola belanja dan aktivitas operasional. Cukup bandingkan periode yang perilakunya mirip, baru Anda bisa menarik kesimpulan.<\/p>\n<ul>\n<li><strong>Apples-to-apples:<\/strong> bandingkan hari kerja vs hari kerja, weekend vs weekend, atau minggu ke-1 vs minggu ke-1.<\/li>\n<li><strong>Tandai momen khusus:<\/strong> <strong><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/5-cara-mudah-menentukan-harga-jual-produk-untuk-memajukan-bisnis-anda\/\"><span style=\"font-weight: 400;\">harga jual<\/span><\/a><span style=\"font-weight: 400;\">\u00a0<\/span><\/strong>hari raya, payday, kampanye, atau event besar sebaiknya dicatat sebagai konteks, bukan dianggap tren normal.<\/li>\n<li><strong>Pakai dua patokan:<\/strong> WoW untuk memantau perubahan operasional cepat, dan YoY untuk membaca pola musiman yang berulang.<\/li>\n<\/ul>\n<h3><strong>2. Empat tren yang paling sering dipakai untuk keputusan<\/strong><\/h3>\n<p>Setelah periode pembandingnya rapi, fokuskan analisis ke tren yang paling sering dipakai untuk keputusan bisnis. Tujuannya adalah menemukan pola yang bisa langsung diterjemahkan jadi tindakan.<\/p>\n<ul>\n<li><strong>Tren waktu:<\/strong> Pada jam ramai, hari ramai, minggu ramai, Anda bisa atur shift, stok, dan jadwal promo.<\/li>\n<li><strong>Tren produk\/kategori:\u00a0<\/strong>Kategorikan produk yang fast mover vs slow mover, lalu rapikan katalog, atur replenishment, dan evaluasi varian.<\/li>\n<li><strong>Tren kanal\/outlet:<\/strong> Bandingkan kontribusi tiap kanal\/outlet dan tentukan prioritas budget, strategi channel, dan target per lokasi.<\/li>\n<li><strong>Tren harga\/promo: <\/strong>Jika diskon naik tapi margin turun, Anda perlu mengukur efektivitas promo dari profit, bukan cuma omzet.<\/li>\n<\/ul>\n<h3><strong>3. Cara membaca tren jadi tindakan<\/strong><\/h3>\n<p>Anda perlu membandingkan jenis tren dengan hasil yang ada di lapangan sebelum melakukan tindakan.<\/p>\n<div style=\"width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e6e6ea; border-radius: 12px; background: #fff;\">\n<table style=\"width: 100%; border-collapse: collapse; min-width: 980px; font-family: inherit; font-size: 14px; table-layout: auto;\">\n<thead>\n<tr>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Jenis Tren<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Yang Dicek<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Interpretasi Cepat<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Tindak Lanjut<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Waktu<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Net sales per jam\/hari<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Puncak berulang = pola<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Atur stok, shift, jadwal promo<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Produk<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Qty &amp; margin per SKU<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Laku tinggi \u2260 untung tinggi<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Prioritaskan pembelian &amp; bundling<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Kanal<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Kontribusi &amp; retur<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Naik omzet tapi retur tinggi<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Benahi listing, SLA, kebijakan retur<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Harga\/Promo<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Diskon vs margin<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Diskon besar, profit turun<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Uji ulang promo &amp; batas diskon<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3><strong>4. Deteksi anomali agar tidak salah ambil kesimpulan<\/strong><\/h3>\n<ul>\n<li>Jika penjualan melonjak 2\u20133x dari rata-rata harian, Anda perlu cek promo, restock, event, atau input dobel.<\/li>\n<li>Jika penjualan turun tajam, cek: stok kosong, jam operasional berubah, harga berubah, atau gangguan kanal.<\/li>\n<li>Pisahkan dulu transaksi void\/refund\/retur, baru simpulkan tren.<\/li>\n<\/ul>\n<p><b>Baca juga: <\/b><strong><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/sistem-crm-untuk-sektor-keuangan-manfaat-dan-fitur-utama\/\">Sistem CRM untuk Sektor Keuangan: Manfaat dan Fitur Utama<\/a><\/strong><\/p>\n<h2><strong>Analisis Margin dan Profit Penjualan yang Praktis<\/strong><\/h2>\n<p>Analisis profit yang praktis fokus pada satu hal, yaitu mana penjualan yang benar-benar menghasilkan laba.<\/p>\n<p>Karena itu, mulai dari definisi angka yang konsisten, lalu baca polanya per produk, kanal, dan promo.<\/p>\n<h3><strong>1. Bedakan dulu margin kotor dan margin bersih<\/strong><\/h3>\n<p>Margin sering terlihat bagus di laporan, tapi bisa turun kalau biaya yang melekat tidak ikut dihitung. Pakai pembagian sederhana ini supaya tim membacanya sama.<\/p>\n<ul>\n<li><strong>Laba kotor (Gross Profit):<\/strong> Net Sales \u2212 HPP<\/li>\n<li><strong>Margin kotor:<\/strong> Laba kotor \u00f7 Net Sales<\/li>\n<li><strong>Laba bersih (Net Profit):<\/strong> Net Sales \u2212 (HPP + biaya operasional terkait penjualan)<\/li>\n<li><strong>Margin bersih:<\/strong> Laba bersih \u00f7 Net Sales<\/li>\n<\/ul>\n<p>Kalau Anda belum punya data biaya lengkap, Anda tetap bisa mulai dari margin kotor dulu untuk keputusan stok dan katalog dan catat di <span style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/aplikasi-pencatatan-penjualan\/\">aplikasi pencatatan penjualan mobile dan\/atau web<\/a><\/span>.<\/p>\n<h3><strong>2. Cara cepat menemukan produk laku tapi rugi<\/strong><\/h3>\n<p>Produk dengan penjualan tinggi kadang justru menyedot profit karena diskon, retur, atau biaya pemenuhan. Untuk analisis data penjualan yang praktis, cek 3 sinyal ini:<\/p>\n<ul>\n<li><strong>Qty tinggi + margin turun:<\/strong> indikasi diskon terlalu agresif atau HPP naik.<\/li>\n<li><strong>Net sales tinggi + retur tinggi:<\/strong> indikasi mismatch ekspektasi, kualitas, atau deskripsi produk.<\/li>\n<li><strong>AOV naik + margin turun:<\/strong> indikasi bundling\/promo bikin transaksi besar tapi profit kecil.<\/li>\n<\/ul>\n<p>Anda bisa melihat tabel analisis margin per produk sebagai ilustrasi:<\/p>\n<div style=\"width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e6e6ea; border-radius: 12px; background: #fff;\">\n<table style=\"width: 100%; border-collapse: collapse; min-width: 1180px; font-family: inherit; font-size: 14px; table-layout: auto;\">\n<thead>\n<tr>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #f3f4f6; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\" colspan=\"9\">Analisis Margin per Produk (contoh ringkas)<\/th>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">SKU<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Produk<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Qty<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Net Sales<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Diskon<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">HPP<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Laba Kotor<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Margin<\/th>\n<th style=\"padding: 12px 10px; border-bottom: 1px solid #e6e6ea; text-align: center; background: #fafafa; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Catatan<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">SKU-KOP-250<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Kopi 250g<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">1.120<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">287.400.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">18.200.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">176.800.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">110.600.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">38,5%<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Margin sehat, promo terkendali<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">SKU-BTL-002<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Botol Minum 600ml<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">760<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">182.900.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">9.800.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">121.700.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">61.200.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">33,5%<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Retur perlu diawasi<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">SKU-TSH-001<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">T-Shirt Basic<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">980<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">215.600.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">14.700.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">141.200.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">74.400.000<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; text-align: right; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">34,5%<\/td>\n<td style=\"padding: 11px 10px; border-bottom: 1px solid #f0f1f4; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\">Promo oke, jaga HPP<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px 12px; border-bottom: 1px solid #f0f1f4; text-align: left; background: #fff; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; hyphens: none;\" colspan=\"9\">Catatan: Fokuskan analisis pada produk yang kontribusinya besar tetapi marginnya turun, karena dampaknya paling terasa.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3><strong>3. Ambil keputusan secara bijak<\/strong><\/h3>\n<p>Supaya Anda bisa menyusun\u00a0<em>action plan<\/em>, berikut pedoman yang bisa Anda pegang.<\/p>\n<ul>\n<li>Jika net sales naik tapi margin turun, cek diskon, biaya pemenuhan, atau perubahan HPP.<\/li>\n<li>Jika qty naik tapi laba kotor stagnan, cek apakah banyak transaksi kecil atau promo terlalu longgar.<\/li>\n<li>Jika produk A margin tinggi tapi volume rendah, pertimbangkan bundling ringan atau reposisi harga.<\/li>\n<\/ul>\n<p>Anda bisa merekam seluruh datanya di <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/rekomendasi-software-akuntansi-di-indonesia\/\"><span class=\"s1\">software akuntansi untuk penjualan<\/span><\/a>. Jika sistemnya memiliki fitur analisis dan grafik, Anda cukup\u00a0<em>cross-check<\/em> dan mengambil keputusan lebih cepat.<\/p>\n<h2><strong>Cara Mengelola Retur, Refund, dan Diskon<\/strong><\/h2>\n<p>Retur, refund, dan diskon sering menjadi sumber pergeseran angka yang membuat laporan sulit dibaca konsisten. Karena itu, bagian ini merapikan cara pencatatan dan aturannya agar setiap penyesuaian tetap terbaca jelas saat analisis data penjualan.<\/p>\n<h3><strong>1. Tetapkan definisi transaksi sebelum mengubah angka<\/strong><\/h3>\n<p>Pertama, samakan definisi retur, refund, dan diskon sejak awal. Selanjutnya, retur perlu status stok yang jelas di sistem. Kemudian, refund tetap tertaut ke transaksi agar jejaknya mudah ditelusuri.<\/p>\n<h3><strong>2. Pisahkan pencatatan agar net sales terbaca konsisten<\/strong><\/h3>\n<p>Selain itu, pisahkan kolom diskon dari kolom retur dan refund. Lalu, catat diskon sebagai pengurang nilai transaksi pada saat penjualan. Dengan begitu, net sales terbaca stabil saat analisis data penjualan mingguan.<\/p>\n<h3><strong>3. Tentukan aturan kapan retur menjadi refund, exchange, atau credit<\/strong><\/h3>\n<p>Berikutnya, susun alur keputusan untuk exchange, refund, dan store credit. Misalnya, defect dan salah kirim dapat mengikuti refund penuh. Sementara itu, store credit perlu jadwal pencatatan agar laporan tetap rapi.<\/p>\n<h3><strong>4. Catat alasan retur sebagai data yang dapat dianalisis<\/strong><\/h3>\n<p>Kemudian, gunakan kategori alasan retur yang seragam di tiap kanal. Setelah itu, evaluasi pola per produk, lokasi, dan periode penjualan. Selain itu, jika Anda menggunakan software CRM, ia bisa membantu menautkan alasan ke profil pelanggan.<\/p>\n<h3><strong>5. Atur diskon dengan kategori yang jelas<\/strong><\/h3>\n<p>Selanjutnya, kelompokkan diskon menjadi voucher, markdown, dan bundling. Lalu, tetapkan tujuan tiap kategori agar evaluasi lebih terarah. Akhirnya, ukur dampaknya pada margin dan kontribusi penjualan per kategori.<\/p>\n<p><b>Baca juga:<\/b> <strong><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/sistem-crm\/\">Apa itu Sistem CRM dan Manfaatnya untuk Perusahaan Anda?<\/a><\/strong><\/p>\n<h2><strong>Rutinitas Mingguan untuk Menjaga Data Penjualan<\/strong><\/h2>\n<p>Data penjualan yang rapi biasanya terbentuk dari kebiasaan yang dijaga setiap minggu. Pada bagian ini, langkah-langkahnya disusun ringkas agar tim menjaga kualitas data tanpa menambah beban kerja berlebihan.<\/p>\n<h3><strong>1. Mulai minggu dengan merapikan transaksi yang tertunda<\/strong><\/h3>\n<p>Awali minggu dengan mengecek transaksi yang masih tertunda. Selanjutnya, periksa pembayaran terkonfirmasi, duplikasi, dan invoice yang tertahan. Dengan begitu, angka mingguan terbaca stabil saat tim membuat laporan.<\/p>\n<h3><strong>2. Jadwalkan satu sesi khusus untuk penyesuaian<\/strong><\/h3>\n<p>Kemudian, jadwalkan sesi khusus untuk retur, refund, dan penyesuaian. Setelah itu, pastikan status stok dan nilai pengembalian tercatat lengkap. Selain itu, software CRM membantu Anda menautkan penyesuaian langsung ke platform penjualan.<\/p>\n<h3><strong>3. Lakukan pembacaan margin singkat sebelum menilai performa<\/strong><\/h3>\n<p>Berikutnya, lakukan pembacaan margin singkat sebelum rapat evaluasi. Lalu, pantau produk berkontribusi besar dengan margin yang berubah. Dengan begitu, penilaian performa terarah pada profit dan kualitas omzet.<\/p>\n<h3><strong>4. Tutup minggu dengan satu catatan keputusan<\/strong><\/h3>\n<p>Terakhir, tulis satu catatan keputusan yang langsung dapat dijalankan. Selanjutnya, cantumkan perubahan diskon, fokus kanal, atau aturan retur. Akhirnya, cocokkan hasilnya pada minggu berikutnya saat analisis data penjualan.<\/p>\n<h2><b>Kesimpulan\u00a0<\/b><\/h2>\n<p>Data penjualan membantu bisnis melihat kondisi penjualan secara nyata, bukan sekadar perkiraan. Jika pencatatannya rapi, Anda bisa membaca produk yang paling menghasilkan, pola penjualan per periode, dan dampak diskon serta retur dengan lebih jelas.<\/p>\n<p>Analisis data penjualan juga memudahkan Anda mengambil keputusan yang lebih cepat, misalnya menentukan stok, menyesuaikan harga, dan memilih strategi promosi yang lebih tepat. Dengan begitu, laporan tidak hanya menjadi arsip, tetapi benar-benar terpakai untuk perbaikan rutin.<\/p>\n<p>Jika Anda ingin tahu cara menyusun laporan dan melakukan analisis data penjualan sesuai kebutuhan bisnis, Anda bisa menjadwalkan <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\">konsultasi gratis<\/a>.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/id\/penjualan?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/sales-tips-trick.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/sales-tips-trick.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/sales-tips-trick-m.webp\" alt=\"Sales_Tips\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script>\n<h2><strong>Pertanyaan Seputar Data Penjualan<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Data penjualan meliputi apa saja?<\/strong><\/summary>\n<p>Data penjualan mencakup detail transaksi seperti waktu pembelian, produk atau layanan yang terjual, jumlah unit, harga satuan, total pembayaran, metode pembayaran, hingga kanal penjualan yang digunakan.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Data penjualan adalah?<\/strong><\/summary>\n<p>Data penjualan merupakan sekumpulan informasi mengenai aktivitas penjualan dalam jangka waktu tertentu yang berfungsi sebagai bahan analisis dan dasar penyusunan strategi bisnis.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Jenis data apakah data penjualan?<\/strong><\/summary>\n<p>Data penjualan tergolong data kuantitatif karena berisi angka dan nilai transaksi, sekaligus dapat dianggap kualitatif ketika menunjukkan preferensi pelanggan maupun tren pasar.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Data penjualan merangkum transaksi harian hingga tahunan, termasuk produk terjual, harga, diskon, kanal, dan metode pembayaran. Dari rangkuman ini, bisnis bisa membaca pola permintaan, nilai transaksi rata-rata, serta kontribusi tiap produk terhadap pendapatan. Agar data penjualan mudah dipakai, format pencatatan perlu konsisten dari awal, misalnya kode produk, kuantitas, harga, total, dan lokasi\/kanal. Konsistensi ini membuat [&hellip;]<\/p>\n","protected":false},"author":162,"featured_media":139432,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1232],"tags":[],"class_list":{"0":"post-39806","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>Data Penjualan: Apa Itu &amp; Tips Mengelolanya<\/title>\n<meta name=\"description\" content=\"Data penjualan adalah dokumen yang berisi total transaksi dalam kurun waktu tertentu, yang berisi rincian penjualan. Simak selengkapnya!\" \/>\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\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Data Penjualan: Apa Itu &amp; Tips Mengelolanya\" \/>\n<meta property=\"og:description\" content=\"Data penjualan adalah dokumen yang berisi total transaksi dalam kurun waktu tertentu, yang berisi rincian penjualan. Simak selengkapnya!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/\" \/>\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=\"2023-11-27T02:02:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-27T04:19:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/tips-mengelola-data-penjualan.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"650\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hendra Gunawan\" \/>\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=\"Hendra Gunawan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/\"},\"author\":{\"name\":\"Hendra Gunawan\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/7eb92f40eba8b038fa552ba13cd6d88a\"},\"headline\":\"Data Penjualan: Apa Itu &#038; Tips Mengelolanya\",\"datePublished\":\"2023-11-27T02:02:59+00:00\",\"dateModified\":\"2026-01-27T04:19:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/\"},\"wordCount\":1931,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/tips-mengelola-data-penjualan.png\",\"articleSection\":[\"Accounting\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/\",\"name\":\"Data Penjualan: Apa Itu & Tips Mengelolanya\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/tips-mengelola-data-penjualan.png\",\"datePublished\":\"2023-11-27T02:02:59+00:00\",\"dateModified\":\"2026-01-27T04:19:13+00:00\",\"description\":\"Data penjualan adalah dokumen yang berisi total transaksi dalam kurun waktu tertentu, yang berisi rincian penjualan. Simak selengkapnya!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/tips-mengelola-data-penjualan.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/tips-mengelola-data-penjualan.png\",\"width\":1200,\"height\":650,\"caption\":\"tips mengelola data penjualan\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Penjualan: Apa Itu &#038; Tips Mengelolanya\"}]},{\"@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\/7eb92f40eba8b038fa552ba13cd6d88a\",\"name\":\"Hendra Gunawan\",\"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\/Hendra-Gunawan-96x96.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Hendra-Gunawan-96x96.webp\",\"caption\":\"Hendra Gunawan\"},\"description\":\"Hendra adalah ERP Specialist senior dengan pengalaman lebih dari 6 tahun dalam implementasi dan optimasi sistem ERP di berbagai industri. Ia berspesialisasi dalam menulis artikel seputar implementasi dan integrasi modul bisnis, sistem ERP untuk manajemen operasional, dan otomatisasi proses bisnis.\",\"sameAs\":[\"https:\/\/www.hashmicro.com\/id\/\"],\"jobTitle\":\"Hendra Gunawan - Senior Content Writer - ERP Specialist\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/author\/hendra-gunawan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Data Penjualan: Apa Itu & Tips Mengelolanya","description":"Data penjualan adalah dokumen yang berisi total transaksi dalam kurun waktu tertentu, yang berisi rincian penjualan. Simak selengkapnya!","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\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/","og_locale":"id_ID","og_type":"article","og_title":"Data Penjualan: Apa Itu & Tips Mengelolanya","og_description":"Data penjualan adalah dokumen yang berisi total transaksi dalam kurun waktu tertentu, yang berisi rincian penjualan. Simak selengkapnya!","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2023-11-27T02:02:59+00:00","article_modified_time":"2026-01-27T04:19:13+00:00","og_image":[{"width":1200,"height":650,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/tips-mengelola-data-penjualan.png","type":"image\/png"}],"author":"Hendra Gunawan","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Hendra Gunawan","Estimasi waktu membaca":"12 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/"},"author":{"name":"Hendra Gunawan","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/7eb92f40eba8b038fa552ba13cd6d88a"},"headline":"Data Penjualan: Apa Itu &#038; Tips Mengelolanya","datePublished":"2023-11-27T02:02:59+00:00","dateModified":"2026-01-27T04:19:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/"},"wordCount":1931,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/tips-mengelola-data-penjualan.png","articleSection":["Accounting"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/","name":"Data Penjualan: Apa Itu & Tips Mengelolanya","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/tips-mengelola-data-penjualan.png","datePublished":"2023-11-27T02:02:59+00:00","dateModified":"2026-01-27T04:19:13+00:00","description":"Data penjualan adalah dokumen yang berisi total transaksi dalam kurun waktu tertentu, yang berisi rincian penjualan. Simak selengkapnya!","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/tips-mengelola-data-penjualan.png","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/11\/tips-mengelola-data-penjualan.png","width":1200,"height":650,"caption":"tips mengelola data penjualan"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/tips-mengelola-data-penjualan-untuk-meningkatkan-efisiensi-bisnis-anda\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Data Penjualan: Apa Itu &#038; Tips Mengelolanya"}]},{"@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\/7eb92f40eba8b038fa552ba13cd6d88a","name":"Hendra Gunawan","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\/Hendra-Gunawan-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Hendra-Gunawan-96x96.webp","caption":"Hendra Gunawan"},"description":"Hendra adalah ERP Specialist senior dengan pengalaman lebih dari 6 tahun dalam implementasi dan optimasi sistem ERP di berbagai industri. Ia berspesialisasi dalam menulis artikel seputar implementasi dan integrasi modul bisnis, sistem ERP untuk manajemen operasional, dan otomatisasi proses bisnis.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"jobTitle":"Hendra Gunawan - Senior Content Writer - ERP Specialist","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/hendra-gunawan\/"}]}},"focus_keyword":"Data penjualan","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/39806","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\/162"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=39806"}],"version-history":[{"count":13,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/39806\/revisions"}],"predecessor-version":[{"id":187602,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/39806\/revisions\/187602"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/139432"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=39806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=39806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=39806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}