{"id":163441,"date":"2025-06-13T10:22:47","date_gmt":"2025-06-13T03:22:47","guid":{"rendered":"https:\/\/www.hashmicro.com\/id\/blog\/?p=163441"},"modified":"2025-12-16T14:21:51","modified_gmt":"2025-12-16T07:21:51","slug":"jam-kerja-restoran","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/","title":{"rendered":"Contoh &#038; Cara Efektif Pembagian Jam Kerja Restoran"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Mengatur jam kerja karyawan restoran adalah tantangan penting dalam menjaga kelancaran operasional. Jika tidak diatur dengan baik, masalah seperti kelelahan, konflik antar shift, hingga menurunnya kualitas pelayanan bisa terjadi.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Jadwal yang tidak adil juga dapat memicu turnover tinggi dan merugikan bisnis secara keseluruhan. Karena itu, pembagian jam kerja perlu dirancang secara strategis agar adil, efisien, dan sesuai kebutuhan operasional.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dalam artikel ini, kita akan membahas contoh dan cara efektif menyusun jadwal kerja restoran. Pastikan Anda membaca hingga akhir untuk menemukan strategi yang bisa langsung diterapkan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script> <div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tDaftar Isi:\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Daftar Isi<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n\r\n<style>\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor:#000;\r\n\t\tmargin-bottom: 10px;\r\n\t\ttransition:all 0.2s ease-in-out;\r\n\t\tfont-size:15px\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#list_toc_float li a{margin-bottom:0px}\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width:768px){\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \/* custom scrollbar style *\/\r\n::-webkit-scrollbar {\r\n    width: 7px;\r\n}\r\n::-webkit-scrollbar-track {\r\n    background: #d7a2a4;\r\n}\r\n::-webkit-scrollbar-thumb {\r\n    background: #b1252d;\r\n    border-radius: 15px;\r\n}\t\t\r\n\r\n<\/style>\r\n\r\n<script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\t\/\/ Fungsi untuk menangani klik pada semua elemen <a> dengan href yang dimulai dengan #\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst targetId = this.getAttribute('href').substring(1);\r\n\t\t\tconst targetElement = document.getElementById(targetId);\r\n\r\n\t\t\tif (targetElement) {\r\n\t\t\t\tconst headerHeight = document.querySelector('#toc .header').offsetHeight;\r\n\t\t\t\tconst navbarHeight = document.getElementById('tdi_34') ? document.getElementById('tdi_34').offsetHeight : 0;\r\n\t\t\t\tconst windowHeight = window.innerHeight;\r\n\t\t\t\tconst targetOffset = targetElement.offsetTop;\r\n\t\t\t\tconst scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight) - navbarHeight - 40;\r\n\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: scrollTo,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Tambahkan event listener untuk semua elemen <a> di toc-list dan list-toc\r\n\t\tconst titleLinks = document.querySelectorAll('#toc-list a, #list_toc a');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n<\/script>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\n\/\/ document.addEventListener(\"DOMContentLoaded\", function() {\r\n\/\/   const toc = document.querySelector('#toc');\r\n\/\/   const footer = document.querySelector('.td-footer-template-wrap');\r\n\/\/   const tocParent = toc.parentElement;\r\n\/\/   const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n\/\/   const tocHeight = toc.offsetHeight;\r\n\/\/   const triggerPoint = divTop + tocHeight + 700;\r\n\/\/   const footerHeight = footer.offsetHeight;\r\n\/\/   const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n\/\/   const phtoc = document.querySelector('#placeholder-toc');\r\n\/\/   const headers = document.querySelectorAll('.td-post-content h2');\r\n\/\/   const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\/\/ \tconst panel2 = document.querySelector(\"#toc .list\");\r\n\/\/ \tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n\/\/   let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n\/\/   \/\/ Function to handle scroll and add\/remove .sticky class\r\n\/\/   function handleScroll() {\r\n\/\/     const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n\/\/     let currentHeader = '';\r\n\r\n\/\/     \/\/ Highlight user progress as the heading comes\r\n\/\/     headers.forEach(header => {\r\n\/\/ \t\tconst headerTop = header.offsetTop;\r\n\/\/ \t\tconst headerHeight = header.clientHeight;\r\n\/\/ \/\/ \t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\/\/ \/\/ \t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\/\/ \/\/ \t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\/\/ \/\/ \t\t\ttocTitle.textContent = currentHeaderText;\r\n\/\/ \/\/ \t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\/\/ \/\/ \t\t\tif(window.innerWidth < 767){\r\n\/\/ \/\/ \t\t\t\ttocTitle.textContent = 'Daftar Isi';\r\n\/\/ \/\/ \t\t\t}\r\n\/\/ \/\/ \t\t}\r\n\/\/ \t\tif(window.innerWidth < 767){\r\n\/\/ \t\t\ttocTitle.textContent = 'Daftar Isi'; \/\/ Selalu pertahankan judul ini di mobile\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\/\/ \t\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\/\/ \t\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\t\ttocTitle.textContent = currentHeaderText;\r\n\/\/ \t\t\t\tcurrentHeader = currentHeaderId;\r\n\/\/ \t\t\t}\r\n\/\/ \t\t}\r\n\/\/ \t});\r\n\r\n\/\/     navLinks.forEach(link => {\r\n\/\/       link.classList.remove('active');\r\n\/\/       if(currentHeader != '') {\r\n\/\/ \t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\/\/ \t\t\t  link.classList.add('active');\r\n\/\/ \t\t  }\r\n\/\/ \t  }\r\n\/\/     });\r\n\/\/ \/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/ \/\/         toc.style.display = 'block';\r\n\/\/ \/\/ \t}else{\r\n\/\/ \/\/         toc.style.display = 'none';\r\n\/\/ \/\/ \t}\r\n\/\/     \/\/ Update TOC title if sticky\r\n\/\/     if (windowTop > triggerPoint) {\r\n\/\/       if (!toc.classList.contains('sticky')) {\r\n\/\/         phtoc.style.display = \"block\";\r\n\/\/         toc.classList.add('sticky');\r\n\/\/         toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\/\/         toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/         toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\tpanel2.style.height = '0px';\r\n\/\/ \t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t  if(window.innerWidth < 767){\r\n\/\/ \/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\/\/ \t\t\t  tocTitle.textContent = 'Daftar Isi'; \/\/ Reset title\r\n\/\/        \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\/\/ \t\t  }\r\n\/\/       }\r\n\/\/       if (currentHeader) {\r\n\/\/ \/\/         console.log(\"activeLink:\", activeLink);\r\n\/\/         if (activeLink) {\r\n\/\/ \/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n\/\/           tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n\/\/         }\r\n\/\/       }\r\n\/\/     } else {\r\n\/\/       toc.classList.remove('sticky');\r\n\/\/       phtoc.style.display = \"none\";\r\n\/\/       toc.style.width = 'unset'; \/\/ Reset to original width\r\n\/\/       toc.style.backgroundColor = \"#FFF\";\r\n\/\/       tocTitle.textContent = 'Daftar isi'; \/\/ Reset title\r\n\/\/ \t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\/\/ \t\ticon.style.transform = \"rotate(180deg)\";\r\n\/\/     }\r\n\/\/   }\r\n\r\n\/\/     \/\/ Attach the scroll event listener to the window\r\n\/\/     window.addEventListener('scroll', handleScroll);\r\n\r\n\/\/     \/\/ Initial call to handleScroll to set the correct state on load\r\n\/\/     handleScroll();\r\n\/\/ });\r\n\t\r\n\/\/ \t\/\/ Open toggle TOC\r\n\/\/ \t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\/\/ \t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\/\/ \t\tvar toc = document.querySelector(\"#toc\");\r\n\/\/ \t\tvar icon = document.querySelector(\".toc-icon\");\r\n\/\/ \t\tconst tocTitle = document.querySelector('#toc-title');\r\n\/\/ \t\tconst tocs = document.querySelector('#toc.sticky');\r\n\/\/  \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\/\/ \t\t  tocHeader.addEventListener(\"click\", function() {\r\n\/\/ \t\t\tvar panel = this.nextElementSibling;\r\n\/\/ \t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\/\/ \t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\/\/ \t\t\t\tif(window.innerWidth > 768){\r\n\/\/ \t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\/\/ \t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t\t}\r\n\/\/ \t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\/\/ \t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t\t}\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t\tif(window.innerWidth < 767){\r\n\/\/ \t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\/\/ \t\t\t} else {\r\n\/\/ \t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\/\/ \t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\t\t  tocTitle.textContent = 'Daftar isi'; \/\/ Reset title\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '24px';\r\n\/\/ \t\t\t \tif(window.innerWidth < 767){\r\n\/\/ \t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\/\/ \t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\/\/ \t\t\t\t}\r\n\/\/ \t\t\t}\r\n\/\/ \t\t  });\r\n\r\n\/\/ \t\t  \/\/ Close TOC when a link inside it is clicked\r\n\/\/ \t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\/\/ \t\t  tocLinks.forEach(function(link) {\r\n\/\/ \t\t\tlink.addEventListener(\"click\", function() {\r\n\/\/ \t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\/\/ \t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\/\/ \t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\/\/ \t\t\t});\r\n\/\/ \t\t  });\r\n\/\/ \t\t});\r\n\r\n\/\/ START new JS for ToC improvements\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 1750;\r\n\tconsole.log(triggerPoint)\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight*3;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n  \r\n  const panel2 = document.querySelector(\"#toc .list\");\r\n  const icon = document.querySelector(\".toc-icon\");\r\n  const tocTitle = document.querySelector('#toc-title');\r\n\r\n  let activeLink = null;\r\n  let userClosedTOC = false; \/\/ Flag user menutup TOC\r\n\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Update TOC title sesuai header yang terlihat\r\n    headers.forEach(header => {\r\n      const headerTop = header.offsetTop;\r\n      const headerHeight = header.clientHeight;\r\n      if(window.innerWidth < 767){\r\n        tocTitle.textContent = 'Daftar Isi'; \r\n      } else {\r\n        if (window.scrollY >= (headerTop - headerHeight + 1750)) {\r\n          const currentHeaderId = header.getAttribute('id');\r\n          const currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n          tocTitle.textContent = currentHeaderText;\r\n          currentHeader = currentHeaderId;\r\n        }\r\n      }\r\n    });\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader && link.getAttribute('href').includes(currentHeader)) {\r\n        link.classList.add('active');\r\n      }\r\n    });\r\n\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`;\r\n        toc.style.backgroundColor = \"#FFF\";\r\n        \/\/ Saat sticky, TOC otomatis tertutup\r\n        panel2.style.height = '0px';\r\n        icon.style.transform = \"rotate(180deg)\";\r\n        userClosedTOC = true; \/\/ Set flag supaya tidak terbuka saat scroll\r\n      }\r\n      \r\n      if(window.innerWidth < 767){\r\n        tocTitle.textContent = 'Daftar Isi'; \r\n        toc.style.width = '150px';\r\n      }\r\n\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset';\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Daftar isi'; \r\n\r\n      \/\/ Kembalikan panel jika user belum menutup manual\r\n      if(!userClosedTOC) {\r\n        panel2.style.height = panel2.scrollHeight + \"px\";\r\n        icon.style.transform = \"rotate(0deg)\";\r\n      }\r\n    }\r\n  }\r\n\r\n  window.addEventListener('scroll', handleScroll);\r\n  handleScroll();\r\n\r\n  \/\/ Toggle TOC saat user klik\r\n  const tocHeader = document.querySelector(\"#toc .header\");\r\n  tocHeader.addEventListener(\"click\", function() {\r\n    const panel = panel2;\r\n    if (panel.style.height !== '0px') {\r\n      panel.style.height = '0px';\r\n      icon.style.transform = \"rotate(180deg)\";\r\n      userClosedTOC = true;\r\n    } else {\r\n      panel.style.height = panel.scrollHeight + \"px\";\r\n      icon.style.transform = \"rotate(0deg)\";\r\n      userClosedTOC = false;\r\n    }\r\n  });\r\n\r\n  \/\/ Close TOC saat link diklik\r\n  document.querySelectorAll(\"#toc .list a\").forEach(link => {\r\n    link.addEventListener(\"click\", function() {\r\n      panel2.style.height = '0px';\r\n      icon.style.transform = \"rotate(180deg)\";\r\n      userClosedTOC = true;\r\n    });\r\n  });\r\n});\r\n\/\/ END new JS for ToC improvements\r\n\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } \r\n\t\t  else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener(\"DOMContentLoaded\", function() {\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        \/\/ Mengambil semua elemen h2 dan h3\r\n\t\tconst elements = document.querySelectorAll('.td-post-content h2');\r\n\r\n\t\t\tfunction newFormatId(text) {\r\n\t\t\t\tif(text.toLowerCase() === \"key takeaways\") {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tconst result = text.toLowerCase()\r\n\t\t\t\t.trim()\r\n\t\t\t\t.replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n\t\t\t\t.replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\r\n\t\telements.forEach(element => {\r\n\t\t\tif (element.tagName === 'H2') {\r\n\t\t\t\tconst id = newFormatId(element.textContent); \/\/ Hasilkan ID baru\r\n\t\t\t\telement.id = id; \/\/ Tetapkan ID ke elemen h2\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Kalau Key Takeaways, jangan dimasukin\r\n\t\t\t\theadings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n\t\t\t} else if (element.tagName === 'H3') {\r\n\t\t\t\tconst id = newFormatId(element.textContent); \/\/ Hasilkan ID baru\r\n\t\t\t\telement.id = id; \/\/ Tetapkan ID ke elemen h3\r\n\t\t\t\tif (headings.length > 0) {\r\n\t\t\t\t\theadings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n       \/\/ Membuat list HTML dari objek headings\r\n\t\tconst ul = document.getElementById('list_toc');\r\n\t\tlet currentUl = ul;\r\n\t\theadings.forEach(heading => {\r\n\t\t\tconst li = document.createElement('li');\r\n\t\t\tconst a = document.createElement('a');\r\n\t\t\ta.textContent = heading.title;\r\n\t\t\ta.href = `#${heading.id}`; \/\/ Gunakan ID yang baru dihasilkan\r\n\t\t\tli.appendChild(a);\r\n\r\n\t\t\tif (heading.level === 'h2') {\r\n\t\t\t\tcurrentUl = li;\r\n\t\t\t\tul.appendChild(li);\r\n\t\t\t} else if (heading.level === 'h3') {\r\n\t\t\t\tif (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n\t\t\t\t\tconst nestedUl = document.createElement('ul');\r\n\t\t\t\t\tcurrentUl.appendChild(nestedUl);\r\n\t\t\t\t\tcurrentUl = nestedUl;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUl.appendChild(li);\r\n\t\t\t}\r\n\r\n\t\t\tcreateNestedList(li, heading.children);\r\n\t\t});\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc'\r\n\t\tconst ulFloat = document.getElementById('list_toc');\r\n\r\n\t\t\/\/ Dapatkan isi (child elements) dari ul dengan id 'list_toc'\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\r\n\t\t\/\/ Tambahkan isi yang telah didapatkan dari 'list_toc' ke ul dengan id 'list_toc_float'\r\n\t\tulToc.append(...clonedChildren);\r\n\r\n\r\n        \/\/ Fungsi untuk mengambil tinggi navbar\r\n\t\tfunction getNavbarHeight() {\r\n\t\t\tconst navbar = document.getElementById('tdi_34');\r\n\t\t\treturn navbar ? navbar.offsetHeight : 0;\r\n\t\t}\r\n\r\n\t\t\/\/ Fungsi untuk menambahkan offset posisi scroll\r\n\t\tfunction scrollToElementWithOffset(elementId) {\r\n\t\t\tconst element = document.getElementById(elementId);\r\n\t\t\tif (element) {\r\n\t\t\t\tconst offset = getNavbarHeight();\r\n\t\t\t\tconst elementPosition = element.getBoundingClientRect().top;\r\n\t\t\t\tconst offsetPosition = elementPosition - offset - 40;\r\n\r\n\t\t\t\twindow.scrollBy({\r\n\t\t\t\t\ttop: offsetPosition,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Fungsi untuk menangani klik pada tautan judul\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst href = event.target.getAttribute('href').substr(1);\r\n\t\t\tscrollToElementWithOffset(href);\r\n\t\t}\r\n\r\n\t\t\/\/ Tambahkan event listener untuk semua tautan judul\r\n\t\tconst titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t\t\r\n\t});\r\n    <\/script> -->\r\n<\/span><\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dalam dunia usaha kuliner yang beroperasi dari pagi hingga malam hari penyusunan shift kerja menjadi elemen krusial dalam menjaga performa operasional dan kesehatan karyawan.<\/span><\/li>\n<li aria-level=\"1\"><span style=\"font-weight: 400;\">Mengatur komposisi tim di setiap shift secara merata adalah salah satu cara yang bisa dilakukan untuk mengatur jam kerja restoran.<\/span><\/li>\n<li aria-level=\"1\">Implementasi sistem F&amp;B HashMicro yang terintegrasi adalah solusi efektif yang bisa dilakukan untuk mengatur jam kerja karyawan restoran yang efektif.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><b>Ketentuan Shift Jadwal Jam Kerja Restoran<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Dalam dunia usaha kuliner yang beroperasi dari pagi hingga malam hari penyusunan shift kerja menjadi elemen krusial dalam menjaga performa operasional dan kesehatan karyawan. Shift kerja yang diatur dengan baik akan mencegah kelelahan, meningkatkan efisiensi, dan menjaga kualitas pelayanan kepada pelanggan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Secara hukum, pengaturan jam kerja ini mengacu pada Undang-Undang Nomor 13 Tahun 2003 tentang Ketenagakerjaan yang telah diperbarui melalui <\/span><a href=\"https:\/\/peraturan.bpk.go.id\/Details\/149750\/uu-no-11-tahun-2020\"><span style=\"font-weight: 400;\">UU Cipta Kerja (UU No. 11 Tahun 2020<\/span><\/a><span style=\"font-weight: 400;\">). Dalam ketentuannya, jam kerja karyawan dibatasi maksimal 7 jam per hari dan 40 jam per minggu untuk 6 hari kerja, atau 8 jam per hari untuk 5 hari kerja.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Penerapan sistem shift harus disesuaikan dengan kebutuhan operasional restoran dan memperhatikan beban kerja yang seimbang antar karyawan. Selain itu, penting untuk mencatat jam kerja secara akurat dan memastikan kompensasi diberikan sesuai dengan ketentuan perundang-undangan.<\/span><\/p>\n<h2><b>Jenis-Jenis Shift Jadwal Jam Kerja Restoran<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Setiap restoran memiliki pola operasional yang berbeda, tergantung pada jam buka, volume pelanggan, dan skema kerja yang diterapkan. Untuk menjaga efisiensi dan kualitas pelayanan, bisnis kuliner umumnya membagi jam kerja karyawan ke dalam beberapa jenis shift.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pembagian ini bertujuan agar tenaga kerja tersebar merata sepanjang hari tanpa membebani karyawan secara berlebihan. Berikut adalah jenis-jenis shift yang umum digunakan dalam industri restoran:<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1.Shift pagi (opening shift)<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Shift ini biasanya dimulai pada pukul 07.00 hingga 15.00. Karyawan yang bertugas pada shift pagi bertanggung jawab atas persiapan operasional restoran, seperti menyiapkan dapur, membersihkan area layanan, serta melayani pelanggan untuk menu sarapan dan makan siang.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">2. Shift sore (middle shift)<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Berlangsung sekitar pukul 12.00 hingga 20.00, shift ini bertugas di waktu transisi antara makan siang dan makan malam. Jumlah pelanggan biasanya cukup tinggi pada jam-jam ini, sehingga membutuhkan personel yang sigap dan fokus menjaga kelancaran layanan<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">3. Shift malam (closing shift)<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Dijalankan dari pukul 15.00 hingga 23.00 atau menyesuaikan waktu tutup restoran. Tim closing bertugas melayani pelanggan malam, menangani order terakhir, serta melakukan pembersihan dan penutupan operasional.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">4. Split shift (shift terbagi)<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Karyawan dalam <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/split-shift-adalah\/\">sistem pengeloaan jadwal kerja split shift<\/a> ini bekerja dalam dua sesi terpisah, misalnya pukul 10.00\u201314.00 dan 17.00\u201321.00, dengan jeda panjang di antara waktu sibuk. Model ini umum diterapkan di restoran yang mengalami dua puncak kunjungan\u2014makan siang dan makan malam.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">5. Full shift (shift penuh)<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Biasanya dijalani oleh manajer atau posisi tertentu dengan tanggung jawab penuh selama operasional restoran, mencakup 8 jam kerja penuh atau sesuai kebutuhan harian.<\/span><\/p>\n<h2><b>Cara Pembagian Shift Jadwal Jam Kerja Restoran<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Membagi shift kerja restoran secara efektif membutuhkan pendekatan yang terstruktur dan mempertimbangkan berbagai aspek operasional. Manajer restoran harus menyusun jadwal dengan cermat agar seluruh jam operasional terisi oleh tenaga kerja yang cukup tanpa membebani individu tertentu.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Berikut langkah-langkah pembagian shift kerja yang bisa kamu terapkan:<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1. Identifikasi jam operasional dan waktu sibuk<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Tentukan terlebih dahulu jam buka dan tutup restoran setiap hari. Selanjutnya, analisis jam-jam sibuk berdasarkan data transaksi atau pengunjung. Fokuskan pembagian shift agar tenaga kerja tersebar optimal pada jam padat.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">2. Tentukan jumlah dan durasi shift yang tepat<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Sesuaikan jumlah shift dengan panjang jam operasional dan pola kunjungan pelanggan. Contohnya, restoran 16 jam bisa menggunakan dua shift (08.00\u201316.00 dan 16.00\u201300.00) atau tiga shift yang lebih pendek. Hindari membuat shift terlalu panjang agar karyawan tidak kelelahan.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">3. Atur komposisi tim di setiap shift secara merata<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Bagi karyawan ke tiap shift dengan mempertimbangkan peran penting seperti dapur, pelayan, dan kasir. Pastikan setiap shift memiliki tenaga kerja yang cukup untuk melayani pelanggan. Komposisi seimbang akan mencegah antrean panjang dan mempercepat pelayanan.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">4. Lakukan rotasi shift secara adil dan konsisten<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Gilir karyawan untuk menghindari jadwal yang monoton dan tidak adil. Misalnya, karyawan A mendapat shift pagi minggu ini, lalu sore minggu depan. Rotasi ini membantu menjaga keseimbangan beban kerja dan meningkatkan semangat tim.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">5. Berikan waktu istirahat antar shift yang memadai<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Hindari memberikan jadwal kerja dua shift berdekatan tanpa jeda yang cukup. Pastikan karyawan memiliki waktu istirahat minimal 11 jam sebelum kembali bekerja. Hal ini penting untuk menjaga stamina dan performa kerja mereka.<\/span><\/p>\n<h2><b>Contoh Pembagian Shift Jadwal Jam Kerja Restoran<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Berikut adalah contoh jadwal kerja restoran yang bisa Anda simak:\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1. Pembagian jadwal kerja mingguan<\/span><\/h3>\n<h3><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-12-135131.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-163443 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-12-135131.png\" alt=\"Contoh\" width=\"727\" height=\"77\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-12-135131.png 727w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-12-135131-300x32.png 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-12-135131-150x16.png 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-12-135131-696x74.png 696w\" sizes=\"auto, (max-width: 727px) 100vw, 727px\" \/><\/a><\/span><\/h3>\n<h3><span style=\"font-weight: 400;\">2. Pembagian jadwal kerja bulanan<\/span><\/h3>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-101043.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-163444 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-101043.png\" alt=\"Contoh\" width=\"354\" height=\"115\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-101043.png 354w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-101043-300x97.png 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-101043-150x49.png 150w\" sizes=\"auto, (max-width: 354px) 100vw, 354px\" \/><\/a><\/p>\n<h2><b>Tips Menyusun Jadwal Jam Kerja Restoran yang Adil untuk Karyawan<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Membuat jadwal kerja yang adil tidak hanya menjaga operasional restoran tetap lancar, tapi juga menjaga semangat kerja dan loyalitas karyawan. Ketika jadwal dibuat tanpa pertimbangan menyeluruh, karyawan bisa merasa terbebani, tidak dihargai, atau bahkan mencari pekerjaan lain. Berikut beberapa tips agar penyusunan jadwal kerja terasa adil dan tetap profesional:<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1. Rotasikan shift secara berkala<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Jangan biarkan satu karyawan selalu berada di shift pagi atau malam. Dengan melakukan rotasi, kamu memberi semua staf kesempatan merasakan jam kerja yang lebih fleksibel dan menghindari kelelahan ekstrem.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">2. Libatkan karyawan dalam diskusi jadwal<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Ajak staf berdiskusi sebelum finalisasi jadwal. Mereka bisa memberikan masukan soal preferensi hari libur atau waktu kerja tertentu, yang akan membantu kamu menyusun jadwal lebih manusiawi dan disepakati bersama.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">3. Pertimbangkan beban kerja setiap posisi<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Bandingkan beban kerja masing-masing shift dan pastikan pembagian karyawan sesuai kapasitas dan tanggung jawab. Hindari overstaffing di waktu sepi dan under staffing di waktu ramai.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">4. Gunakan sistem F&amp;B yang terintegrasi<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Kelola jadwal karyawan dengan lebih rapi dan transparan lewat sistem F&amp;B digital. Salah satu solusi terbaik adalah<\/span><a href=\"https:\/\/www.hashmicro.com\/id\/hash-fnb-software\"><span style=\"font-weight: 400;\"> sistem F&amp;B dari HashMicro<\/span><\/a><span style=\"font-weight: 400;\">, yang dapat membantu kamu mengatur jadwal kerja, mencatat jam masuk, dan memastikan tidak ada bentrok shift atau kekosongan tim.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/id\/hash-fnb-software?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/51-FNB-Technology-Desktop.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/51-FNB-Technology-Desktop.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/02\/51-FNB-Technology-Mobile.webp\" alt=\"HashFBTechnology\" 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><\/span><\/p>\n<h3><span style=\"font-weight: 400;\">5. Evaluasi jadwal secara berkala<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Setelah jadwal berjalan selama satu atau dua minggu, evaluasi efektivitasnya. Tinjau apakah ada keluhan dari staf, penurunan layanan, atau kebutuhan tambahan yang belum terpenuhi, lalu perbaiki dengan cepat.<\/span><\/p>\n<h2><b>HashMicro F&amp;B: Kunci Manajemen Jadwal Shift Restoran Lebih Efisien<\/b><\/h2>\n<p><a href=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-084421.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-163446 size-full\" src=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-084421.png\" alt=\"HashMicro\" width=\"864\" height=\"674\" srcset=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-084421.png 864w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-084421-300x234.png 300w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-084421-768x599.png 768w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-084421-538x420.png 538w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-084421-150x117.png 150w, https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-13-084421-696x543.png 696w\" sizes=\"auto, (max-width: 864px) 100vw, 864px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">HashMicro adalah <a href=\"https:\/\/www.hashmicro.com\/id\/blog\/software-industri-fb-adalah\/\">software industri F&amp;B<\/a> yang dirancang khusus untuk membantu operasional restoran berjalan lebih efisien dan terorganisir. Sistem ini memberikan solusi all-in-one untuk manajemen restoran, mulai dari pengelolaan pesanan, stok bahan baku, hingga penjadwalan shift karyawan yang lebih rapi dan adil.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dengan fitur penjadwalan shift otomatis, manajer restoran dapat mengatur jadwal kerja setiap staf secara fleksibel dan transparan tanpa perlu menyusun secara manual. Selain itu, sistem F&amp;B HashMicro juga terintegrasi dengan modul lain seperti POS, manajemen inventaris, CRM, dan akuntansi, sehingga seluruh aktivitas operasional restoran dapat dikendalikan dari satu platform yang sama.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">HashMicro juga memberikan dukungan teknis dan pelatihan yang komprehensif bagi setiap penggunanya, lengkap dengan layanan pelanggan yang responsif untuk membantu implementasi berjalan lancar. Anda bahkan bisa mencoba demo gratis dari sistem F&amp;B HashMicro sebelum mengambil keputusan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Berikut adalah fitur-fitur sistem F&amp;B HashMicro:\u00a0<\/span><\/p>\n<ul>\n<li aria-level=\"1\"><b>Employee Scheduling Automation: <\/b><span style=\"font-weight: 400;\">Modul ini memungkinkan manajer menetapkan shift kerja otomatis berdasarkan preferensi, jadwal libur, dan kebutuhan operasional tanpa hitung manual. Sistem juga memberi notifikasi dini jika ada kekurangan tenaga di salah satu shift, sehingga kamu bisa langsung antisipasi.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-level=\"1\"><b>Time &amp; Attendance Tracking (Timesheet): <\/b><span style=\"font-weight: 400;\">Karyawan bisa mencatat jam masuk dan pulang via sistem, sementara manajer melihat rekap otomatis lengkap termasuk lembur dan absen. Fitur ini memastikan transparansi dan akurasi penghitungan jam kerja, sekaligus mempersiapkan data payroll.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-level=\"1\"><b>Integrasi dengan POS &amp; HRM: <\/b><span style=\"font-weight: 400;\">Dengan koneksi POS dan HRM, sistem secara real-time mencocokkan jumlah staf dengan data penjualan, memudahkan perencanaan shift berdasarkan perkiraan pengunjung. Sinkronisasi ini membantu kamu menghindari under-staffing atau over-staffing.\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-level=\"1\"><b>Analytics &amp; Real-Time Reporting: <\/b><span style=\"font-weight: 400;\">Dasbor powerful menampilkan insight seperti produktivitas per shift, tren kehadiran, dan pola lembur. Data ini membantu kamu evaluasi performa shift\u2014apakah terlalu berat, terlalu ringan, atau sudah ideal.<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-level=\"1\"><b>Mobile Access dan Scheduling Management: <\/b><span style=\"font-weight: 400;\">Staf bisa melihat dan mengatur jadwal lewat aplikasi mobile atau web kapan saja, sehingga mereka tahu shift sejak jauh hari dan bisa menyesuaikan rencana. Fitur ini memberi kendali fleksibel bagi karyawan sekaligus meningkatkan kepuasan tim.\u00a0<\/span><\/li>\n<\/ul>\n<h2><b>Kesimpulan<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Menyusun pembagian jam kerja yang efektif sangat penting untuk menjaga kelancaran operasional restoran dan kesejahteraan karyawan. Jika pengaturan shift dilakukan tanpa perencanaan yang matang, dampaknya bisa dirasakan langsung melalui menurunnya produktivitas, kualitas layanan, hingga tingginya tingkat kelelahan staf.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Untuk itu, penggunaan sistem digital seperti <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/hash-fnb-software\"><b>HashMicro F&amp;B<\/b><\/a><span style=\"font-weight: 400;\"> bisa menjadi solusi terbaik. Dengan fitur pengelolaan shift otomatis, pemantauan real-time, dan integrasi antar modul, HashMicro membantu restoran Anda mengatur jadwal kerja secara efisien dan adil.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Coba <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\"><span style=\"font-weight: 400;\">demo gratis<\/span><\/a><span style=\"font-weight: 400;\"> sekarang dan temukan bagaimana sistem F&amp;B HashMicro dapat mempermudah pengelolaan operasional restoran Anda secara menyeluruh.<\/span><\/p>\n<h2><strong>Pertanyaan Seputar Jam Kerja Restoran<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><span style=\"background-color: #e8e8e8;\"><strong>Apakah karyawan restoran berhak atas istirahat selama shift?<\/strong><\/span><\/summary>\n<p>Ya, karyawan restoran berhak atas waktu istirahat selama shift, yaitu minimal 30 menit setelah bekerja selama 4 jam terus-menerus, sesuai ketentuan dalam UU Ketenagakerjaan Pasal 79 Ayat 2.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><span style=\"background-color: #e8e8e8;\"><strong>Apakah jadwal kerja restoran harus sama setiap minggu?<\/strong><\/span><\/summary>\n<p>Tidak, jadwal kerja restoran tidak harus sama setiap minggu, asalkan total jam kerja tidak melebihi batas yang diatur undang-undang dan pembagian shift dilakukan secara adil bagi seluruh karyawan.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><span style=\"background-color: #e8e8e8;\"><strong>Apa konsekuensi jika jam kerja melebihi batas yang ditentukan?<\/strong><\/span><\/summary>\n<p>Jika jam kerja melebihi batas yang ditentukan tanpa kompensasi lembur, perusahaan dapat dikenai sanksi administratif dan denda sesuai peraturan ketenagakerjaan yang berlaku.<\/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\": \"Apakah karyawan restoran berhak atas istirahat selama shift?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Ya, karyawan restoran berhak atas waktu istirahat selama shift, yaitu minimal 30 menit setelah bekerja selama 4 jam terus-menerus, sesuai ketentuan dalam UU Ketenagakerjaan Pasal 79 Ayat 2.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apakah jadwal kerja restoran harus sama setiap minggu?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Tidak, jadwal kerja restoran tidak harus sama setiap minggu, asalkan total jam kerja tidak melebihi batas yang diatur undang-undang dan pembagian shift dilakukan secara adil bagi seluruh karyawan.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Apa konsekuensi jika jam kerja melebihi batas yang ditentukan?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Jika jam kerja melebihi batas yang ditentukan tanpa kompensasi lembur, perusahaan dapat dikenai sanksi administratif dan denda sesuai peraturan ketenagakerjaan yang berlaku.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mengatur jam kerja karyawan restoran adalah tantangan penting dalam menjaga kelancaran operasional. Jika tidak diatur dengan baik, masalah seperti kelelahan, konflik antar shift, hingga menurunnya kualitas pelayanan bisa terjadi.\u00a0 Jadwal yang tidak adil juga dapat memicu turnover tinggi dan merugikan bisnis secara keseluruhan. Karena itu, pembagian jam kerja perlu dirancang secara strategis agar adil, efisien, [&hellip;]<\/p>\n","protected":false},"author":221,"featured_media":163442,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1146],"tags":[],"class_list":{"0":"post-163441","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-catering"},"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>Contoh &amp; Cara Efektif Pembagian Jam Kerja Restoran<\/title>\n<meta name=\"description\" content=\"Baca artikel ini untuk memahami cara efektif membagi jam kerja restoran agar bisnis tetap berjalan secara optimal!\" \/>\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\/jam-kerja-restoran\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Contoh &amp; Cara Efektif Pembagian Jam Kerja Restoran\" \/>\n<meta property=\"og:description\" content=\"Baca artikel ini untuk memahami cara efektif membagi jam kerja restoran agar bisnis tetap berjalan secara optimal!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/\" \/>\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-06-13T03:22:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-16T07:21:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Desain-tanpa-judul-1-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Oscar Renatha\" \/>\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=\"Oscar Renatha\" \/>\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\\\/jam-kerja-restoran\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/\"},\"author\":{\"name\":\"Oscar Renatha\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#\\\/schema\\\/person\\\/499b4ccbd39a4544e629ce4d1bf64382\"},\"headline\":\"Contoh &#038; Cara Efektif Pembagian Jam Kerja Restoran\",\"datePublished\":\"2025-06-13T03:22:47+00:00\",\"dateModified\":\"2025-12-16T07:21:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/\"},\"wordCount\":1594,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Desain-tanpa-judul-1-scaled.png\",\"articleSection\":[\"Smart Catering Technology\"],\"inLanguage\":\"id\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/\",\"name\":\"Contoh & Cara Efektif Pembagian Jam Kerja Restoran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Desain-tanpa-judul-1-scaled.png\",\"datePublished\":\"2025-06-13T03:22:47+00:00\",\"dateModified\":\"2025-12-16T07:21:51+00:00\",\"description\":\"Baca artikel ini untuk memahami cara efektif membagi jam kerja restoran agar bisnis tetap berjalan secara optimal!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Desain-tanpa-judul-1-scaled.png\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Desain-tanpa-judul-1-scaled.png\",\"width\":2048,\"height\":1024,\"caption\":\"Shift Restoran\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/jam-kerja-restoran\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contoh &#038; Cara Efektif Pembagian Jam Kerja Restoran\"}]},{\"@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\\\/499b4ccbd39a4544e629ce4d1bf64382\",\"name\":\"Oscar Renatha\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Oscar-96x96.webp\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Oscar-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Oscar-96x96.webp\",\"caption\":\"Oscar Renatha\"},\"description\":\"Berpengalaman selama 3 tahun dalam industri SaaS khususnya bidang POS, Oscar berfokus pada penulisan artikel terkait integrasi POS dengan modul lain, manajemen transaksi penjualan, multi-store management, dan strategi penjualan yang dapat membantu para pelaku bisnis meningkatkan pertumbuhan bisnis mereka.\",\"sameAs\":[\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/\"],\"gender\":\"Laki-laki\",\"knowsAbout\":[\"POS\",\"penjualan\",\"strategi penjualan\"],\"knowsLanguage\":[\"Inggris\",\"Indonesia\"],\"jobTitle\":\"Content Writer\",\"url\":\"https:\\\/\\\/www.hashmicro.com\\\/id\\\/blog\\\/author\\\/oscar-renatha\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Contoh & Cara Efektif Pembagian Jam Kerja Restoran","description":"Baca artikel ini untuk memahami cara efektif membagi jam kerja restoran agar bisnis tetap berjalan secara optimal!","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\/jam-kerja-restoran\/","og_locale":"id_ID","og_type":"article","og_title":"Contoh & Cara Efektif Pembagian Jam Kerja Restoran","og_description":"Baca artikel ini untuk memahami cara efektif membagi jam kerja restoran agar bisnis tetap berjalan secara optimal!","og_url":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/","og_site_name":"HashMicro Indonesia","article_publisher":"https:\/\/www.facebook.com\/hashmicro","article_published_time":"2025-06-13T03:22:47+00:00","article_modified_time":"2025-12-16T07:21:51+00:00","og_image":[{"width":2048,"height":1024,"url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Desain-tanpa-judul-1-scaled.png","type":"image\/png"}],"author":"Oscar Renatha","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Ditulis oleh":"Oscar Renatha","Estimasi waktu membaca":"10 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/"},"author":{"name":"Oscar Renatha","@id":"https:\/\/www.hashmicro.com\/id\/blog\/#\/schema\/person\/499b4ccbd39a4544e629ce4d1bf64382"},"headline":"Contoh &#038; Cara Efektif Pembagian Jam Kerja Restoran","datePublished":"2025-06-13T03:22:47+00:00","dateModified":"2025-12-16T07:21:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/"},"wordCount":1594,"publisher":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Desain-tanpa-judul-1-scaled.png","articleSection":["Smart Catering Technology"],"inLanguage":"id"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/","url":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/","name":"Contoh & Cara Efektif Pembagian Jam Kerja Restoran","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Desain-tanpa-judul-1-scaled.png","datePublished":"2025-06-13T03:22:47+00:00","dateModified":"2025-12-16T07:21:51+00:00","description":"Baca artikel ini untuk memahami cara efektif membagi jam kerja restoran agar bisnis tetap berjalan secara optimal!","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/#primaryimage","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Desain-tanpa-judul-1-scaled.png","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/06\/Desain-tanpa-judul-1-scaled.png","width":2048,"height":1024,"caption":"Shift Restoran"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/id\/blog\/jam-kerja-restoran\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/id\/blog\/"},{"@type":"ListItem","position":2,"name":"Contoh &#038; Cara Efektif Pembagian Jam Kerja Restoran"}]},{"@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\/499b4ccbd39a4544e629ce4d1bf64382","name":"Oscar Renatha","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Oscar-96x96.webp","url":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Oscar-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/id\/blog\/wp-content\/uploads\/2025\/10\/Oscar-96x96.webp","caption":"Oscar Renatha"},"description":"Berpengalaman selama 3 tahun dalam industri SaaS khususnya bidang POS, Oscar berfokus pada penulisan artikel terkait integrasi POS dengan modul lain, manajemen transaksi penjualan, multi-store management, dan strategi penjualan yang dapat membantu para pelaku bisnis meningkatkan pertumbuhan bisnis mereka.","sameAs":["https:\/\/www.hashmicro.com\/id\/"],"gender":"Laki-laki","knowsAbout":["POS","penjualan","strategi penjualan"],"knowsLanguage":["Inggris","Indonesia"],"jobTitle":"Content Writer","url":"https:\/\/www.hashmicro.com\/id\/blog\/author\/oscar-renatha\/"}]}},"focus_keyword":"jam kerja restoran","order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/163441","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\/221"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/comments?post=163441"}],"version-history":[{"count":2,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/163441\/revisions"}],"predecessor-version":[{"id":180863,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/posts\/163441\/revisions\/180863"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media\/163442"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/media?parent=163441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/categories?post=163441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/id\/blog\/wp-json\/wp\/v2\/tags?post=163441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}