{"id":10726,"date":"2025-01-01T16:37:27","date_gmt":"2025-01-01T09:37:27","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=10726"},"modified":"2026-04-20T09:19:45","modified_gmt":"2026-04-20T02:19:45","slug":"absen-fingerprint","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/","title":{"rendered":"Fingerprint: Teknologi Biometrik Sistem Absensi Karyawan"},"content":{"rendered":"<p data-start=\"0\" data-end=\"321\">Absensi fingerprint adalah metode identifikasi <a href=\"https:\/\/id.wikipedia.org\/wiki\/Biometrik\">biometrik<\/a> yang memanfaatkan pola unik sidik jari untuk memverifikasi kehadiran karyawan. Sistem ini memindai, menyimpan, lalu mencocokkan data sidik jari saat karyawan melakukan absensi, sehingga perusahaan bisa mencatat kehadiran dengan lebih akurat melalui <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/software-absensi-karyawan\/\">aplikasi absensi<\/a>.<\/p>\n<p data-start=\"323\" data-end=\"656\" data-is-last-node=\"\" data-is-only-node=\"\">Dalam praktiknya,<a href=\"https:\/\/www.hashmicro.com\/id\/blog\/biometric-attendance-system\/\"> software biometrik<\/a> tidak hanya mengenali sidik jari, tetapi juga dapat membaca karakteristik lain seperti wajah, iris mata, atau geometri tangan. Karena itu, banyak perusahaan memanfaatkan teknologi ini dalam software HRM untuk mempermudah pengelolaan absensi sekaligus meningkatkan efisiensi administrasi karyawan.<\/p>\n<style>\r\n\t.takeaways-container {\r\n\t\tmargin: 20px 0;\r\n\t\tfont-family: sans-serif;\r\n\t}\r\n\t.box-content {\r\n\t\tbackground-color: #fffacd;\r\n\t\tbox-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n\t\tborder-radius: 25px;\r\n\t\tpadding: 25px;\r\n\t}\r\n\t.title {\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n\t.title p {\r\n\t\tdisplay: inline-block;\r\n\t\tbackground-color: #8A0E19;\r\n\t\tcolor: #ffffff;\r\n\t\tpadding: 8px 15px;\r\n\t\tborder-radius: 8px;\r\n\t\tfont-size: 22px;\r\n\t\tfont-weight: bold;\r\n\t\tmargin: 0;\r\n\t}\r\n\t.item {\r\n\t\tdisplay: flex;\r\n\t\talign-items: flex-start;\r\n\t\tmargin-bottom: 12px;\r\n\t}\r\n\t.item .circle {\r\n\t\twidth: 8px;\r\n\t\theight: 8px;\r\n\t\tbackground-color: #000000;\r\n\t\tborder-radius: 50%;\r\n\t\tmargin-right: 12px;\r\n\t\tflex-shrink: 0;\r\n\t\tmargin-top: 8px;\r\n\t}\r\n\t.item p {\r\n\t\tmargin: 0;\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 1.6;\r\n\t}\r\n\t.item p a {\r\n\t\tcolor: #8A0E19;\r\n\t\tfont-weight: normal;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.item p a:hover {\r\n\t\ttext-decoration: underline;\r\n\t}\r\n\t.button-wrapper {\r\n\t\tmargin-top: 25px;\r\n\t}\r\n\t.submit-button {\r\n\t\tbackground-color: #8a0e19;\r\n\t\tcolor: #fff !important;\r\n\t\ttransition: all .3s ease;\r\n\t\tpadding: 12px 28px;\r\n\t\tdisplay: inline-block;\r\n\t\tborder-radius: 12px;\r\n\t\tfont-size: 16px;\r\n\t\tfont-weight: bold;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.submit-button:hover {\r\n\t\tbackground-color: #991b26;\r\n\t}\r\n\t@media (max-width: 767px) {\r\n\t\t.takeaways-container {\r\n\t\t\theight: auto;\r\n\t\t\tpadding: 0;\r\n\t\t}\r\n\t\t.box-content {\r\n\t\t\tpadding: 24px;\r\n\t\t}\r\n\t\t.content,\r\n\t\t.main-content,\r\n\t\t.list-item {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<div class=\"takeaways-container\">\r\n\t<div class=\"box-content\">\r\n\t\t<div class=\"content\">\r\n\t\t\t<div class=\"title\">\r\n\t\t\t\t<p>Key Takeaways<\/p>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"main-content\">\r\n\t\t\t\t<div class=\"list-item\">\r\n\t\t\t\t\t<div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#absensi\">Absensi fingerprint<\/a> adalah salah satu jenis absensi karyawan yang menggunakan rekaman sidik jari.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#manfaat\">Manfaat absensi fingerprint<\/a> adalah mencatat kehadiran karyawan secara akurat dan real-time, mencegah kecurangan, serta meningkatkan efisiensi.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#carakerja\">Sistem absensi fingerprint bekerja dengan<\/a> memindai, mencocokkan, dan memvalidasi sidik jari karyawan secara otomatis, sehingga data kehadiran tercatat akurat dan bebas kecurangan.<\/p><\/div>\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n<!-- \t\t\t<div class=\"button-wrapper\">\r\n\t\t\t\t<a href=\"https:\/\/www.equiperp.com\/tour-produk-gratis\/?medium=key-takeaways\" class=\"submit-button\">Klik untuk Demo Gratis!<\/a>\r\n\t\t\t<\/div> -->\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div>\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><span style=\"font-family: roboto, sans-serif;\"><b>Apa itu Absensi Fingerprint?<\/b><\/span><\/h2>\n<p id=\"absensi\">Absensi fingerprint adalah metode absensi karyawan yang merekam data sidik jari untuk <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/presensi-adalah-bukti-ketidakhadiran-yang-berakibat-sanksi\/\">presensi<\/a>. Sistem ini menggunakan keunikan sidik jari setiap individu, memastikan identifikasi yang akurat dan mencegah kecurangan dalam proses absensi.<\/p>\n<p>Bahkan, orang yang terlahir kembar pun memiliki sidik jari yang berbeda satu sama lain. Oleh karena itu, harapannya agar absensi setiap karyawan tidak akan tertukar atau tercurangi berkat keunikan dari sidik jari tersebut.<\/p>\n<p><span id=\"sejarah-perkembangan-fingerprint\">Selain merekam jam masuk dan pulang karyawan, <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/software-absensi-karyawan\/\">software absensi karyawan<\/a> yang mempunyai fitur sidik jari juga dapat memberitahukan lama setiap karyawan bekerja dalam satu hari. Dengan menggunakan aplikasi HR terbaik juga akan memudahkan tim HRD untuk memperhitungkan waktu kerja, termasuk lembur dan tunjangan.<\/span><br \/>\n<span id=\"manfaat\"><\/span><\/p>\n<h2><strong>Apa Saja Manfaat Absensi Fingerprint?<\/strong><\/h2>\n<p id=\"manfaat\">Fingerprint kini menjadi solusi modern dan akurat untuk sistem absensi karyawan, menggantikan metode manual yang rawan kesalahan. Berikut Manfaat dari Fingerprint untuk absensi online:<\/p>\n<ul>\n<li data-start=\"0\" data-end=\"385\"><strong data-start=\"220\" data-end=\"239\">Akurasi Tinggi: <\/strong>Mencatat kehadiran karyawan secara tepat menggunakan sidik jari sebagai identitas unik.<\/li>\n<li data-start=\"0\" data-end=\"385\"><strong data-start=\"332\" data-end=\"357\">Mengurangi Pemalsuan:\u00a0 <\/strong>Mengeliminasi risiko titip absen atau manipulasi data.<\/li>\n<li data-start=\"0\" data-end=\"385\"><strong data-start=\"417\" data-end=\"447\">Real-Time dan Cloud-Based: <\/strong>Data kehadiran dapat diakses secara langsung melalui sistem berbasis cloud.<\/li>\n<li data-start=\"0\" data-end=\"385\"><strong data-start=\"528\" data-end=\"552\">Praktis dan Efisien: <\/strong>Proses absensi cepat hanya dengan satu sentuhan tanpa alat tulis atau kartu.<\/li>\n<li data-start=\"0\" data-end=\"385\"><strong data-start=\"634\" data-end=\"661\">Otomatisasi Pencatatan: <\/strong>Waktu masuk dan keluar tercatat otomatis setelah verifikasi berhasil.<\/li>\n<li data-start=\"0\" data-end=\"385\"><strong data-start=\"736\" data-end=\"772\">Terintegrasi dengan HR Software: <\/strong>Dapat dihubungkan dengan sistem cuti, payroll, dan evaluasi kinerja.<\/li>\n<li data-start=\"0\" data-end=\"385\"><strong data-start=\"846\" data-end=\"880\">Meningkatkan Produktivitas HR: <\/strong>Mengurangi beban administratif dan mempermudah monitoring karyawan.<\/li>\n<\/ul>\n<div class=\"group\/conversation-turn relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex-col gap-1 md:gap-3\">\n<div class=\"flex max-w-full flex-col flex-grow\">\n<div class=\"min-h-8 text-message flex w-full flex-col items-end gap-2 whitespace-normal break-words text-start [.text-message+&amp;]:mt-5\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"354021be-0a0e-46a0-a1f8-4f48d9a94496\" data-message-model-slug=\"gpt-4o\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[3px]\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<h2><b><span id=\"bekerja\">Bagaimana Cara Kerja Sistem Absensi Fingerprint Secara Detail?<\/span><\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-162335 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/Untitled-design-4.webp\" alt=\"absen fingerprint\" width=\"1200\" height=\"620\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/Untitled-design-4.webp 1200w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/Untitled-design-4-300x155.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/Untitled-design-4-1024x529.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/Untitled-design-4-768x397.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/Untitled-design-4-813x420.webp 813w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/Untitled-design-4-150x78.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/Untitled-design-4-696x360.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/Untitled-design-4-1068x552.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p id=\"carakerja\">Mesin absen fingerprint bekerja dengan memanfaatkan teknologi pemindaian sidik jari untuk mencatat kehadiran karyawan secara akurat dan otomatis. Proses ini dimulai dengan pendaftaran awal di mana setiap karyawan harus mendaftarkan sidik jari mereka ke dalam sistem.<\/p>\n<h3><strong>1. Pendaftaran sidik jari karyawan<\/strong><\/h3>\n<p>Pada tahap ini, karyawan menempelkan jari mereka pada sensor pemindai untuk mengambil data sidik jari. Mesin akan memproses dan menyimpan pola unik dari sidik jari ke dalam database sebagai referensi utama untuk verifikasi di masa mendatang.<\/p>\n<h3><strong>2. Proses verifikasi sidik jari saat absensi<\/strong><\/h3>\n<p>Saat melakukan absensi, karyawan cukup menempelkan jari yang sudah terdaftar ke sensor pemindai. Selanjutnya, mesin akan membandingkan pola sidik jari tersebut dengan data yang tersimpan dalam sistem.<\/p>\n<h3><strong>3. Pencocokan data dan validasi kehadiran<\/strong><\/h3>\n<p>Jika pola sidik jari sesuai dengan data yang sudah terdaftar, mesin akan mengonfirmasi identitas karyawan dan mencatat waktu kehadiran mereka. Setelah itu, sistem akan menyimpan informasi tersebut untuk kebutuhan rekap data kehadiran.<\/p>\n<h3><strong>4. Penyimpanan dan pengolahan data absensi<\/strong><\/h3>\n<p>Setelah proses verifikasi selesai, sistem akan menyimpan data kehadiran karyawan dan memungkinkan tim HR atau manajer mengaksesnya dengan mudah. Perusahaan kemudian dapat memakai data ini untuk menghitung gaji, menilai kinerja, serta mengatur jadwal kerja karyawan.<\/p>\n<p>Melalui sistem absensi fingerprint, perusahaan bisa menekan risiko kecurangan dalam pencatatan kehadiran, termasuk titip absen. Selain itu, perusahaan juga dapat meningkatkan efisiensi dalam pengelolaan kehadiran karyawan.<\/p>\n<h2 data-start=\"387\" data-end=\"779\"><b>Jenis-Jenis Sensor Fingerprint yang Digunakan pada Mesin Absensi<\/b><\/h2>\n<p>Mesin absen fingerprint memindai sidik jari karyawan lalu mencocokkannya dengan data yang sudah tersimpan dalam database. Untuk menjalankan proses tersebut, mesin absensi menggunakan beberapa jenis sensor fingerprint yang umum ditemukan pada berbagai perangkat.<\/p>\n<h3 data-start=\"672\" data-end=\"1062\"><strong>1. Optical sensor<\/strong><\/h3>\n<p data-start=\"672\" data-end=\"1062\">Sensor ini bekerja dengan menangkap gambar sidik jari menggunakan cahaya. Sistem optik menggunakan prisma dan kamera untuk mendeteksi pola sidik jari berdasarkan kontras antara tonjolan dan lekukan kulit.<\/p>\n<h3 data-start=\"672\" data-end=\"1062\"><strong>2. Capacitive sensor<\/strong><\/h3>\n<p data-start=\"672\" data-end=\"1062\">Sensor ini menggunakan medan listrik untuk membaca kontur sidik jari. Saat jari menyentuh sensor, sistem akan mengukur variasi kapasitansi antara tonjolan dan lekukan sidik jari. Karena membutuhkan kontak langsung dengan kulit asli, sensor ini lebih sulit dipalsukan dibandingkan optical sensor.<\/p>\n<h3 data-start=\"672\" data-end=\"1062\"><strong>3. Ultrasonic sensor<\/strong><\/h3>\n<p data-start=\"672\" data-end=\"1062\">Teknologi ultrasonic bekerja dengan mengirimkan gelombang suara ke permukaan jari dan menganalisis pantulannya. Sensor ini dapat membaca lapisan dalam kulit, sehingga lebih akurat dan sulit dipalsukan.<\/p>\n<h3 data-start=\"672\" data-end=\"1062\"><strong>4. Thermal sensor<\/strong><\/h3>\n<p data-start=\"672\" data-end=\"1062\">Sensor ini mengenali pola sidik jari berdasarkan perbedaan suhu antara tonjolan dan lekukan jari. Ketika jari menyentuh sensor, sistem akan menangkap perbedaan temperatur untuk membentuk citra sidik jari.<\/p>\n<p data-start=\"672\" data-end=\"1062\"><span data-sheets-root=\"1\"><style>\r\n\t#baca-juga {\r\n\t\tpadding: 16px;\r\n\t\tbackground-color: #f7eaea;\r\n\t\tborder-left: 3px solid #af2828;\r\n\t\tfont-weight: 500;\r\n\t\tmargin-bottom: 26px;\r\n\t}\r\n\t\r\n\t#baca-juga a {\r\n\t\tcolor: #af2828 !important;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t}\r\n\t\r\n\t#baca-juga a:hover {\r\n\t\tcolor: #af282880 !important;\r\n\t}\r\n<\/style>\r\n\r\n<div id=\"baca-juga\">\r\n\t<span>Baca juga: <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/hr-software-terbaik-di-indonesia\/\">Software HR Terbaik untuk Manajemen Absensi dengan Fingerprint<\/a><\/span>\r\n<\/div><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h2><b>Panduan Lengkap Mengambil Data dari Sistem Absensi Fingerprint<\/b><\/h2>\n<p>Pengelolaan data kehadiran karyawan dari mesin absensi fingerprint memegang peran penting dalam menjaga akurasi catatan jam kerja dan proses penggajian. Agar prosesnya lebih mudah dan efisien, ikuti langkah-langkah berikut.<\/p>\n<h3><strong>1. Siapkan perangkat lunak manajemen absensi<\/strong><\/h3>\n<p>Sebelum mengambil data dari mesin absensi, pastikan Anda sudah memiliki perangkat lunak manajemen absensi yang cocok dengan mesin fingerprint perusahaan. Produsen mesin biasanya menyediakan perangkat lunak tersebut, atau Anda bisa mengunduhnya melalui situs resmi penyedia.<\/p>\n<h3><strong>2. Hubungkan mesin absensi ke komputer atau server<\/strong><\/h3>\n<p>Anda bisa menghubungkan mesin absensi ke komputer atau server melalui beberapa cara, tergantung jenis perangkat yang perusahaan pakai:<\/p>\n<ul>\n<li><strong>Kabel USB<\/strong>: sambungkan mesin absensi langsung ke komputer.<\/li>\n<li><strong>Jaringan LAN atau Wi-Fi<\/strong>: kirim data secara nirkabel ke server perusahaan.<\/li>\n<li><strong>Flash drive (USB drive)<\/strong>: ambil data melalui media penyimpanan USB pada mesin yang mendukung fitur ini.<\/li>\n<\/ul>\n<p>Pastikan koneksi tetap stabil sebelum masuk ke tahap berikutnya.<\/p>\n<h3><strong>3. Akses menu pengambilan data<\/strong><\/h3>\n<p data-start=\"1278\" data-end=\"1515\">Setelah perangkat lunak aktif dan mesin absensi sudah terhubung, masuk ke sistem lalu cari menu atau fitur untuk mengambil data kehadiran karyawan. Umumnya, sistem menempatkan menu ini pada halaman utama atau dashboard perangkat lunak.<\/p>\n<h3><strong>4. Tentukan periode waktu yang dibutuhkan<\/strong><\/h3>\n<p>Saat mengambil data, pilih rentang waktu yang sesuai dengan kebutuhan perusahaan. Biasanya, sistem menyediakan beberapa pilihan seperti berikut:<\/p>\n<ul>\n<li>Data harian<\/li>\n<li>Data mingguan<\/li>\n<li>Data bulanan<\/li>\n<li>Rentang waktu khusus sesuai kebutuhan<\/li>\n<\/ul>\n<h3><strong>5. Ekspor data ke format yang diinginkan<\/strong><\/h3>\n<p>Setelah memilih periode waktu, ekspor data ke format yang paling sesuai dengan kebutuhan perusahaan, seperti:<\/p>\n<ul>\n<li><strong>Excel (.xls\/.xlsx)<\/strong>: untuk analisis lanjutan atau rekap manual<\/li>\n<li><strong>CSV (.csv)<\/strong>: untuk kebutuhan integrasi dengan sistem lain<\/li>\n<li><strong>PDF (.pdf)<\/strong>: untuk kebutuhan baca atau cetak<\/li>\n<\/ul>\n<p>Sebagian perangkat lunak juga memungkinkan perusahaan menghubungkan data absensi langsung ke sistem HR atau penggajian agar prosesnya berjalan otomatis.<\/p>\n<h3><strong>6. Verifikasi dan validasi data<\/strong><\/h3>\n<p data-start=\"2314\" data-end=\"2488\">Setelah sistem berhasil mengambil data, periksa seluruh informasi untuk memastikan tidak ada kesalahan atau data yang terlewat. Fokuskan pengecekan pada beberapa hal berikut:<\/p>\n<ul>\n<li data-start=\"2490\" data-end=\"2653\">Apakah jumlah kehadiran sudah sesuai dengan catatan manual?<\/li>\n<li data-start=\"2490\" data-end=\"2653\">Apakah ada data karyawan yang belum terekam?<\/li>\n<li data-start=\"2490\" data-end=\"2653\">Apakah waktu masuk dan keluar menunjukkan kejanggalan?<\/li>\n<\/ul>\n<p data-start=\"2655\" data-end=\"2852\">Jika Anda menemukan ketidaksesuaian, segera periksa sistem lalu lakukan koreksi seperlunya. Selain itu, Anda juga bisa mencocokkan data tersebut dengan <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/surat-perjanjian-kerja\/\">surat perjanjian<\/a> atau dokumen pendukung lain.<\/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><strong><span id=\"kekurangan\">Keunggulan dan Kekurangan Penggunaan Fingerprint<\/span><\/strong><\/h2>\n<p>Meski menjadi solusi modern yang banyak digunakan, teknologi fingerprint dalam sistem absensi memiliki kelebihan dan kekurangan tersendiri. Berikut adalah ringkasan poin-poin penting yang perlu Anda ketahui:<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"50%\"><b>Keunggulan<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"50%\"><b>Kekurangan<\/b><\/td>\n<\/tr>\n<tr>\n<td>\n<ul>\n<li><strong>Keakuratan dan keamanan tinggi:<\/strong> Menggunakan sidik jari unik yang sulit dipalsukan, memastikan absensi akurat.<\/li>\n<li><strong>Proses cepat dan efisien:<\/strong> Hanya butuh beberapa detik tanpa kartu atau PIN.<\/li>\n<li><strong>Mencegah kecurangan:<\/strong> Tidak memungkinkan titip absen atau manipulasi data.<\/li>\n<li><strong>Hemat biaya operasional:<\/strong> Tidak memerlukan kartu atau perangkat tambahan.<\/li>\n<li><strong>Integrasi dengan HR system:<\/strong> Data absensi bisa langsung terhubung dengan sistem penggajian dan cuti.<\/li>\n<li><strong>Tahan lama dan minim perawatan:<\/strong> Mesin kuat dan hanya butuh pembersihan berkala.<\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li><strong>Biaya investasi dan perawatan:<\/strong> Membutuhkan pembelian awal dan biaya operasional seperti listrik dan servis.<\/li>\n<li><strong>Masih memiliki celah kecurangan:<\/strong> Seperti penggunaan sidik jari palsu atau pendaftaran ganda.<\/li>\n<li><strong>Kurang fleksibel:<\/strong> Tidak cocok untuk karyawan remote karena harus hadir langsung untuk absen.<\/li>\n<li><strong>Masalah higienitas:<\/strong> Mesin disentuh banyak orang dan bisa menyebarkan bakteri atau virus.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<style>\r\n\t#baca-juga {\r\n\t\tpadding: 16px;\r\n\t\tbackground-color: #f7eaea;\r\n\t\tborder-left: 3px solid #af2828;\r\n\t\tfont-weight: 500;\r\n\t\tmargin-bottom: 26px;\r\n\t}\r\n\t\r\n\t#baca-juga a {\r\n\t\tcolor: #af2828 !important;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t}\r\n\t\r\n\t#baca-juga a:hover {\r\n\t\tcolor: #af282880 !important;\r\n\t}\r\n<\/style>\r\n\r\n<div id=\"baca-juga\">\r\n\t<span>Baca juga: <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/sistem-roster-kerja-di-tambang-prioritaskan-mekanisme-kerja-dan-cuti-karyawan\/\">Bagaimana Software HRM Dapat Memaksimalkan Sistem Roster Kerja?<\/a><\/span>\r\n<\/div>\n<h2><strong>Cara Karyawan Memanipulasi Data Absensi Fingerprint<\/strong><\/h2>\n<p>Walaupun perusahaan sudah memakai teknologi biometrik, oknum karyawan masih bisa mencari celah untuk memanipulasi data absensi fingerprint. Karena itu, perusahaan harus mengenali pola kecurangan yang masih sering muncul agar bisa mencegahnya lebih cepat.<\/p>\n<h3><strong>1. Menggunakan replika sidik jari<\/strong><\/h3>\n<p>Pada mesin fingerprint dengan sensor keamanan rendah, oknum karyawan bisa meniru sidik jari lewat gambar cetak atau fotokopi yang ukurannya menyesuaikan bentuk jari. Setelah itu, rekan kerja mereka bisa memakai replika tersebut untuk melakukan titip absen.<\/p>\n<h3><strong>2. Membuat cetakan sidik jari dari bahan silikon<\/strong><\/h3>\n<p>Sebagian karyawan membuat cetakan sidik jari dari bahan silikon atau dempul agar bentuknya menyerupai sidik jari asli. Lalu, mereka memakainya untuk mengecoh sensor fingerprint yang belum memiliki teknologi pendeteksi keaslian.<\/p>\n<h3><strong>3. Mendaftarkan sidik jari rekan kerja<\/strong><\/h3>\n<p>Satu akun absensi sering kali bisa menampung lebih dari satu sidik jari. Celah ini mendorong sebagian karyawan mendaftarkan sidik jari rekan kerja agar mereka bisa saling menggantikan saat melakukan absensi.<\/p>\n<p>Praktik tersebut membuktikan bahwa mesin fingerprint saja belum mampu menjamin akurasi data kehadiran secara penuh. Karena itu, perusahaan sebaiknya memakai sistem absensi yang lebih aman dan fleksibel, misalnya absensi digital dengan verifikasi berlapis.<\/p>\n<h2><strong>Bagaimana Sistem Absensi Membantu Pengelolaan Kehadiran<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-192517  aligncenter\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-300x188.webp\" alt=\"dashboard absensi fingerprint\" width=\"620\" height=\"388\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-300x188.webp 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-1024x640.webp 1024w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-768x480.webp 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-1536x960.webp 1536w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-2048x1280.webp 2048w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-672x420.webp 672w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-150x94.webp 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-696x435.webp 696w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-1068x668.webp 1068w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/nora-3-1920x1200.webp 1920w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/>Software absensi membantu perusahaan mencatat kehadiran karyawan secara lebih akurat, cepat, dan rapi. Selain itu, tim HR bisa menghubungkan data kehadiran dengan jadwal kerja, lembur, serta payroll dalam satu sistem agar pengelolaan administrasi berjalan lebih efisien.<b><\/b><\/p>\n<p data-start=\"334\" data-end=\"641\">Kebutuhan ini makin terasa saat perusahaan memiliki banyak karyawan, pola kerja shift, atau aktivitas lapangan. Karena itu, software absensi tidak hanya berfungsi sebagai alat pencatat kehadiran, tetapi juga membantu perusahaan menjaga disiplin kerja dan memantau aktivitas karyawan secara lebih menyeluruh.<\/p>\n<p data-start=\"643\" data-end=\"705\">Berikut beberapa fitur yang umumnya ada pada software absensi:<\/p>\n<ul data-start=\"707\" data-end=\"2108\" data-is-only-node=\"\" data-is-last-node=\"\">\n<li data-start=\"707\" data-end=\"941\"><strong data-start=\"709\" data-end=\"748\">Face recognition dan GPS attendance<\/strong><br data-start=\"748\" data-end=\"751\" \/>Fitur ini membantu perusahaan mencatat kehadiran secara lebih akurat sekaligus mengurangi potensi kecurangan. Sistem juga dapat memeriksa lokasi absensi agar catatan kehadiran tetap valid.<\/li>\n<li data-start=\"943\" data-end=\"1159\"><strong data-start=\"945\" data-end=\"983\">Koneksi dengan perangkat biometrik<\/strong><br data-start=\"983\" data-end=\"986\" \/>Software dapat menerima data dari mesin fingerprint atau perangkat biometrik lain secara langsung. Dengan cara ini, tim HR tidak perlu lagi memindahkan data secara manual.<\/li>\n<li data-start=\"1161\" data-end=\"1397\"><strong data-start=\"1163\" data-end=\"1198\">Roster dan jadwal kerja dinamis<\/strong><br data-start=\"1198\" data-end=\"1201\" \/>Fitur ini memudahkan perusahaan saat mengatur shift, rotasi, dan jam kerja yang berubah sesuai kebutuhan operasional. Selain itu, HR juga bisa menyesuaikan jadwal lebih cepat saat ada perubahan.<\/li>\n<li data-start=\"1399\" data-end=\"1618\"><strong data-start=\"1401\" data-end=\"1445\">Aplikasi mobile untuk kebutuhan karyawan<\/strong><br data-start=\"1445\" data-end=\"1448\" \/>Karyawan dapat melakukan absensi, melihat jadwal kerja, atau mengajukan cuti melalui ponsel. Alhasil, proses administrasi menjadi lebih praktis bagi karyawan maupun HR.<\/li>\n<li data-start=\"1620\" data-end=\"1869\"><strong data-start=\"1622\" data-end=\"1686\">Pengelolaan lembur yang terhubung dengan absensi dan payroll<\/strong><br data-start=\"1686\" data-end=\"1689\" \/>Sistem dapat mencatat jam lembur berdasarkan data kehadiran lalu menghitungnya ke komponen penggajian. Dengan demikian, perusahaan bisa menjaga perhitungan kerja tetap konsisten.<\/li>\n<li data-start=\"1871\" data-end=\"2108\" data-is-last-node=\"\"><strong data-start=\"1873\" data-end=\"1905\">Laporan absensi yang lengkap<\/strong><br data-start=\"1905\" data-end=\"1908\" \/>Perusahaan dapat memantau kehadiran, keterlambatan, lembur, hingga pola absensi karyawan melalui laporan yang lebih rinci. Informasi ini membantu HR mengambil keputusan dengan lebih cepat dan tepat.<\/li>\n<\/ul>\n<h2><b>Kesimpulan<\/b><\/h2>\n<p>Absensi fingerprint membantu perusahaan mencatat kehadiran karyawan dengan lebih akurat melalui sidik jari. Namun, sistem ini tetap menyimpan beberapa celah yang bisa dimanfaatkan oknum tertentu untuk berbuat curang, misalnya titip absen atau memakai sidik jari palsu. Karena itu, perusahaan perlu menambahkan teknologi pendukung agar data absensi tetap akurat dan lebih aman.<\/p>\n<p>Pemakaian software HRM yang tepat juga membantu perusahaan mengelola absensi karyawan dengan lebih mudah, mulai dari pencatatan jam kerja, lembur, sampai perhitungan gaji. Selain itu, sistem ini dapat terhubung dengan modul lain, seperti cuti dan payroll, sehingga perusahaan bisa meningkatkan efisiensi operasional sekaligus merapikan administrasi.<\/p>\n\n<h2><b>Pertanyaan Seputar Absen Fingerprint<\/b><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><b>Apa yang dimaksud dengan sensor fingerprint?<\/b><\/summary>\n<p>Fingerprint adalah sensor perangkat keras yang berfungsi untuk memindai sidik jari unik seseorang guna memverifikasi identitasnya. Sebagai salah satu bentuk biometrik, fingerprint memanfaatkan karakteristik fisik individu untuk keperluan identifikasi.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><b>Bagaimana cara memverifikasi fingerprint?<\/b><\/summary>\n<p>Keunikan pola punggungan dalam posisi relatifnya merupakan bukti yang pasti dan konklusif dalam menentukan identitas. Jika terdapat cukup banyak kesamaan pada pola punggungan di dua cetakan jempol, maka dapat dipastikan bahwa cetakan tersebut berasal dari individu yang sama.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><b>Apa saja hal yang perlu diperhatikan saat menggunakan absensi fingerprint?<\/b><\/summary>\n<p>Pastikan sidik jari bersih dan kering, sensor mesin tidak tertutup debu atau minyak, serta jari yang didaftarkan digunakan secara konsisten. Perusahaan juga perlu melakukan kalibrasi dan perawatan rutin agar proses pemindaian tetap cepat dan akurat.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><b>Apa fungsi absensi fingerprint?<\/b><\/summary>\n<p>Absensi fingerprint berfungsi memverifikasi identitas karyawan melalui pemindaian sidik jari, sehingga pencatatan kehadiran menjadi lebih akurat, otomatis, dan sulit dipalsukan. Sensor akan membaca dan mencocokkan pola sidik jari dengan data yang tersimpan untuk memastikan kehadiran tercatat dengan valid.<\/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 yang dimaksud dengan sensor fingerprint?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Fingerprint adalah sensor perangkat keras yang berfungsi untuk memindai sidik jari unik seseorang guna memverifikasi identitasnya. Sebagai salah satu bentuk biometrik, fingerprint memanfaatkan karakteristik fisik individu untuk keperluan identifikasi.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Bagaimana cara memverifikasi fingerprint?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Keunikan pola punggungan dalam posisi relatifnya merupakan bukti yang pasti dan konklusif dalam menentukan identitas. Jika terdapat cukup banyak kesamaan pada pola punggungan di dua cetakan jempol, maka dapat dipastikan bahwa cetakan tersebut berasal dari individu yang sama.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apa saja hal yang perlu diperhatikan saat menggunakan absensi fingerprint?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Pastikan sidik jari bersih dan kering, sensor mesin tidak tertutup debu atau minyak, serta jari yang didaftarkan digunakan secara konsisten. Perusahaan juga perlu melakukan kalibrasi dan perawatan rutin agar proses pemindaian tetap cepat dan akurat.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apa fungsi absensi fingerprint?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Absensi fingerprint berfungsi memverifikasi identitas karyawan melalui pemindaian sidik jari, sehingga pencatatan kehadiran menjadi lebih akurat, otomatis, dan sulit dipalsukan. Sensor akan membaca dan mencocokkan pola sidik jari dengan data yang tersimpan untuk memastikan kehadiran tercatat dengan valid.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Absensi fingerprint adalah metode identifikasi biometrik yang memanfaatkan pola unik sidik jari untuk memverifikasi kehadiran karyawan. Sistem ini memindai, menyimpan, lalu mencocokkan data sidik jari saat karyawan melakukan absensi, sehingga perusahaan bisa mencatat kehadiran dengan lebih akurat melalui aplikasi absensi. Dalam praktiknya, software biometrik tidak hanya mengenali sidik jari, tetapi juga dapat membaca karakteristik lain [&hellip;]<\/p>\n","protected":false},"author":160,"featured_media":166809,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[6],"tags":[],"class_list":{"0":"post-10726","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 v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Apa itu Absensi Fingerprint dan Cara Kerjanya<\/title>\n<meta name=\"description\" content=\"Banyak perusahaan mengadopsi teknologi fingerprint scan karena absensi sidik jari dapat lebih cepat dan lebih aman. Berikut ulasan lengkapnya!\" \/>\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\/absen-fingerprint\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fingerprint: Teknologi Biometrik Sistem Absensi Karyawan\" \/>\n<meta property=\"og:description\" content=\"Banyak perusahaan mengadopsi teknologi fingerprint scan karena absensi sidik jari dapat lebih cepat dan lebih aman. Berikut ulasan lengkapnya!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Indonesia\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hashmicro\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-01T09:37:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-20T02:19:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/metode-fingerprint.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"696\" \/>\n\t<meta property=\"og:image:height\" content=\"385\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Jessica Wijaya\" \/>\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=\"Jessica Wijaya\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/\"},\"author\":{\"name\":\"Jessica Wijaya\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/4d83ca1a7056c0a44f813f8721086980\"},\"headline\":\"Fingerprint: Teknologi Biometrik Sistem Absensi Karyawan\",\"datePublished\":\"2025-01-01T09:37:27+00:00\",\"dateModified\":\"2026-04-20T02:19:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/\"},\"wordCount\":2054,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/metode-fingerprint.webp\",\"articleSection\":[\"HRM\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/\",\"name\":\"Apa itu Absensi Fingerprint dan Cara Kerjanya\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/metode-fingerprint.webp\",\"datePublished\":\"2025-01-01T09:37:27+00:00\",\"dateModified\":\"2026-04-20T02:19:45+00:00\",\"description\":\"Banyak perusahaan mengadopsi teknologi fingerprint scan karena absensi sidik jari dapat lebih cepat dan lebih aman. Berikut ulasan lengkapnya!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/metode-fingerprint.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/metode-fingerprint.webp\",\"width\":696,\"height\":385,\"caption\":\"Metode Fingerprint\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/absen-fingerprint\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fingerprint: Teknologi Biometrik Sistem Absensi Karyawan\"}]},{\"@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\\\/4d83ca1a7056c0a44f813f8721086980\",\"name\":\"Jessica Wijaya\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jessica-Wijaya-1-1-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jessica-Wijaya-1-1-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Jessica-Wijaya-1-1-96x96.webp\",\"caption\":\"Jessica Wijaya\"},\"description\":\"Selama lebih dari 5 tahun sebagai Senior Content Writer, Jessica telah menulis topik yang mengulas tentang bidang inventory dan warehouse management. Keahliannya mencakup penulisan artikel manajemen stok dan persediaan, perencanaan kebutuhan, multi-warehouse management, dan integrasi sistem digital untuk pengelolaan barang.\",\"sameAs\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/\"],\"gender\":\"Perempuan\",\"knowsAbout\":[\"Inventory\",\"inventory management\",\"manajemen inventaris\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Senior Content Writer\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/author\\\/jessicawijaya\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Apa itu Absensi Fingerprint dan Cara Kerjanya","description":"Banyak perusahaan mengadopsi teknologi fingerprint scan karena absensi sidik jari dapat lebih cepat dan lebih aman. Berikut ulasan lengkapnya!","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\/absen-fingerprint\/","og_locale":"id_ID","og_type":"article","og_title":"Fingerprint: Teknologi Biometrik Sistem Absensi Karyawan","og_description":"Banyak perusahaan mengadopsi teknologi fingerprint scan karena absensi sidik jari dapat lebih cepat dan lebih aman. Berikut ulasan lengkapnya!","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-01-01T09:37:27+00:00","article_modified_time":"2026-04-20T02:19:45+00:00","og_image":[{"width":696,"height":385,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/metode-fingerprint.webp","type":"image\/webp"}],"author":"Jessica Wijaya","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Jessica Wijaya","Estimasi waktu membaca":"12 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/"},"author":{"name":"Jessica Wijaya","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/4d83ca1a7056c0a44f813f8721086980"},"headline":"Fingerprint: Teknologi Biometrik Sistem Absensi Karyawan","datePublished":"2025-01-01T09:37:27+00:00","dateModified":"2026-04-20T02:19:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/"},"wordCount":2054,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/metode-fingerprint.webp","articleSection":["HRM"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/","name":"Apa itu Absensi Fingerprint dan Cara Kerjanya","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/metode-fingerprint.webp","datePublished":"2025-01-01T09:37:27+00:00","dateModified":"2026-04-20T02:19:45+00:00","description":"Banyak perusahaan mengadopsi teknologi fingerprint scan karena absensi sidik jari dapat lebih cepat dan lebih aman. Berikut ulasan lengkapnya!","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/metode-fingerprint.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/01\/metode-fingerprint.webp","width":696,"height":385,"caption":"Metode Fingerprint"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/absen-fingerprint\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Fingerprint: Teknologi Biometrik Sistem Absensi Karyawan"}]},{"@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\/4d83ca1a7056c0a44f813f8721086980","name":"Jessica Wijaya","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Jessica-Wijaya-1-1-96x96.webp","caption":"Jessica Wijaya"},"description":"Selama lebih dari 5 tahun sebagai Senior Content Writer, Jessica telah menulis topik yang mengulas tentang bidang inventory dan warehouse management. Keahliannya mencakup penulisan artikel manajemen stok dan persediaan, perencanaan kebutuhan, multi-warehouse management, dan integrasi sistem digital untuk pengelolaan barang.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"Perempuan","knowsAbout":["Inventory","inventory management","manajemen inventaris"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Senior Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/jessicawijaya\/"}]}},"focus_keyword":"absensi fingerprint","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/10726","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\/160"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=10726"}],"version-history":[{"count":26,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/10726\/revisions"}],"predecessor-version":[{"id":192518,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/10726\/revisions\/192518"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/166809"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=10726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=10726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=10726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}