{"id":25900,"date":"2024-05-01T09:35:17","date_gmt":"2024-05-01T02:35:17","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=25900"},"modified":"2025-08-20T09:22:40","modified_gmt":"2025-08-20T02:22:40","slug":"timesheet-karyawan","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/","title":{"rendered":"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Timesheet karyawan mungkin terdengar sudah tidak asing lagi bagi Anda yang berada pada bidang HR (<\/span><i><span style=\"font-weight: 400;\">Human Resource<\/span><\/i><span style=\"font-weight: 400;\">). Seorang HR juga membutuhkan <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/manajemen-human-resource\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">sistem HRIS<\/span><\/a><span style=\"font-weight: 400;\"> untuk mengintegrasikan jadwal karyawan secara otomatis dan melakukannya dengan instan. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Memiliki fitur-fitur seperti integrasi dengan <a href=\"https:\/\/www.hashmicro.com\/id\/aplikasi-pembuat-jadwal-kerja\">aplikasi pembuat jadwal kerja<\/a>, manajemen pembagian gaji, daftar kehadiran, manajemen pengajuan cuti, dan lain sebagainya. Dari fitur-fitur tersebut, maka dapat mempermudah tim HR dalam mengatur segala jadwal karyawannya dengan terstruktur secara sistematis dan otomatis.\u00a0\u00a0<\/span><\/p>\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> <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 id=\"1\"><b>Pengertian Timesheet Karyawan<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Umumnya, pengertian timesheet sendiri adalah suatu alat atau <\/span><i><span style=\"font-weight: 400;\">tools<\/span><\/i><span style=\"font-weight: 400;\"> dalam bentuk fisik maupun digital yang berfungsi untuk mencatat, menghitung, melacak jumlah jam kerja karyawan pada sebuah perusahaan. Dengan perhitungan waktu karyawan,\u00a0 maka perusahaan dapat mengetahui kapan karyawan memulai pekerjaan mereka dan jam berapa pekerjaan itu telah selesai. Tentunya alat ini menggunakan sistem untuk menyederhanakan pengerjaannya.<\/span><\/p>\n<h2 id=\"2\"><b>Fungsi Timesheet Karyawan<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Berdasarkan fungsi secara umum dari perhitungan waktu, terdapat fungsi-fungsi lainnya yang memudahkan HR untuk memantau cara kerja karyawan. Fungsi dari timesheet karyawan sebagai berikut:<\/span><\/p>\n<h3 id=\"21\"><span style=\"font-weight: 400;\">1. <em>Time management<\/em> karyawan<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Fungsi dari manajemen waktu karyawan adalah untuk memantau jam kerja karyawan yang nantinya sebagai perhitungan gaji. Fungsi ini juga untuk mengukur efektivitas kerja karyawan. Manajemen waktu karyawan dapat terdiri dari pelacak jam masuk dan keluar karyawan, berapa lama karyawan yang mengambil cuti, serta memperhitungkan jam lembur karyawan melalui timesheet karyawan.<\/span><\/p>\n<h3 id=\"22\"><span style=\"font-weight: 400;\">2. Data dalam proses <\/span><i><span style=\"font-weight: 400;\">payroll <\/span><\/i><span style=\"font-weight: 400;\">karyawan<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Pembagian gaji karyawan menjadi salah satu hal yang hak milik yang akan didapat karyawan dan perusahaan wajib memberikannya. Kesepakatan pembagian gaji telah ditentukan saat awal pembagian. Perusahaan harus melakukan pembagian upah dengan transparan. Data pengambilan cuti dan lembur juga dapat tercatat pada <em>tools<\/em> ini untuk memudahkan dalam perhitungan pembagian gaji.<\/span><\/p>\n<h3 id=\"23\"><span style=\"font-weight: 400;\">3. Informasi mengenai kinerja karyawan<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Selain dari kedua fungsi tersebut, melalui timesheet juga dapat menginformasikan mengenai kemampuan dari kinerja karyawan. Dengan mempertimbangkan pembagian tugas tambahan sebelum manajer memberikan tugas tambahan. Memantau berdasarkan hasil timesheet karyawan, manajer dapat melihat apakah pekerjaan yang dikerjakan sudah sesuai dengan gaji, atau belum.<\/span><\/p>\n<style>\r\n.cta-in-article-image .desktop-banner{\r\n    display: none;\r\n    text-align: center;\r\n}\r\n.cta-in-article-image .desktop-mobile{\r\n    display: block;\r\n    text-align: center;\r\n    width: 100%;\r\n}\r\n\t.cta-in-article a {\r\n\t\tfont-size: 0px !important;\r\n\t\tcolor: #fff; \r\n\t\tpadding: 0px !important; \r\n\t\tborder-radius: 0px !important; \r\n\t\tdisplay: block !important; \r\n\t\ttext-decoration: none; \r\n\t}\r\n\t\r\n\t.cta-in-article {\r\n\t\tmargin: 0px !important;\r\n\t\tpadding: 0px !important;\r\n\t\tbox-shadow: none !important;\r\n\t}\r\n\t\r\n@media (min-width: 650px) {\r\n    .cta-in-article-image .desktop-banner {\r\n        display: block!important;\r\n    }\r\n}\r\n@media (min-width: 650px) {\r\n   .cta-in-article-image .desktop-mobile {\r\n        display: none!important;\r\n    }\r\n}\r\n<\/style>\r\n<div class=\"cta-in-article-image\">\r\n\t<a href=\"https:\/\/www.hashmicro.com\/id\/offer\/download-skema-harga-software-erp?blog&utm_source=blog&medium=banner-article\" target=\"_blank\" rel=\"noopener\">\r\n\t\t<div id=\"desktop-banner-container\">\r\n\t\t\t<div class=\"desktop-banner\">\r\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/02.Skema-Harga-web-resized.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t<div id=\"mobile-banner-container\">\r\n\t\t\t<div class=\"desktop-mobile\">\r\n\t\t\t\t<img decoding=\"async\" width=\"372\" height=\"465\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/02.-Skema-Harga-Mobile-372px.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/a>\r\n<\/div>\n<h2 id=\"3\"><b>Peran Penting dalam Perusahaan<\/b><\/h2>\n<figure id=\"attachment_26051\" aria-describedby=\"caption-attachment-26051\" style=\"width: 1060px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-26051 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/03\/timesheet.webp\" alt=\"\" width=\"1060\" height=\"706\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/03\/timesheet.webp 1060w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/03\/timesheet-300x200.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/03\/timesheet-1024x682.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/03\/timesheet-768x512.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/03\/timesheet-150x100.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/03\/timesheet-696x464.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/03\/timesheet-631x420.webp 631w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><figcaption id=\"caption-attachment-26051\" class=\"wp-caption-text\">Sumber: pinterest.com<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">Setelah membaca mengenai beberapa fungsi diatas, sekarang akan membahas mengenai peran penting yang diberikan. Peran penting secara umum adalah untuk membantu HR dalam memantau cara kerja karyawannya. Namun, ada peran penting lainnya\u00a0 yaitu:<\/span><\/p>\n<h3 id=\"31\"><span style=\"font-weight: 400;\">1. Sebagai alat untuk manajemen waktu<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Melalui rekaman pekerjaan karyawan dari timesheet, tim HR dapat mengetahui sejauh mana efektivitas pekerjaan dari masing-masing karyawan. Selain itu, dari timesheet karyawan juga dapat mengetahui berapa banyak pekerjaan yang sudah terselesaikan. Memantau dan mengontrol waktu lembur karyawan juga dapat melalui timesheet ini.<\/span><\/p>\n<h3 id=\"32\"><span style=\"font-weight: 400;\">2. Salah satu komponen perhitungan gaji<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Gaji merupakan hal pokok yang wajib diberikan kepada karyawan sebagai upah atas hasil kerjanya. Upah yang akan diterima dapat meliputi hasil dari kerja harian, uang lembur, dan pengambilan jatah cuti mereka. Karyawan yang sering melakukan lembur akan menerima upah yang jauh berbeda dengan karyawan yang sering mengambil hari cutinya dari masing-masing gaji pokok. Sistem pemberian gaji harus menggunakan sistem yang transparan dan pada slip gaji harus tertera hitungan jam lembur, pengambilan cuti. Bertujuan agar manajer atau HR tidak perlu menjelaskan dan karyawan tidak bertanya-tanya mengenai pembagian gaji karyawan secara detail.<\/span><\/p>\n<h3 id=\"33\"><span style=\"font-weight: 400;\">3. Sebagai pertimbangan informasi kinerja karyawan<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">HRD dapat memberikan pengamatan serta masukan setiap kinerja yang masing-masing karyawan melalui hasil rekaman data dari timesheet. Tim HR dapat mengetahui berapa banyak tugas yang sudah diselesaikan dan berapa banyak lagi tugas yang masih tersisa dari <\/span><i><span style=\"font-weight: 400;\">deadline<\/span><\/i><span style=\"font-weight: 400;\">. Sehingga, tim HR juga bisa mengetahui apakah tugas yang diberikan terlalu berat atau kinerja kerja karyawan yang kurang terstruktur?<\/span><\/p>\n<h2 id=\"4\"><b>Jenis-jenis Timesheet Karyawan<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-20801 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2021\/10\/075708700_1436519609-Time-Management.jpg\" alt=\"Timesheet\" width=\"640\" height=\"360\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2021\/10\/075708700_1436519609-Time-Management.jpg 640w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2021\/10\/075708700_1436519609-Time-Management-300x169.jpg 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2021\/10\/075708700_1436519609-Time-Management-150x84.jpg 150w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Selain paparan fungsi dan peran dari timesheet karyawan, pada bagian ini akan membahas mengenai jenis-jenisnya yang meliputi dari:<\/span><\/p>\n<h3 id=\"41\"><span style=\"font-weight: 400;\">1. Berdasarkan bentuknya<\/span><\/h3>\n<p>Pada jenis yang pertama adalah berdasarkan bentuknya yang terbagi menjadi dua bagian lagi, yaitu:<\/p>\n<h4><span style=\"font-weight: 400;\">1. Timesheet kertas\/<\/span><i><span style=\"font-weight: 400;\">hard copy<\/span><\/i><\/h4>\n<p><span style=\"font-weight: 400;\">Pada jenis yang pertama ini adalah dalam bentuk kertas atau yang berwujud nyata dan dapat dipegang (<\/span><i><span style=\"font-weight: 400;\">hard copy<\/span><\/i><span style=\"font-weight: 400;\">). Timesheet dalam bentuk <\/span><i><span style=\"font-weight: 400;\">hard copy<\/span><\/i><span style=\"font-weight: 400;\"> paling pertama yang muncul dengan sistem yang sederhana. Namun, kekurangan pada bentuk ini proses pendataan yang terbilang relatif lama dan tingkat terjadi <\/span><i><span style=\"font-weight: 400;\">human error<\/span><\/i><span style=\"font-weight: 400;\"> cukup tinggi. Selain itu, timesheet dalam bentuk kertas akan sulit untuk disimpan ditempat yang aman serta memiliki resiko hilang yang cukup tinggi. Biasanya timesheet kertas dikerjakan secara manual, jadi dapat terbilang kurang praktis dengan jenis ini.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">2. Timesheet digital<\/span><i><span style=\"font-weight: 400;\">\/soft copy<\/span><\/i><\/h4>\n<p><span style=\"font-weight: 400;\">Sedangkan untuk jenis timesheet digital adalah timesheet yang melakukan pembaruan dengan perkembangan teknologi. Keuntungan memakai <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/aplikasi-timesheet\/\">aplikasi timesheet<\/a> digital dapat menghemat waktu dan memudahkan pengerjaan karena dengan sistem yang sudah digitalisasi. Jadi, sistem ini dapat terbilang sangat efektif daripada sistem sebelumnya karena dapat meminimalisirkan terjadinya <\/span><i><span style=\"font-weight: 400;\">human error<\/span><\/i><span style=\"font-weight: 400;\">. Selain itu, dengan sistem yang digital, data dapat mudah disimpan dan dapat dicari kembali.<\/span><\/p>\n<h3 id=\"42\"><span style=\"font-weight: 400;\">2. Berdasarkan fungsinya<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Jenis yang kedua adalah berdasarkan fungsi dari timesheet karyawan yang terdapat empat fungsi, yaitu:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">Timesheet mingguan<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Pada fungsi yang pertama ini biasanya dipakai oleh perusahaan yang memiliki proyek atau pekerjaan dalam jangka waktu pendek. Penerapan timesheet mingguan ini biasanya diterapkan oleh perusahaan kecil yang memiliki mobilitas tinggi. Penggunaan ini biasanya untuk memantau budget pada masing-masing pekerjaan.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">2. Fungsi untuk bulanan<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Timesheet fungsi bulanan ini adalah yang paling sering dipakai oleh perusahaan-perusahaan. Timesheet bulanan berfungsi untuk mengamati kinerja pekerja agar lebih efektif dan efisien.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">3. Timesheet pekerja shift<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Timesheet jenis ini biasanya untuk membuat jadwal kerja pegawai sesuai shift yang sudah tertera. Agar memudahkan pembuatan jadwal <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/shift-adalah\/\">kerja shift<\/a> sekaligus memantau pekerja yang bekerja pada shift tersebut. Tidak ada yang berbeda dengan jenis timesheet lainnya, hanya saja untuk timesheet ini membagi tiga waktu shift check in dan check out.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">4. Fungsi untuk per-proyek<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Berguna untuk tiap pekerja yang sedang mengerjakan proyek tertentu. Sehingga HRD dapat memantau dan mengontrol para pekerja apakah mengerjakan proyek tersebut dengan benar atau tidak. Dengan menggunakan <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/project-based-erp\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">sistem ERP <\/span><\/a><span style=\"font-weight: 400;\">berbasis proyek<\/span><span style=\"font-weight: 400;\"> dapat memanajemen inventaris dengan optimal, melakukan pengelolaan pelanggan secara otomatis. Selain itu, dapat melakukan proses <\/span><i><span style=\"font-weight: 400;\">procurement<\/span><\/i><span style=\"font-weight: 400;\"> yang terkontrol dan mempermudah pengambilan keputusan.<\/span><\/p>\n<h2 id=\"5\"><b>Manfaat Timesheet Karyawan<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Beberapa pengetahuan mengenai timesheet staf sudah ada, namun masih ada manfaat yang belum tersampaikan. Manfaatnya antara lain:<\/span><\/p>\n<h3 id=\"51\"><span style=\"font-weight: 400;\">1. Proses manajemen waktu lebih optimal<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Dari terpantaunya jam kerja karyawan, maka proses manajemen waktu lebih optimal. Hal ini juga memudahkan perusahaan untuk mengontrol dan mengamati masing-masing karyawan yang bekerja dengan ketentuan atau SOP yang berlaku.\u00a0<\/span><\/p>\n<h3 id=\"52\"><span style=\"font-weight: 400;\">2. Memudahkan dalam perhitungan gaji<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Pemberian gaji kepada karyawan berdasarkan perhitungan dari jumlah waktu kerja. Oleh karena itu, sistem ini dapat memudahkan dalam pengerjaan HR dalam perhitungan gaji dan dilakukan secara transparan. Pentingnya rincian pada slip gaji seperti hitungan jam kerja, lembur, cuti, dan keterangan yang lainnya agar karyawan dapat memahami dari mana gaji mereka berasal serta perhitungannya.<\/span><\/p>\n<h3 id=\"53\"><span style=\"font-weight: 400;\">3. Mengetahui kinerja karyawan<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Penjelasan tentang kinerja karyawan akan terlihat dari keefektifan dalam bekerja. Melalui timesheet ini, tim HR dapat mengetahui dan memantau kemampuan setiap karyawannya dalam melakukan pekerjaan yang sudah diberikan.\u00a0<\/span><\/p>\n<h2 id=\"6\"><b>Contoh Aplikasi Manajemen Waktu Bagi Karyawan Perusahaan\u00a0<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-43381\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/3-25.png\" alt=\"\" width=\"700\" height=\"360\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/3-25.png 700w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/3-25-300x154.png 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/3-25-150x77.png 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/10\/3-25-696x358.png 696w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Setelah Anda mengetahui pengertian dan manfaat aplikasi manajemen waktu. Selanjutnya Anda juga perlu mengetahui contoh aplikasi manajemen waktu yang dapat Anda manfaatkan untuk meningkatkan produktivitas dan manajemen jam kerja menjadi lebih optimal. Beberapa contoh <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/aplikasi-roster-kerja-terbaik\/\">aplikasi shift kerja<\/a> tersebut antara lain sebagai berikut:<\/span><\/p>\n<h3 id=\"61\"><span style=\"font-weight: 400;\">1. Software Timesheet HashMicro\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Salah satu <\/span><i><span style=\"font-weight: 400;\">software<\/span><\/i><span style=\"font-weight: 400;\"> ERP terbaik dari HashMicro yaitu,<\/span><a href=\"https:\/\/www.hashmicro.com\/id\/manajemen-timesheet\"><span style=\"font-weight: 400;\"> Software Timesheet HashMicro<\/span><\/a><span style=\"font-weight: 400;\"> yang dapat Anda gunakan dalam memantau dan melacak penggunaan waktu karyawan per proyek dengan lebih mudah. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">S<i>oftware<\/i><\/span><span style=\"font-weight: 400;\"> ini Anda dapat membuat laporan analisis dengan lengkap melalui satu platform yang praktis. <\/span><span style=\"font-weight: 400;\">Software ini<\/span><span style=\"font-weight: 400;\"> juga lengkap dengan <\/span><i><span style=\"font-weight: 400;\">time tracking<\/span><\/i><span style=\"font-weight: 400;\">, sehingga dapat bekerja dengan memasang satu aplikasi khusus pada setiap laptop karyawan. Setelah itu, aplikasi tersebut akan terintegrasi dengan aplikasi <\/span><i><span style=\"font-weight: 400;\">timesheet<\/span><\/i><span style=\"font-weight: 400;\"> milik HR. Pada aplikasi tersebut, HR akan melihat berapa lama karyawan bekerja setiap harinya secara <\/span><i><span style=\"font-weight: 400;\">real-time<\/span><\/i><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Selain itu, <\/span><span style=\"font-weight: 400;\">Software Timesheet HashMicro<\/span><span style=\"font-weight: 400;\"> juga lengkap dengan fitur-fitur unggulan mulai dari time tracking yang mampu memantau jam kerja, waktu meeting, lembur, untuk menganalisis produktivitas karyawan. Hingga fitur <\/span><i><span style=\"font-weight: 400;\">timesheet reporting <\/span><\/i><span style=\"font-weight: 400;\">yang akan memberikan Anda rincian <\/span><i><span style=\"font-weight: 400;\">timesheet<\/span><\/i><span style=\"font-weight: 400;\"> karyawan lewat laporan komprehensif dengan berbagai diagram secara instan.<\/span><\/p>\n<h3 id=\"62\"><span style=\"font-weight: 400;\">2. Toggl<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Toggl menggunakan metode pomodoro, yang mana sebuah teknik manajemen waktu yang mengharuskan karyawan fokus secara optimal pada periode waktu tertentu. Konsepnya adalah membuat blok waktu 25 menit kerja terkonsentrasi, 5 menit istirahat, kemudian 25 menit kerja terkonsentrasi, dan 5 menit istirahat lagi. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Aplikasi Toggl yang berfungsi sebagai pengatur waktu yang mengatur tugas atau mengatur pomodoro. Aplikasi Toggl akan memudahkan karyawan untuk melacak berapa banyak waktu yang mereka habiskan untuk suatu tugas. Pengguna bisa melihat hasil laporan harian, mingguan atau bulanan yang terekam dalam aplikasi, apakah karyawan fokus bekerja atau istirahat lebih lama.<\/span><\/p>\n<h3 id=\"63\"><span style=\"font-weight: 400;\">3. Rescue Time<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Dengan menggunakan aplikasi Rescue Time\u00a0 berarti karyawan akan dipantau secara produktif saat melakukan tugas kantor. Hal tersebut karena\u00a0 aplikasi ini berbasis web yang mampu melacak semua aktivitas dunia maya baik di perangkat maupun komputer. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Aplikasi secara teratur mengirimkan pembaruan yang menunjukkan data harian, mingguan, bulanan, atau bahkan tahunan. Pengguna juga dapat melacak tingkat produktivitas harian mereka, apakah mereka lebih cenderung menghabiskan untuk kegiatan produktif atau tidak terkait pekerjaan.<\/span><\/p>\n<h3 id=\"64\"><span style=\"font-weight: 400;\">4. Todoist<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Todoist adalah layanan pengelola tugas yang diluncurkan oleh Amir Salifehendic pada tahun 2007 dan kini memiliki lebih dari 5 juta pengguna. <\/span><span style=\"font-weight: 400;\">Model bisnis pada aplikasi ini adalah <\/span><i><span style=\"font-weight: 400;\">freemium<\/span><\/i><span style=\"font-weight: 400;\"> yang layanannya bisa karyawan gunakan secara gratis. Akan tetapi, Anda harus membayar untuk menikmati <\/span><span style=\"font-weight: 400;\">fitur<\/span><span style=\"font-weight: 400;\"> lengkapnya. <\/span><span style=\"font-weight: 400;\">Todoist dapat diakses melalui browser dan aplikasi juga tersedia di berbagai sistem operasi, Windows, Chrome, macOS, dan bahkan sebagai ekstensi browser.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Todoist lengkap dengan <\/span><i><span style=\"font-weight: 400;\">share extensions<\/span><\/i><span style=\"font-weight: 400;\"> dan <\/span><i><span style=\"font-weight: 400;\">today widget<\/span><\/i><span style=\"font-weight: 400;\"> di <\/span><i><span style=\"font-weight: 400;\">Notifications Center<\/span><\/i><span style=\"font-weight: 400;\">.\u00a0 <\/span><i><span style=\"font-weight: 400;\">Share extensions<\/span><\/i> <span style=\"font-weight: 400;\">berguna untuk menambahkan entri dari Safari atau aplikasi lain. Setelah dibuka dari Safari, Todoist akan segera menggunakan nama tab dan tautan sebagai nama login yang dapat diklik. Todoist tersedia di hampir semua sistem operasi, yang membuatnya mudah diakses, dan fiturnya yang <\/span><i><span style=\"font-weight: 400;\">simple <\/span><\/i><span style=\"font-weight: 400;\">sehingga memudahkan untuk mengatur daftar tugas yang disimpan di Todoist.<\/span><\/p>\n<h2 id=\"7\"><b>Kesimpulan<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Berdasarkan penjelasan timesheet karyawan yang secara umum berfungsi sebagai kemudahan tim HR dalam memantau para pekerja mulai dari cara bekerja hingga pembagian gaji. Semua pekerjaan karyawan dapat terpantau hanya dengan melalui timesheet.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Gunakan <a href=\"https:\/\/www.hashmicro.com\/id\/manajemen-timesheet\" target=\"_blank\" rel=\"noopener\">software <\/a><\/span><a href=\"https:\/\/www.hashmicro.com\/id\/manajemen-timesheet\"><span style=\"font-weight: 400;\">timesheet<\/span>\u00a0HashMicro<\/a><span style=\"font-weight: 400;\"> yang memiliki manfaat kemudahan satu platform untuk memantau anggaran banyak proyek, meningkatkan akurasi, memberikan laporan yang komprehensif setiap analisisnya, dan dapat memantau kinerja staf untuk perbaikan di\u00a0 masa mendatang. Dapatkan <a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\" target=\"_blank\" rel=\"noopener\">demo gratis<\/a> sekarang juga!<\/span><\/p>\n<a href=\"https:\/\/www.hashmicro.com\/id\/manajemen-timesheet?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/03\/Timesheet-Management-System.png.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2022\/03\/Timesheet-Management-System.png.webp\" data-mobile-src=\"\" alt=\"TimesheetManagementSystem\" 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<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"Apa Itu Timesheet Karyawan?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Pengertian timesheet sendiri adalah suatu alat atau tools dalam bentuk fisik maupun digital yang berfungsi untuk mencatat, menghitung, melacak jumlah jam kerja karyawan pada sebuah perusahaan. Dengan timesheet karyawan,\u00a0 maka perusahaan dapat mengetahui kapan karyawan memulai pekerjaan mereka dan jam berapa pekerjaan itu telah selesai. Tentunya alat ini menggunakan sistem untuk menyederhanakan pengerjaannya.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apa saja fungsi Timesheet Karyawan\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"1. Time management karyawan\n2. Data dalam proses payroll karyawan\n3. Informasi mengenai kinerja karyawan\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Timesheet karyawan mungkin terdengar sudah tidak asing lagi bagi Anda yang berada pada bidang HR (Human Resource). Seorang HR juga membutuhkan sistem HRIS untuk mengintegrasikan jadwal karyawan secara otomatis dan melakukannya dengan instan. Memiliki fitur-fitur seperti integrasi dengan aplikasi pembuat jadwal kerja, manajemen pembagian gaji, daftar kehadiran, manajemen pengajuan cuti, dan lain sebagainya. Dari fitur-fitur [&hellip;]<\/p>\n","protected":false},"author":161,"featured_media":139930,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[780],"tags":[],"class_list":{"0":"post-25900","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-timesheet"},"acf":{"post_reviewer":null},"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>Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda<\/title>\n<meta name=\"description\" content=\"Timesheet karyawan adalah suatu alat dalam bentuk fisik maupun digital yang berfungsi untuk mencatat jumlah jam kerja pada sebuah 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\/timesheet-karyawan\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda\" \/>\n<meta property=\"og:description\" content=\"Timesheet karyawan adalah suatu alat dalam bentuk fisik maupun digital yang berfungsi untuk mencatat jumlah jam kerja pada sebuah perusahaan.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/\" \/>\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=\"2024-05-01T02:35:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-20T02:22:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/05\/Ketahui_Fungsi_Timesheet_Karyawan_untuk_Manajemen_Karyawan_Anda.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=\"Jonathan Kurniawan\" \/>\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=\"Jonathan Kurniawan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 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\/timesheet-karyawan\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/\"},\"author\":{\"name\":\"Jonathan Kurniawan\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/029ac06d135cf8424dfa4f3cb3fef6c5\"},\"headline\":\"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda\",\"datePublished\":\"2024-05-01T02:35:17+00:00\",\"dateModified\":\"2025-08-20T02:22:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/\"},\"wordCount\":1649,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/05\/Ketahui_Fungsi_Timesheet_Karyawan_untuk_Manajemen_Karyawan_Anda.jpg\",\"articleSection\":[\"Timesheet\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/\",\"name\":\"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/05\/Ketahui_Fungsi_Timesheet_Karyawan_untuk_Manajemen_Karyawan_Anda.jpg\",\"datePublished\":\"2024-05-01T02:35:17+00:00\",\"dateModified\":\"2025-08-20T02:22:40+00:00\",\"description\":\"Timesheet karyawan adalah suatu alat dalam bentuk fisik maupun digital yang berfungsi untuk mencatat jumlah jam kerja pada sebuah perusahaan.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/05\/Ketahui_Fungsi_Timesheet_Karyawan_untuk_Manajemen_Karyawan_Anda.jpg\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/05\/Ketahui_Fungsi_Timesheet_Karyawan_untuk_Manajemen_Karyawan_Anda.jpg\",\"width\":1200,\"height\":650,\"caption\":\"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda\"}]},{\"@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\/029ac06d135cf8424dfa4f3cb3fef6c5\",\"name\":\"Jonathan Kurniawan\",\"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\/Jonathan-Kurniawan-3-96x96.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jonathan-Kurniawan-3-96x96.webp\",\"caption\":\"Jonathan Kurniawan\"},\"description\":\"Jonathan adalah seorang praktisi dalam bidang procurement, TMS, dan supply chain dengan pengalaman 5 tahun. Spesialis dalam mengulas topik seputar manajemen vendor, budget control procurement, otomatisasi proses pengadaan barang, dan analisis procurement. Tulisannya secara konsisten mendukung pengambilan keputusan bisnis yang lebih strategis.\",\"sameAs\":[\"https:\/\/www.hashmicro.com\/id\/\"],\"gender\":\"laki-laki\",\"knowsAbout\":[\"procurement\",\"pengadaan\",\"pembelian\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Senior Content Writer\",\"url\":\"https:\/\/www.hashmicro.com\/id\/blog\/author\/jonathankurniawan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda","description":"Timesheet karyawan adalah suatu alat dalam bentuk fisik maupun digital yang berfungsi untuk mencatat jumlah jam kerja pada sebuah 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\/timesheet-karyawan\/","og_locale":"id_ID","og_type":"article","og_title":"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda","og_description":"Timesheet karyawan adalah suatu alat dalam bentuk fisik maupun digital yang berfungsi untuk mencatat jumlah jam kerja pada sebuah perusahaan.","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2024-05-01T02:35:17+00:00","article_modified_time":"2025-08-20T02:22:40+00:00","og_image":[{"width":1200,"height":650,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/05\/Ketahui_Fungsi_Timesheet_Karyawan_untuk_Manajemen_Karyawan_Anda.jpg","type":"image\/jpeg"}],"author":"Jonathan Kurniawan","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Jonathan Kurniawan","Estimasi waktu membaca":"10 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/"},"author":{"name":"Jonathan Kurniawan","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/029ac06d135cf8424dfa4f3cb3fef6c5"},"headline":"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda","datePublished":"2024-05-01T02:35:17+00:00","dateModified":"2025-08-20T02:22:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/"},"wordCount":1649,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/05\/Ketahui_Fungsi_Timesheet_Karyawan_untuk_Manajemen_Karyawan_Anda.jpg","articleSection":["Timesheet"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/","name":"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/05\/Ketahui_Fungsi_Timesheet_Karyawan_untuk_Manajemen_Karyawan_Anda.jpg","datePublished":"2024-05-01T02:35:17+00:00","dateModified":"2025-08-20T02:22:40+00:00","description":"Timesheet karyawan adalah suatu alat dalam bentuk fisik maupun digital yang berfungsi untuk mencatat jumlah jam kerja pada sebuah perusahaan.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/05\/Ketahui_Fungsi_Timesheet_Karyawan_untuk_Manajemen_Karyawan_Anda.jpg","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2024\/05\/Ketahui_Fungsi_Timesheet_Karyawan_untuk_Manajemen_Karyawan_Anda.jpg","width":1200,"height":650,"caption":"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/timesheet-karyawan\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Ketahui Fungsi Timesheet Karyawan untuk Manajemen Karyawan Anda"}]},{"@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\/029ac06d135cf8424dfa4f3cb3fef6c5","name":"Jonathan Kurniawan","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\/Jonathan-Kurniawan-3-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jonathan-Kurniawan-3-96x96.webp","caption":"Jonathan Kurniawan"},"description":"Jonathan adalah seorang praktisi dalam bidang procurement, TMS, dan supply chain dengan pengalaman 5 tahun. Spesialis dalam mengulas topik seputar manajemen vendor, budget control procurement, otomatisasi proses pengadaan barang, dan analisis procurement. Tulisannya secara konsisten mendukung pengambilan keputusan bisnis yang lebih strategis.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"laki-laki","knowsAbout":["procurement","pengadaan","pembelian"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Senior Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/jonathankurniawan\/"}]}},"focus_keyword":"Timesheet karyawan","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/25900","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\/161"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=25900"}],"version-history":[{"count":8,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/25900\/revisions"}],"predecessor-version":[{"id":169246,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/25900\/revisions\/169246"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/139930"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=25900"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=25900"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=25900"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}