{"id":8925,"date":"2023-10-06T09:30:54","date_gmt":"2023-10-06T02:30:54","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=8925"},"modified":"2026-04-14T14:24:20","modified_gmt":"2026-04-14T07:24:20","slug":"apa-itu-saas-erp-software","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/","title":{"rendered":"SaaS ERP: Software Berbasis Cloud yang Dibutuhkan Perusahaan"},"content":{"rendered":"<p>Sekarang ini, banyak bisnis dituntut serba cepat dan efisien. Bukan cuma soal bekerja lebih keras tapi bagaimana proses bisa berjalan lebih rapi, terhubung, dan efisien agar mencapai hasil yang maksimal.<\/p>\n<p>Di sinilah ERP (<em>Enterprise Resource Planning<\/em>) berperan. ERP adalah sistem yang membantu mengelola berbagai proses bisnis mulai dari keuangan, operasional, hingga stok dalam satu sistem. Dengan sistem yang terintegrasi, pekerjaan menjadi lebih terkontrol dan keputusan bisa diambil dengan lebih akurat.<\/p>\n<p>Dalam implementasinya, perusahaan juga perlu mempertimbangkan beberapa opsi seperti penggunaan<a href=\"https:\/\/www.hashmicro.com\/id\/blog\/cloud-erp-adalah\/\"> cloud ERP<\/a> atau ERP berbasis SaaS (<em>Software as a Service<\/em>) yang akan dipilih. Setiap pilihan memiliki keunggulan tersendiri dan keputusan yang diambil akan sangat memengaruhi efektivitas operasional serta arah pertumbuhan bisnis ke depan.<\/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 aria-level=\"1\"><a href=\"#cloud-saas-erp\">Pengetahuan tentang <i>cloud <\/i>SaaS ERP<\/a> adalah langkah pertama dalam membuat keputusan yang baik untuk bisnis Anda.<\/li>\n<li aria-level=\"1\"><a href=\"#kelebihan-cloud-saas-erp\">Kelebihan <em>cloud<\/em> SaaS ERP<\/a> meliputi fleksibilitas dalam penggunaan dan memilih aplikasi, biaya operasional yang lebih rendah, dan penggunaan yang mudah.<\/li>\n<li aria-level=\"1\">Data <em>real-time<\/em> membantu perusahaan mengambil keputusan dengan lebih cepat dan akurat.<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><span data-sheets-root=\"1\" data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:513,&quot;3&quot;:{&quot;1&quot;:0},&quot;12&quot;:0}\"><\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script>\n<div id=\"toc_container\">\n<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\n<\/div>\n<h2 id=\"apa-itu-saas\"><span id=\"cloud-saas-erp\"><b>Apa Itu <\/b><b>SaaS<\/b><b>?<\/b><\/span><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-119908 size-full\" title=\"Apa Itu SaaS?\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas.jpg\" alt=\"SaaS ERP\" width=\"1200\" height=\"650\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas.jpg 1200w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-300x163.jpg 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-1024x555.jpg 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-768x416.jpg 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-150x81.jpg 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-696x377.jpg 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-1068x580.jpg 1068w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-775x420.jpg 775w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/saas-software-as-a-service\/\">SaaS<\/a> (Software as a Service) adalah model penyediaan software yang diakses melalui internet. Artinya, aplikasi tidak perlu diinstal di komputer pengguna karena seluruh sistem dijalankan dan dikelola langsung oleh penyedia layanan di server mereka.<\/p>\n<p>Dengan cara ini, pengguna bisa langsung menggunakan aplikasi kapan saja selama terhubung dengan internet tanpa harus repot instalasi atau pengaturan teknis di perangkat sendiri.<\/p>\n<p>Bagi perusahaan, model SaaS memberikan kemudahan karena tidak perlu mengelola infrastruktur IT yang kompleks. Selain itu beban pemeliharaan, pembaruan sistem, hingga kebutuhan server dan hardware juga menjadi jauh lebih ringan karena semuanya sudah ditangani oleh penyedia layanan.<\/p>\n<h2 id=\"apa-itu-saas-erp\"><b>Lalu, Apa Perbedaannya dengan SaaS ERP?<\/b><span id=\"pengetahuan-tentang-cloud-saas-erp\"><\/span><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-119907 size-full\" title=\"Apa Itu SaaS ERP?\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-erp.jpg\" alt=\"SaaS ERP\" width=\"1200\" height=\"650\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-erp.jpg 1200w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-erp-300x163.jpg 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-erp-1024x555.jpg 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-erp-768x416.jpg 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-erp-150x81.jpg 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-erp-696x377.jpg 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-erp-1068x580.jpg 1068w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/apa-itu-saas-erp-775x420.jpg 775w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>Secara sederhana, SaaS adalah model distribusi software yang diakses melalui internet, sedangkan SaaS ERP adalah aplikasi ERP yang menggunakan model SaaS untuk mengelola seluruh proses bisnis dalam satu sistem terintegrasi.<\/p>\n<p>Artinya, tidak semua SaaS adalah ERP. SaaS bisa berupa aplikasi tunggal seperti tools akuntansi atau manajemen proyek, sementara SaaS ERP dirancang untuk menghubungkan berbagai fungsi bisnis mulai dari keuangan, operasional, hingga SDM dalam satu platform yang saling terintegrasi.<\/p>\n<p>Inilah alasan mengapa banyak perusahaan mulai beralih ke solusi seperti<a href=\"https:\/\/www.hashmicro.com\/id\/blog\/software-erp-terbaik\/\"> platform ERP<\/a> subscription karena sistem ini mampu menyederhanakan operasional sekaligus memberikan visibilitas bisnis yang lebih menyeluruh dalam satu ekosistem digital.<\/p>\n<h2><strong>Jenis Model Implementasi ERP<\/strong><\/h2>\n<p>Berikut beberapa model ERP diantaranya:<\/p>\n<h3>1. On-Premise ERP<\/h3>\n<p>Model ini mengharuskan perusahaan menginstal dan menjalankan sistem ERP di server internal milik sendiri. Artinya, seluruh pengelolaan sistem mulai dari maintenance hingga keamanan ditangani oleh tim internal. Model ini cocok untuk perusahaan yang membutuhkan kontrol penuh terhadap data dan sistem.<\/p>\n<h3>2. Cloud ERP (SaaS ERP)<\/h3>\n<p>Pada model ini, sistem ERP di-host di server milik penyedia layanan dan diakses melalui internet. Perusahaan tidak perlu mengelola infrastruktur sendiri, sehingga lebih praktis dan efisien. Model ini cocok untuk bisnis yang ingin implementasi cepat dan fleksibilitas tinggi.<\/p>\n<h3>3. Hybrid ERP<\/h3>\n<p>Hybrid ERP merupakan kombinasi antara on-premise dan cloud. Beberapa sistem dijalankan secara internal, sementara yang lain menggunakan cloud. Model ini biasanya dipilih oleh perusahaan yang ingin tetap mempertahankan sistem lama namun mulai beralih ke teknologi yang lebih modern.<\/p>\n<h2><strong>Kelebihan dan Kekurangan SaaS ERP<\/strong><\/h2>\n<p>Model SaaS ERP ini tentunya memiliki kelebihan dan kekurangan untuk bisnis atau perusahaan Anda, diantarnya:<span id=\"kelebihan-cloud-saas-erp\"><\/span><\/p>\n<h3><span id=\"kelebihan-cloud-saas-erp\"><strong>1. Kelebihan dari SaaS ERP<\/strong><\/span><\/h3>\n<p>Bukan tanpa alasan bahwa SaaS ERP mendominasi perkembangan IT saat ini. <i>Software as a Service<\/i> (SaaS) memiliki banyak keunggulan, antara lain:<\/p>\n<ul>\n<li aria-level=\"1\">Dengan sistem berbasis cloud, Anda bisa langsung menggunakan aplikasi tanpa perlu instalasi di komputer, selama terhubung dengan internet kapan pun dan di mana pun.<\/li>\n<li aria-level=\"1\">Perusahaan tidak perlu mengembangkan sistem sendiri karena semua sudah disediakan oleh vendor sehingga Anda bisa fokus pada penggunaan dan pengelolaan data tanpa memikirkan teknis aplikasi.<\/li>\n<li aria-level=\"1\">Dari sisi biaya, SaaS membantu mengurangi pengeluaran operasional terutama untuk maintenance sistem, perbaikan, dan pengelolaan infrastruktur IT.<\/li>\n<li aria-level=\"1\">Selain itu, SaaS ERP memberikan fleksibilitas lebih karena perusahaan bisa memilih, menambah, atau berhenti menggunakan aplikasi sesuai kebutuhan bisnis dengan lebih mudah.<\/li>\n<\/ul>\n<h3><strong>2. Kekurangan dari SaaS ERP<\/strong><\/h3>\n<p>Tak hanya merasakan keunggulan saat menggunakan layanan ini, namun juga terdapat beberapa kekurangan yang dapat Anda rasakan saat menggunakan SaaS yang kurang sesuai dengan kebutuhan bisnis Anda:<\/p>\n<ul>\n<li aria-level=\"1\">SaaS ERP biasanya memiliki keterbatasan dalam kustomisasi sehingga mungkin kurang cocok untuk bisnis dengan proses yang sangat spesifik atau kompleks.<\/li>\n<li aria-level=\"1\">Beberapa penyedia SaaS juga belum tentu memiliki fitur yang benar-benar lengkap sehingga penting bagi perusahaan untuk memastikan kebutuhan utamanya sudah terpenuhi sebelum memilih.<\/li>\n<li aria-level=\"1\">Dikarenakan berbasis cloud, perusahaan perlu mempercayakan data dan sistemnya kepada vendor sehingga aspek keamanan dan perlindungan data menjadi hal yang sangat penting untuk diperhatikan.<\/li>\n<\/ul>\n<p>Jadi, penting bagi perusahaan Anda untuk memilih penyedia layanan yang menyediakan kustomisasi sesuai dengan kebutuhan bisnis dan fitur lengkap.<\/p>\n<h2><strong>Cara Kerja SaaS ERP dalam Operasional Perusahaan<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-192349\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/ChatGPT-Image-Apr-14-2026-01_51_45-PM.webp\" alt=\"saas erp\" width=\"1024\" height=\"1536\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/ChatGPT-Image-Apr-14-2026-01_51_45-PM.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/ChatGPT-Image-Apr-14-2026-01_51_45-PM-200x300.webp 200w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/ChatGPT-Image-Apr-14-2026-01_51_45-PM-683x1024.webp 683w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/ChatGPT-Image-Apr-14-2026-01_51_45-PM-768x1152.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/ChatGPT-Image-Apr-14-2026-01_51_45-PM-280x420.webp 280w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/ChatGPT-Image-Apr-14-2026-01_51_45-PM-150x225.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/ChatGPT-Image-Apr-14-2026-01_51_45-PM-300x450.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/ChatGPT-Image-Apr-14-2026-01_51_45-PM-696x1044.webp 696w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>SaaS ERP bekerja dengan mengintegrasikan seluruh proses bisnis dalam satu sistem berbasis cloud yang dapat diakses secara real-time. Dengan sistem ini, setiap data dan aktivitas dari berbagai divisi akan saling terhubung, sehingga operasional perusahaan menjadi lebih efisien dan transparan.<\/p>\n<ul>\n<li>Data dari berbagai divisi seperti keuangan, operasional, dan HR, dikumpulkan dalam satu sistem terpusat.<\/li>\n<li>Data tersebut diperbarui secara real-time sehingga semua tim selalu bekerja dengan informasi yang sama.<\/li>\n<li>Sistem mengotomatiskan berbagai proses bisnis seperti pencatatan transaksi dan pelaporan.<\/li>\n<li>Setiap divisi dapat mengakses sistem sesuai kebutuhan dan wewenangnya melalui internet.<\/li>\n<li>Manajemen dapat memantau kinerja bisnis dan mengambil keputusan berdasarkan data yang akurat.<\/li>\n<\/ul>\n<h2 id=\"tips-menentukan-sistem-erp-yang-tepat-bagi-bisnis\"><b>Tips Menentukan Sistem ERP yang Tepat untuk Kebutuhan Bisnis Anda<\/b><\/h2>\n<p>Setelah memahami apa itu cloud ERP, manfaat, hingga kelebihan dan kekurangannya, langkah berikutnya adalah memilih solusi yang paling sesuai. Perlu diingat, kebutuhan ERP setiap perusahaan bisa berbeda tergantung jenis bisnis dan industrinya, sehingga keputusan ini harus dipertimbangkan secara matang.<\/p>\n<p>Berikut beberapa tips yang bisa Anda jadikan acuan:<\/p>\n<ul>\n<li>Lakukan analisis menyeluruh terhadap proses bisnis yang berjalan saat ini sebelum berinvestasi dalam sistem ERP. Identifikasi kendala dan kelemahan di setiap divisi, serta libatkan seluruh tim termasuk IT agar kebutuhan bisnis dapat dipetakan dengan jelas dan solusi ERP yang dipilih benar-benar relevan.<\/li>\n<li>Pilih vendor atau partner ERP yang memiliki reputasi baik, kredibel, dan berpengalaman. Partner yang tepat akan membantu memastikan implementasi berjalan lancar dan memberikan hasil yang optimal bagi bisnis Anda.<\/li>\n<li>Pastikan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-sistem-erp\/\">sistem ERP yang dipilih mudah digunakan<\/a> dan memiliki tampilan yang user-friendly, sehingga karyawan dapat beradaptasi dengan cepat tanpa hambatan berarti.<\/li>\n<li>Perhatikan struktur biaya secara menyeluruh, termasuk kebutuhan hardware dan jaringan pendukung. Selain itu, pahami juga model harga yang ditawarkan baik itu biaya awal maupun berlangganan agar Anda bisa mendapatkan solusi yang paling efisien secara biaya.<\/li>\n<\/ul>\n<h2 id=\"kesimpulan\"><b>Kesimpulan<\/b><\/h2>\n<p>Jika bisnis Anda masih terkendala akses data, proses manual, atau biaya sistem yang sulit diprediksi, ERP subscription bisa menjadi opsi yang lebih praktis dan fleksibel. Dengan sistem berbasis cloud, Anda dapat mengakses layanan kapan saja tanpa perlu repot mengelola instalasi dan pemeliharaan sendiri.<\/p>\n<p>Agar hasilnya benar-benar sesuai kebutuhan, pastikan Anda memilih solusi ERP yang relevan dengan proses bisnis, mudah digunakan, dan efisien dari sisi biaya.<\/p>\n<p>Sebelum mengambil keputusan, sebaiknya<a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\"> pelajari dulu<\/a> kebutuhan perusahaan Anda dan bandingkan pilihan yang tersedia secara lebih cermat.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/id\/sistem-erp?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/erp-descriptive.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/erp-descriptive.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/01\/erp-descriptive-m.webp\" alt=\"ERP_Definisi\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script>\n<script>  window._mfq = window._mfq || [];\r\n  (function() {\r\n    var mf = document.createElement(\"script\");\r\n    mf.type = \"text\/javascript\"; mf.defer = true;\r\n    mf.src = \"\/\/cdn.mouseflow.com\/projects\/5e05f34e-ba01-471c-b61c-6edd2d7e05ed.js\";\r\n    document.getElementsByTagName(\"head\")[0].appendChild(mf);\r\n  })();<\/script>\n<h2><strong>Pertanyaan Seputar SaaS ERP<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa itu ERP akuntansi?<\/strong><\/summary>\n<p>Enterprise Resource Planning (ERP) adalah suatu sistem, paket software atau aplikasi terintegrasi yang menghubungkan semua aspek aktivitas perusahaan atau organisasi seperti akuntansi, pemasaran, sumber daya manusia, manufaktur, rantai pasok, informasi konsumen dan lain-lain.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Beberapa modul ERP yang umum antara lain:<\/strong><\/summary>\n<p>(1)Asset Managament (Manajemen aset) (2)Financial Accounting (Fico atau keuangan) (3)Human Resources (SDM) (4)Industry-Spesific Solutions (5)Plant Maintenance (6)Production Planning (Perencanaan produksi) (7)Quality Management (Manajemen mutu) (8)Sales and Distribution (Penjualan dan distribusi) (9)Inventory Management (Manajemen persediaan)<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Kapan ERP diperlukan?<\/strong><\/summary>\n<p>Perusahaan dikatakan membutuhkan ERP saat semuanya dituntut serba cepat. Perusahaan yang berkembang dengan pesat pasti akan membutuhkan software ini dikarenakan proses produksi dan keluar masuk barang di perusahaan yang semakin cepat pula. Kadang tenaga manual tidak akan bisa mengimbangi perputaran barang tersebut.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Siapa saja yang menggunakan ERP?<\/strong><\/summary>\n<p>(1)Manufaktur. (2)Distribusi. (3)Layanan profesional. (4)Konstruksi. (5)Layanan industri. (6)Bisnis Jasa. (7)Kesehatan. (8)Dan banyak lagi.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"Apa itu cloud ERP?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Cloud ERP sendiri merupakan adopsi teknologi yang menjadikan internet sebagai pusat pengelolaan data dan aplikasi, di mana perusahaan memiliki hak akses (login). Sistem ERP ini juga memberikan perusahaan-perusahaan kebebasan dalam penggunaan hardware, agility, dan fungsionalitas yang selalu update. Cloud ERP bukan hanya solusi yang trendi dan inovatif, namun juga model bisnis yang relatif baru yang berlaku untuk semua jenis perusahaan.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Berapa harga skema software ERP?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Harga skema software ERP tentu beragam tergantung dari perusahaanya. <a href='https:\/\/www.hashmicro.com\/id\/offer\/download-skema-harga-software-erp\/?utm_source'=blog>Skema software HashMicro <\/a> merupakan sebuah software yang menyediakan software ERP dengan harga terjangkau\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Mengapa pemilihan sistem ERP adalah perkara yang serius?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Pemilihan jenis <a href='https:\/\/www.hashmicro.com\/id\/sistem-erp'>Sistem ERP<\/a> jelas merupakan suatu perkara yang serius, karena akan menentukan kemana dana investasi perusahaan dialokasikan. Baik plus dan minus, dari kedua solusi ini perlu Anda pahami dan pertimbangkan. Sebagai langkah awal, kenali dulu apa itu cloud\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sekarang ini, banyak bisnis dituntut serba cepat dan efisien. Bukan cuma soal bekerja lebih keras tapi bagaimana proses bisa berjalan lebih rapi, terhubung, dan efisien agar mencapai hasil yang maksimal. Di sinilah ERP (Enterprise Resource Planning) berperan. ERP adalah sistem yang membantu mengelola berbagai proses bisnis mulai dari keuangan, operasional, hingga stok dalam satu sistem. [&hellip;]<\/p>\n","protected":false},"author":162,"featured_media":119909,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":{"0":"post-8925","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-erp"},"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>Apa Itu SaaS ERP? Pengertian, Kelebihan dan Kelemahannya<\/title>\n<meta name=\"description\" content=\"SaaS atau ERP subscription adalah salah satu dari model solusi cloud based ERP yang dapat meningkatkan efisiensi suatu perusahaan.\" \/>\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\/apa-itu-saas-erp-software\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SaaS ERP: Software Berbasis Cloud yang Dibutuhkan Perusahaan\" \/>\n<meta property=\"og:description\" content=\"SaaS atau ERP subscription adalah salah satu dari model solusi cloud based ERP yang dapat meningkatkan efisiensi suatu perusahaan.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/\" \/>\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-10-06T02:30:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-14T07:24:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/banner-artikel-apa-itu-saas-erp.jpg\" \/>\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\/jpeg\" \/>\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=\"8 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\/apa-itu-saas-erp-software\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/\"},\"author\":{\"name\":\"Hendra Gunawan\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/7eb92f40eba8b038fa552ba13cd6d88a\"},\"headline\":\"SaaS ERP: Software Berbasis Cloud yang Dibutuhkan Perusahaan\",\"datePublished\":\"2023-10-06T02:30:54+00:00\",\"dateModified\":\"2026-04-14T07:24:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/\"},\"wordCount\":1297,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/banner-artikel-apa-itu-saas-erp.jpg\",\"articleSection\":[\"ERP\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/\",\"name\":\"Apa Itu SaaS ERP? Pengertian, Kelebihan dan Kelemahannya\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/banner-artikel-apa-itu-saas-erp.jpg\",\"datePublished\":\"2023-10-06T02:30:54+00:00\",\"dateModified\":\"2026-04-14T07:24:20+00:00\",\"description\":\"SaaS atau ERP subscription adalah salah satu dari model solusi cloud based ERP yang dapat meningkatkan efisiensi suatu perusahaan.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/banner-artikel-apa-itu-saas-erp.jpg\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/banner-artikel-apa-itu-saas-erp.jpg\",\"width\":1200,\"height\":650,\"caption\":\"saas erp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SaaS ERP: Software Berbasis Cloud yang Dibutuhkan Perusahaan\"}]},{\"@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":"Apa Itu SaaS ERP? Pengertian, Kelebihan dan Kelemahannya","description":"SaaS atau ERP subscription adalah salah satu dari model solusi cloud based ERP yang dapat meningkatkan efisiensi suatu perusahaan.","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\/apa-itu-saas-erp-software\/","og_locale":"id_ID","og_type":"article","og_title":"SaaS ERP: Software Berbasis Cloud yang Dibutuhkan Perusahaan","og_description":"SaaS atau ERP subscription adalah salah satu dari model solusi cloud based ERP yang dapat meningkatkan efisiensi suatu perusahaan.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2023-10-06T02:30:54+00:00","article_modified_time":"2026-04-14T07:24:20+00:00","og_image":[{"width":1200,"height":650,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/banner-artikel-apa-itu-saas-erp.jpg","type":"image\/jpeg"}],"author":"Hendra Gunawan","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Hendra Gunawan","Estimasi waktu membaca":"8 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/"},"author":{"name":"Hendra Gunawan","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/7eb92f40eba8b038fa552ba13cd6d88a"},"headline":"SaaS ERP: Software Berbasis Cloud yang Dibutuhkan Perusahaan","datePublished":"2023-10-06T02:30:54+00:00","dateModified":"2026-04-14T07:24:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/"},"wordCount":1297,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/banner-artikel-apa-itu-saas-erp.jpg","articleSection":["ERP"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/","name":"Apa Itu SaaS ERP? Pengertian, Kelebihan dan Kelemahannya","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/banner-artikel-apa-itu-saas-erp.jpg","datePublished":"2023-10-06T02:30:54+00:00","dateModified":"2026-04-14T07:24:20+00:00","description":"SaaS atau ERP subscription adalah salah satu dari model solusi cloud based ERP yang dapat meningkatkan efisiensi suatu perusahaan.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/banner-artikel-apa-itu-saas-erp.jpg","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2023\/10\/banner-artikel-apa-itu-saas-erp.jpg","width":1200,"height":650,"caption":"saas erp"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/apa-itu-saas-erp-software\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"SaaS ERP: Software Berbasis Cloud yang Dibutuhkan Perusahaan"}]},{"@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":"SaaS ERP","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/8925","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=8925"}],"version-history":[{"count":23,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/8925\/revisions"}],"predecessor-version":[{"id":192350,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/8925\/revisions\/192350"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/119909"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=8925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=8925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=8925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}