{"id":191895,"date":"2026-04-06T11:38:33","date_gmt":"2026-04-06T04:38:33","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=191895"},"modified":"2026-04-06T13:27:39","modified_gmt":"2026-04-06T06:27:39","slug":"payroll-wfh","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/","title":{"rendered":"Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya"},"content":{"rendered":"<p><i><span style=\"font-weight: 400;\">Payroll<\/span><\/i><span style=\"font-weight: 400;\"> WFH merupakan sistem manajemen penggajian yang akan diperlukan untuk memastikan penggajian karyawan perusahaan Anda yang bekerja secara WFH sesuai dengan mereka berhak terima.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Tentunya dalam perhitungan jam kerja karyawan WFH akan memiliki sedikit perbedaan dengan pekerja WFO karena dipengaruhi ruang lingkungan kerja serta pengawasan disiplin yang berbeda juga.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Fleksibilitas waktu yang lebih banyak yang dimiliki karyawan WFH perlu menjadi perhatian dalam hal ini juga agar karyawan tetap mendapatkan gaji yang sepadan mengikuti keluwesan pekerjaannya.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Melalui artikel ini, Anda akan memahami apa itu <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\"> WFH, perbedaannya dengan sistem manajemen penggajian WFO, serta tips-tips menerapkannya di lingkungan perusahaan.<\/span><\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #8a0e19; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#payroll\"><em>Payroll<\/em> WFH<\/a> adalah sistem manajemen penggajian untuk mengantisipasi kebutuhan pekerja yang bekerja secara WFH, menyesuaikan dengan lingkungan kerja mereka di rumah.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#dalam\">Perbedaan utama sistem <em>payroll<\/em> WFH dengan WFO<\/a> yaitu adanya perbedaan dalam pencatatan kehadiran, tunjangan atau natura yang diterima, serta alur pengajuan lembur.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#pph\">Manajemen <em>payroll<\/em> WFH sebaiknya tidak dibedakan <em>software-<\/em>nya<\/a> dengan manajemen <em>payroll<\/em> WFO, karena keduanya sebenarnya beracuan pada peraturan ketenagakerjaan yang sama.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\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<h2><b>Apa yang Dimaksud dengan <\/b><b><i>Payroll<\/i><\/b><b> WFH?<\/b><\/h2>\n<p><i><span style=\"font-weight: 400;\"><span id=\"payroll\">Payroll<\/span><\/span><\/i><span style=\"font-weight: 400;\"> WFH merupakan sistem manajemen penggajian yang dikhususkan untuk menangani pembayaran gaji pekerja yang bekerja dari rumah. Ketika karyawan\u00a0 perusahaan Anda bekerja dari rumah, tentunya pemantauan seberapa lama pekerja bekerja akan lebih sulit dilakukan karena tidak hadir fisik di kantor.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sistem penggajian pekerja WFH memiliki beberapa fitur pengawasan yang menyesuaikan dengan fleksibilitas waktu kerja karyawan dari rumah yang mengikuti <\/span><a href=\"https:\/\/jdih.kemnaker.go.id\/berita\/detail\/apakah-ada-ketentuan-yang-mengatur-secara-khusus-mengenai-waktu-kerja-waktu-istirahat-pada-sektor-pertambangan-dan-energi\"><span style=\"font-weight: 400;\">Undang-Undang Nomor 13 Tahun 2003 tentang Ketenagakerjaan<\/span><\/a> <span style=\"font-weight: 400;\">mengenai pola dan skema kerja mingguan. Pekerja tetap diwajibkan untuk mengikuti skema kerja 7 jam x 6 hari atau 8 jam x 5 hari dan lembur dibatasi hingga 4 jam dalam sehari.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pengawasan jam kerja atau lembur karyawan Anda akan dipantau melalui bukti <\/span><i><span style=\"font-weight: 400;\">digital check-in<\/span><\/i><span style=\"font-weight: 400;\"> dan <\/span><i><span style=\"font-weight: 400;\">check-out<\/span><\/i><span style=\"font-weight: 400;\"> yang dilakukan karyawan untuk melihat lama kerja karyawan dalam sehari.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dengan begitu, lama kerja karyawan dapat diverifikasi dengan tepat dan <\/span><i><span style=\"font-weight: 400;\">software <\/span><\/i><span style=\"font-weight: 400;\">otomatis meng-<\/span><i><span style=\"font-weight: 400;\">update<\/span><\/i><span style=\"font-weight: 400;\"> data penggajian atau deduksi semisal karyawan tidak memenuhi lama kerja yang sudah ditentukan.<\/span><\/p>\n<h2><b>Apa Bedanya dengan Sistem Manajemen <\/b><b><i>Payroll<\/i><\/b><b> WFO?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\"><span id=\"dalam\">Dalam praktik ketenagakerjaan, sistem <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\"> karyawan WFH dengan WFO sebenarnya hampir sama, hanya terdapat beberapa penyesuaian tambahan pada penggajian pekerja daring.<\/span><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Bahkan, sebenarnya kedua jenis sistem <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\"> tersebut dapat berada di satu <\/span><i><span style=\"font-weight: 400;\">software<\/span><\/i><span style=\"font-weight: 400;\"> HRM saja dan hanya dibedakan <\/span><i><span style=\"font-weight: 400;\">section<\/span><\/i><span style=\"font-weight: 400;\"> saja. Untuk itu, berikut merupakan perbandingan dari keduanya yang Anda dapat pahami:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Pencatatan kehadiran dan jam kerja:<\/b><span style=\"font-weight: 400;\"> Pada karyawan WFH, verifikasi kehadiran dan lama kerja akan dilakukan melalui portal <\/span><i><span style=\"font-weight: 400;\">self-service<\/span><\/i><span style=\"font-weight: 400;\"> karyawan WFH, di mana karyawan bisa melakukan <\/span><i><span style=\"font-weight: 400;\">digital check-in<\/span><\/i><span style=\"font-weight: 400;\"> dan <\/span><i><span style=\"font-weight: 400;\">check-out<\/span><\/i><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"> yang memperlihatkan hari, tanggal, dan jam mulai serta jam selesai kerja.<\/span><\/span><\/span><\/span>\n<p>Sedangkan, untuk karyawan WFO, verifikasi kehadiran atau absen akan dilakukan dengan <i>check-in face recognition<\/i> yang hanya bisa dilakukan di koordinat lokasi kantor atau absensi <i>check-in<\/i> biasa.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Mekanisme pengajuan lembur dan persetujuannya:<\/b><span style=\"font-weight: 400;\"> Pengajuan dan persetujuan lembur WFH dimulai dari penetapan <\/span><i><span style=\"font-weight: 400;\">core hours<\/span><\/i><span style=\"font-weight: 400;\"> kerja, kemudian dilanjutkan dengan melakukan <\/span><i><span style=\"font-weight: 400;\">check-in<\/span><\/i><span style=\"font-weight: 400;\"> digital dan <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/contoh-timesheet-kerja-karyawan\/\"><span style=\"font-weight: 400;\">mengisi <\/span><i><span style=\"font-weight: 400;\">timesheet<\/span><\/i><span style=\"font-weight: 400;\"> untuk <\/span><i><span style=\"font-weight: 400;\">tracking<\/span><\/i><span style=\"font-weight: 400;\"> waktu<\/span><\/a><span style=\"font-weight: 400;\">, lalu sistem <em>payroll<\/em> akan mengecek kekonsistenan berdasarkan <\/span><i><span style=\"font-weight: 400;\">attendance<\/span><\/i><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"> jam kerja normal.<\/span><\/span><\/span><\/span><\/span>&nbsp;\n<p>Setelah itu, <i>supervisor<\/i> karyawan akan melakukan <i>approval<\/i> di sistem dan data lembur karyawan akan dengan otomatis terupdate di <i>software<\/i>.<\/p>\n<p>Untuk karyawan WFO akan dimulai dari penetapan jadwal kerja, yang kemudian karyawan akan melakukan <i>check-in<\/i> atau <i>check-out onsite<\/i> untuk kemudian dicek anomali lama kerja oleh sistem.Kemudian, <i>supervisor<\/i> akan memvalidasi lembur lewat sistem dan sistem memperbarui perhitungan berdasarkan lembur karyawan.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Pengelolaan <\/b><b><i>reimbursement<\/i><\/b><b>:<\/b> <i><span style=\"font-weight: 400;\">Payroll<\/span><\/i><span style=\"font-weight: 400;\"> WFH harus meng<\/span><i><span style=\"font-weight: 400;\">cover<\/span><\/i><span style=\"font-weight: 400;\"> segala bentuk manfaat atau natura yang memang benar-benar dipakai untuk karyawan <\/span><i><span style=\"font-weight: 400;\">online<\/span><\/i><span style=\"font-weight: 400;\"> seperti biaya <\/span><i><span style=\"font-weight: 400;\">bandwidth<\/span><\/i><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"> Wifi atau penggunaan kuota seluler serta pemakaian listrik untuk bekerja.<\/span><\/span>Pada sistem ini, karyawan akan melakukan <i>upload invoice<\/i> tagihan listrik atau pulsa agar bisa <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/ketahui-indikator-kecurangan-dalam-sistem-reimburse\/\">mengklaim <i>reimburse<\/i> perusahaan<\/a>.\n<p>Sebaliknya, sistem <i>payroll<\/i> karyawan <i>onsite<\/i> berfokus pada <i>reimburse<\/i> uang makan jika pekerja tersebut merupakan pekerja lapangan yang tidak bisa mendapat <i>catering<\/i> kantor sesuai dengan PMK 66 yang memperbolehkan kupon makan.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Tunjangan karyawan:<\/b><span style=\"font-weight: 400;\"> Tunjangan karyawan WFH menekankan pada natura seperti komputer, listrik, ataupun pulsa yang berguna untuk menunjang pekerjaan, sedangkan tunjangan karyawan WFO lebih ke tunjangan <\/span><i><span style=\"font-weight: 400;\">transport<\/span><\/i><span style=\"font-weight: 400;\">, makan, dan tugas lapangan.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Anda dapat mengingat bahwa sebenarnya manajemen <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\"> karyawan WFH dengan\u00a0 WFO memiliki basis yang sama karena keduanya beracuan pada PPh 21 dalam pengelolaan ketenagakerjaannya.<\/span><\/p>\n<h2><b>Mengapa Sebaiknya Manajemen <\/b><b><i>Payroll<\/i><\/b><b> WFH dan WFO Berada di <\/b><b><i>Software <\/i><\/b><b>yang Sama?<\/b><\/h2>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-end-to-end\/\"><span style=\"font-weight: 400;\">Pengelolaan <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\"> di Indonesia<\/span><\/a><span style=\"font-weight: 400;\"> berpatokan pada <span id=\"pph\">PPh 21 dan peraturan Kemnaker yang sama, baik untuk karyawan WFH maupun WFO.\u00a0<\/span><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Jadi, untuk dasar seperti potongan iuran BPJS, PPh 21, JHT, dan JP sebenarnya sama saja untuk kedua jenis karyawan tersebut. Yang membedakan hanyalah tunjangan karyawan kantor dengan karyawan lapangan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Penggunaan <\/span><i><span style=\"font-weight: 400;\">software<\/span><\/i><span style=\"font-weight: 400;\"> HRM terintegrasi untuk manajemen <\/span><i><span style=\"font-weight: 400;\">payroll <\/span><\/i><span style=\"font-weight: 400;\">dapat menaungi kasus ini ke dua <\/span><i><span style=\"font-weight: 400;\">section<\/span><\/i><span style=\"font-weight: 400;\"> yang berbeda. Jika manajemen <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\"> WFH dan WFO dipisah di <\/span><i><span style=\"font-weight: 400;\">software<\/span><\/i><span style=\"font-weight: 400;\"> atau <\/span><i><span style=\"font-weight: 400;\">template<\/span><\/i><span style=\"font-weight: 400;\"> yang berbeda bisa menimbulkan kebingungan dan malah hanya memperbanyak beban kerja yang tidak diperlukan.<\/span><\/p>\n<h2><b>Tips-Tips Efektif dalam Menerapkan Manajemen <\/b><b><i>Payroll<\/i><\/b><b> WFH<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-191901\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/infografis-tips-manajemen-payroll-wfh-hashmicro.webp\" alt=\"Infografis tips manajemen payroll WFH\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/infografis-tips-manajemen-payroll-wfh-hashmicro.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/infografis-tips-manajemen-payroll-wfh-hashmicro-300x200.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/infografis-tips-manajemen-payroll-wfh-hashmicro-1024x683.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/infografis-tips-manajemen-payroll-wfh-hashmicro-768x512.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/infografis-tips-manajemen-payroll-wfh-hashmicro-630x420.webp 630w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/infografis-tips-manajemen-payroll-wfh-hashmicro-150x100.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/infografis-tips-manajemen-payroll-wfh-hashmicro-696x464.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/infografis-tips-manajemen-payroll-wfh-hashmicro-1068x712.webp 1068w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Penerapan manajemen <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\"> WFH dapat membuat bingung pada awalnya karena sering dianggap sama-sama bentuk alur penggajian karyawan.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Untuk menghindari implementasinya terhambat, khususnya jika perusahaan Anda baru-baru ini mengadakan WFH, Anda bisa menerapkan tips berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Buat kebijakan WFH dan sosialisasikan dengan jelas:<\/b><span style=\"font-weight: 400;\"> Agar karyawan mengetahui batasan dan lingkup kerjanya dengan jelas, sosialisasikan peraturan seperti waktu <\/span><i><span style=\"font-weight: 400;\">cut-off<\/span><\/i><span style=\"font-weight: 400;\"> absensi, <\/span><i><span style=\"font-weight: 400;\">core hours<\/span><\/i><span style=\"font-weight: 400;\">, dan perhitungan lembur dengan jelas, kalau perlu dilakukan beberapa kali untuk memastikan semua karyawan sudah mengerti jelas.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Gunakan <\/b><b><i>timesheet<\/i><\/b><b> yang konsisten:<\/b><span style=\"font-weight: 400;\"> Format <\/span><i><span style=\"font-weight: 400;\">timesheet<\/span><\/i><span style=\"font-weight: 400;\"> yang konsisten akan mencegah kesalahan dalam <\/span><i><span style=\"font-weight: 400;\">tracking<\/span><\/i><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"> kehadiran karyawan, jadi pastikan manajemen HR perusahaan Anda menetapkan format timesheet yang sama untuk seluruh lapisan karyawan perusahaan.<\/span><\/span><\/span><\/span>\n<p><i>Timesheet<\/i> digital yang <i>reliable<\/i> juga akan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/compliance-audit-failure\/\">berpengaruh terhadap audit kepatuhan perusahaan<\/a>. Jika perusahaan memiliki cukup bukti <i>timesheet<\/i> kehadiran yang tidak tumpang tindih, potensi hasil audit akan menjadi positif.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Sediakan <\/b><b><i>section digital check-in<\/i><\/b><b>\/<\/b><b><i>check-out<\/i><\/b><b> kerja karyawan:<\/b><span style=\"font-weight: 400;\"> Bagian ini penting untuk diperhatikan untuk memastikan karyawan Anda melakukan WFH sesuai dengan ketentuan jam kerja kantor. Jika informasi lama kerja dapat dipantau, maka penggajian WFH akan akurat.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Integrasikan data karyawan dengan data kehadiran serta modul keuangan kantor menggunakan <\/b><b><i>software<\/i><\/b><b> HRM:<\/b><span style=\"font-weight: 400;\"> Manajemen karyawan WFH dan WFO yang bersamaan bisa menimbulkan kebingungan jika dilakukan melalui pencatatan <\/span><i><span style=\"font-weight: 400;\">spreadsheet<\/span><\/i><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"> manual, atau bahkan ada risiko kesalahan pencatatan.<\/span><\/span>\n<p><span style=\"font-weight: 400;\">Maka dari itu, <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/software-payroll-terbaik\/\"><span style=\"font-weight: 400;\">penggunaan <\/span><i><span style=\"font-weight: 400;\">software<\/span><\/i><span style=\"font-weight: 400;\"> HRM<\/span><\/a><span style=\"font-weight: 400;\"> dapat mencegah timbulnya risiko ini karena menjamin integrasi data kehadiran karyawan dengan modul akuntansi perusahaan yang secara otomatis menghitung perhitungan gaji lengkap dengan potongan komponen pajak.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Terakhir, implementasikan <\/b><b><i>audit trail<\/i><\/b><b> yang bertanggung jawab:<\/b><span style=\"font-weight: 400;\"> Semua perubahan data dan adanya anomali aktivitas wajib tercatat di sistem. Misal, jika ada perubahan pada data karyawan, pengubah data harus tercantum dalam data agar proses audit HR nantinya akan mudah dilakukan dan mencegah adanya audit negatif jika sewaktu-waktu proses audit eksternal dilakukan di lingkungan perusahaan.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Implementasi manajemen <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\"> WFH yang baik dan efektif akan memastikan performa karyawan tetap terjaga serta karyawan tetap puas dalam bekerja.<\/span><\/p>\n<h2><b>Kesimpulan<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Manajemen <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\"> WFH bukan merupakan manajemen penggajian HR yang jauh berbeda dengan manajemen <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\"> karyawan <\/span><i><span style=\"font-weight: 400;\">onsite<\/span><\/i><span style=\"font-weight: 400;\"> atau WFO. Meski begitu, penting untuk Anda sebagai tim HR untuk mengetahui beberapa perbedaan komponennya seperti adanya penambahan pengharusan <\/span><i><span style=\"font-weight: 400;\">check-in<\/span><\/i><span style=\"font-weight: 400;\"> dan <\/span><i><span style=\"font-weight: 400;\">check-out <\/span><\/i><span style=\"font-weight: 400;\">secara digital, <\/span><i><span style=\"font-weight: 400;\">timesheet<\/span><\/i><span style=\"font-weight: 400;\"> digital, serta jenis tunjangan atau natura yang diterima oleh karyawan WFH.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sebagai tim <\/span><i><span style=\"font-weight: 400;\">payroll<\/span><\/i><span style=\"font-weight: 400;\">, pastikan Anda selalu mengomunikasikan setiap perubahan peraturan perusahaan dengan departemen HR Anda dan juga selalu memantau <\/span><i><span style=\"font-weight: 400;\">update<\/span><\/i><span style=\"font-weight: 400;\"> terkini berbagai macam Undang-Undang Ketenagakerjaan yang dapat memengaruhi kebijakan penggajian pekerja WFH.<\/span><\/p>\n<h2><strong>FAQ Seputar <em>Payroll<\/em> WFH<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Apa itu WFH bagi pekerja <em>freelance<\/em>?<\/strong><\/summary>\n<p>WFH bagi <em>freelancer<\/em> sedikit berbeda dengan WFH karyawan biasa. Karyawan <em>freelance<\/em> tidak terikat dengan jam kerja yang ketat tetapi lama pekerjaan dan penggajiannya berpatokan pada setiap proyek yang dikerjakan karyawan dari rumah.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah <em>payroll<\/em> termasuk dalam bidang HR?<\/strong><\/summary>\n<p>Ya, <em>payroll<\/em> karyawan merupakan salah satu pekerjaan utama yang dilakukan departemen perusahaan dengan bekerja sama dengan tim <em>Finance<\/em> atau <em>Accounting<\/em> perusahaan dalam menangani keuangan perusahaan untuk penggajian dan tunjangan.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah PNS yang bekerja secara WFH tetap mendapatkan uang makan?<\/strong><\/summary>\n<p>Ya, PNS tetap mendapatkan tunjangan uang makan seperti karyawan pada umumnya dan hal itu sudah diatur oleh PMK No. 72\/PMK.05\/2016 asalkan PNS mematuhi masuk jam kerja dan melakukan presensi secara <em>online<\/em>.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Apakah BPJS juga tetap sama untuk WFH?<\/strong><\/summary>\n<p>Perhitungan BPJS pekerja WFH secara detail dan komponennya tetap sama dengan perhitungan karyawan WFO. Perhitungan seperti JHT dan JP BPJS untuk keduanya sama-sama sebesar 2% yang ditanggung karyawan dan 3.7% yang ditanggung perusahaan. Perhitungan JP pun juga sama-sama 1% ditanggung karyawan dan 2% oleh perusahaan.<\/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 WFH bagi pekerja freelance?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"WFH bagi freelancer sedikit berbeda dengan WFH karyawan biasa. Karyawan freelance tidak terikat dengan jam kerja yang ketat tetapi lama pekerjaan dan penggajiannya berpatokan pada setiap proyek yang dikerjakan karyawan dari rumah.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah payroll termasuk dalam bidang HR?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Ya, payroll karyawan merupakan salah satu pekerjaan utama yang dilakukan departemen perusahaan dengan bekerja sama dengan tim Finance atau Accounting perusahaan dalam menangani keuangan perusahaan untuk penggajian dan tunjangan.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah PNS yang bekerja secara WFH tetap mendapatkan uang makan?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Ya, PNS tetap mendapatkan tunjangan uang makan seperti karyawan pada umumnya dan hal itu sudah diatur oleh PMK No. 72\/PMK.05\/2016 asalkan PNS mematuhi masuk jam kerja dan melakukan presensi secara online.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah BPJS juga tetap sama untuk WFH?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Perhitungan BPJS pekerja WFH secara detail dan komponennya tetap sama dengan perhitungan karyawan WFO. Perhitungan seperti JHT dan JP BPJS untuk keduanya sama-sama sebesar 2% yang ditanggung karyawan dan 3.7% yang ditanggung perusahaan. Perhitungan JP pun juga sama-sama 1% ditanggung karyawan dan 2% oleh perusahaan.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Payroll WFH merupakan sistem manajemen penggajian yang akan diperlukan untuk memastikan penggajian karyawan perusahaan Anda yang bekerja secara WFH sesuai dengan mereka berhak terima. Tentunya dalam perhitungan jam kerja karyawan WFH akan memiliki sedikit perbedaan dengan pekerja WFO karena dipengaruhi ruang lingkungan kerja serta pengawasan disiplin yang berbeda juga.\u00a0 Fleksibilitas waktu yang lebih banyak yang [&hellip;]<\/p>\n","protected":false},"author":218,"featured_media":191898,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[6],"tags":[],"class_list":{"0":"post-191895","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-hrm"},"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>Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya &#187; HashMicro Indonesia<\/title>\n<meta name=\"description\" content=\"Payroll WFH merupakan sistem penggajian karyawan yang bekerja dari rumah. Pahami perbedaannya dengan payroll WFO dan tips menerapkannya.\" \/>\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\/payroll-wfh\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya\" \/>\n<meta property=\"og:description\" content=\"Payroll WFH merupakan sistem penggajian karyawan yang bekerja dari rumah. Pahami perbedaannya dengan payroll WFO dan tips menerapkannya.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Indonesia\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hashmicro\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-06T04:38:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-06T06:27:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/payroll-wfh-hashmicro.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Reno Wicaksana\" \/>\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=\"Reno Wicaksana\" \/>\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\/payroll-wfh\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/\"},\"author\":{\"name\":\"Reno Wicaksana\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/0d3340f667908102d8894da18f80732e\"},\"headline\":\"Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya\",\"datePublished\":\"2026-04-06T04:38:33+00:00\",\"dateModified\":\"2026-04-06T06:27:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/\"},\"wordCount\":1343,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/payroll-wfh-hashmicro.webp\",\"articleSection\":[\"HRM\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/\",\"name\":\"Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya &#187; HashMicro Indonesia\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/payroll-wfh-hashmicro.webp\",\"datePublished\":\"2026-04-06T04:38:33+00:00\",\"dateModified\":\"2026-04-06T06:27:39+00:00\",\"description\":\"Payroll WFH merupakan sistem penggajian karyawan yang bekerja dari rumah. Pahami perbedaannya dengan payroll WFO dan tips menerapkannya.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/payroll-wfh-hashmicro.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/payroll-wfh-hashmicro.webp\",\"width\":1920,\"height\":1080,\"caption\":\"Payroll WFH\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya\"}]},{\"@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\/0d3340f667908102d8894da18f80732e\",\"name\":\"Reno Wicaksana\",\"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\/Reno-Wicaksana-96x96.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Reno-Wicaksana-96x96.webp\",\"caption\":\"Reno Wicaksana\"},\"description\":\"Reno adalah HRM Specialist dan senior content writer dengan pengalaman lebih dari 5 tahun di industri teknologi dan manajemen sumber daya manusia. Secara konsisten mengangkat topik artikel seputar performance management, rekrutmen dan pengembangan SDM, manajemen talenta, dan sistem HRIS untuk pengelolaan karyawan.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/william-w-88353a262\/\"],\"gender\":\"Laki-laki\",\"knowsAbout\":[\"HRM\",\"HRIS\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Senior Content Writer on HRIS\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/author\/reno-wicaksana\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya &#187; HashMicro Indonesia","description":"Payroll WFH merupakan sistem penggajian karyawan yang bekerja dari rumah. Pahami perbedaannya dengan payroll WFO dan tips menerapkannya.","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\/payroll-wfh\/","og_locale":"id_ID","og_type":"article","og_title":"Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya","og_description":"Payroll WFH merupakan sistem penggajian karyawan yang bekerja dari rumah. Pahami perbedaannya dengan payroll WFO dan tips menerapkannya.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2026-04-06T04:38:33+00:00","article_modified_time":"2026-04-06T06:27:39+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/payroll-wfh-hashmicro.webp","type":"image\/webp"}],"author":"Reno Wicaksana","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Reno Wicaksana","Estimasi waktu membaca":"8 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/"},"author":{"name":"Reno Wicaksana","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/0d3340f667908102d8894da18f80732e"},"headline":"Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya","datePublished":"2026-04-06T04:38:33+00:00","dateModified":"2026-04-06T06:27:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/"},"wordCount":1343,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/payroll-wfh-hashmicro.webp","articleSection":["HRM"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/","name":"Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya &#187; HashMicro Indonesia","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/payroll-wfh-hashmicro.webp","datePublished":"2026-04-06T04:38:33+00:00","dateModified":"2026-04-06T06:27:39+00:00","description":"Payroll WFH merupakan sistem penggajian karyawan yang bekerja dari rumah. Pahami perbedaannya dengan payroll WFO dan tips menerapkannya.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/payroll-wfh-hashmicro.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2026\/04\/payroll-wfh-hashmicro.webp","width":1920,"height":1080,"caption":"Payroll WFH"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/payroll-wfh\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Manajemen Payroll WFH: Simak Pengertian serta Tips Menerapkannya"}]},{"@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\/0d3340f667908102d8894da18f80732e","name":"Reno Wicaksana","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\/Reno-Wicaksana-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Reno-Wicaksana-96x96.webp","caption":"Reno Wicaksana"},"description":"Reno adalah HRM Specialist dan senior content writer dengan pengalaman lebih dari 5 tahun di industri teknologi dan manajemen sumber daya manusia. Secara konsisten mengangkat topik artikel seputar performance management, rekrutmen dan pengembangan SDM, manajemen talenta, dan sistem HRIS untuk pengelolaan karyawan.","sameAs":["https:\/\/www.linkedin.com\/in\/william-w-88353a262\/"],"gender":"Laki-laki","knowsAbout":["HRM","HRIS"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Senior Content Writer on HRIS","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/reno-wicaksana\/"}]}},"focus_keyword":"payroll wfh","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/191895","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\/218"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=191895"}],"version-history":[{"count":6,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/191895\/revisions"}],"predecessor-version":[{"id":191908,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/191895\/revisions\/191908"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/191898"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=191895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=191895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=191895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}