{"id":6888,"date":"2025-04-24T09:25:55","date_gmt":"2025-04-24T09:25:55","guid":{"rendered":"https:\/\/www.hashmicro.com\/my\/blog\/?p=6888"},"modified":"2026-03-02T09:30:21","modified_gmt":"2026-03-02T09:30:21","slug":"bookkeeping","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/","title":{"rendered":"A Comprehensive Guide to Bookkeeping for Malaysian Businesses"},"content":{"rendered":"<p>Running a business often feels like juggling way too many things at once, doesn\u2019t it? From tracking cash flow to managing bookkeeping and keeping inventory in check, things can get overwhelming fast, especially without the right systems in place.<\/p>\n<p data-start=\"680\" data-end=\"933\">That\u2019s where a smart accounting system like <a href=\"https:\/\/www.hashmicro.com\/my\/accounting-software\">HashMicro\u2019s integrated accounting software<\/a> can make all the difference. By automating day-to-day bookkeeping tasks, it helps maintain accuracy, reduce manual work, and give you real-time insights into your business performance.<\/p>\n<p>If you\u2019re not yet familiar with the basics of bookkeeping, don\u2019t worry! This article breaks it down for you. Then, we\u2019ll introduce a smart tool that not only records transactions accurately, but does a whole lot more to support your business. Are you curious already? Keep reading to find out!<\/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\">Maintaining <a href=\"#important\">organized financial records<\/a> is crucial for tracking business performance and making informed decisions.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#type\">Companies can adopt<\/a> either single-entry or double-entry record-keeping methods, using cash-based or accrual-based accounting approaches.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#benefit\">Accurate financial documentation<\/a> is key to managing cash flow, preparing reports, handling taxes, and supporting business growth across industries.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#hashmicro\">HashMicro\u2019s smart accounting software<\/a> streamlines financial management with automation, compliance support, and real-time insights.<\/li>\n<\/ul>\n<p><style>\r\n.button-cta-custom {\r\n    background-color: #8a0e19;\r\n    color: #fff !important;\r\n    -webkit-transition: all .3s ease;\r\n    transition: all .3s ease;\r\n    padding: 8px 24px;\r\n    display: inline-block;\r\n    border-radius: 8px;\r\n    font-size: 16px;\r\n    font-weight: bold;\r\n}\r\n.button-cta-custom:hover{\r\n\tbackground-color:#991b26\t\t\r\n}\r\n<\/style>\r\n<a class=\"button-cta-custom\" href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo?medium=cta-button\" target=\"_blank\">Click Here to Get the Free Demo!<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/?medium=free-product-demo\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2024\/07\/free-demo-mobile-my.jpg\" alt=\"FreeDemo\" 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><!-- <div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Content\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div class=\"dropdown-fixed-top\" id=\"dropdown-fixed-top\">\r\n\t<div class=\"row\">\r\n\t\t<p id=\"pilihDaftarIsi\">Content Lists<\/p>\r\n\t\t<p><i class=\"td-icon-menu-down\"><\/i><\/p>\r\n\t<\/div>\r\n\t\r\n\t<div>\r\n\t\t<ul id=\"list_toc_top\" class='list_toc'><\/ul>\r\n\t<\/div>\r\n<\/div> -->\r\n\r\n<!-- TOC mobile -->\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\">Table of Content<\/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<!-- TOC mobile -->\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\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_top 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: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\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#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}\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\t\t\t\t\r\n\t}\r\n\r\n<\/style>\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\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_top 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: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\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#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\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\r\n<\/style>\r\n\r\n<!-- START ToC styling  -->\r\n<style>\r\n\t\/* 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\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<!-- END ToC styling  -->\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\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 + 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 = 'Table of Content';\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 = 'Table of Content'; \/\/ 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 = 'Table of Content'; \/\/ 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 = 'Table of Content'; \/\/ 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<\/script>\r\n\r\n<!-- <script>\r\n\tvar pilihDaftarIsi = document.getElementById('pilihDaftarIsi');\r\n\t\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\tvar dropdownFixedTop = document.querySelector('.dropdown-fixed-top');\r\n\r\n\t\tdropdownFixedTop.addEventListener('click', function() {\r\n\t\t\tvar dropdownContent = this.querySelector('.list_toc');\r\n\t\t\tdropdownContent.classList.toggle('show');\r\n\t\t});\r\n\r\n\t\twindow.addEventListener('click', function(event) {\r\n\t\t\tvar listTocTop = document.getElementById('list_toc_top');\r\n\r\n\t\t\tif (!dropdownFixedTop.contains(event.target)) {\r\n\t\t\t\tlistTocTop.classList.remove('show');\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\t\r\n\tvar daftarIsiContainer = document.getElementById('toc_group_article');\r\n\tvar dropdownFixedTop = document.getElementById('dropdown-fixed-top');\r\n    var triggered = false; \/\/ Flag to keep track of whether the function has been triggered\r\n\r\n    window.addEventListener('scroll', function() {\r\n        if (!triggered && isCompletelyScrolledPast(daftarIsiContainer)) {\r\n            showSectionDropdownFixedTop(false);\r\n            triggered = true;\r\n        } else if (triggered && !isCompletelyScrolledPast(daftarIsiContainer)) {\r\n            showSectionDropdownFixedTop(true);\r\n            triggered = false;\r\n        }\r\n    });\r\n\r\n    function isCompletelyScrolledPast(element) {\r\n        var elementTop = element.getBoundingClientRect().top;\r\n        var elementBottom = element.getBoundingClientRect().bottom;\r\n        return elementTop < 0 && elementBottom < 0;\r\n    }\r\n\r\n    function showSectionDropdownFixedTop(show) {\r\n\t\tif (show) {\r\n\t\t\tdropdownFixedTop.classList.remove(\"show\");\r\n\t\t} else {\r\n\t\t\tdropdownFixedTop.classList.add(\"show\");\r\n\t\t}\r\n    }\r\n\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        } 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\t\t  pilihDaftarIsi.innerHTML = a.textContent;\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', 'list_toc_top']; \/\/ 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<!-- END script lama -->\r\n\t\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        } 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', 'list_toc_top']; \/\/ 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\t\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        \/\/ Fungsi untuk mengubah teks menjadi format id\r\n        function formatId(text) {\r\n            return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n        }\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        const elements = document.querySelectorAll('.td-post-content h2');\r\n\t\t\t\/\/, .td-post-content h3\r\n\r\n        elements.forEach(element => {\r\n            if (element.tagName === 'H2') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n\t\t\t\tif(element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Biar ga nampilin Key Takeaways di ToC\r\n                headings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n            } else if (element.tagName === 'H3') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n                if (headings.length > 0) {\r\n                    headings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Membuat list HTML dari objek headings\r\n        const ul = document.getElementById('list_toc');\r\n        let currentUl = ul;\r\n        headings.forEach(heading => {\r\n            const li = document.createElement('li');\r\n            const a = document.createElement('a');\r\n            a.textContent = heading.title;\r\n            a.href = `#${heading.id}`;\r\n            li.appendChild(a);\r\n\r\n            if (heading.level === 'h2') {\r\n                \/\/ Menyimpan ul saat ini untuk menambahkan nested ul\r\n                currentUl = li;\r\n                ul.appendChild(li);\r\n            } else if (heading.level === 'h3') {\r\n                if (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n                    \/\/ Jika belum ada nested ul, buat satu\r\n                    const nestedUl = document.createElement('ul');\r\n                    currentUl.appendChild(nestedUl);\r\n                    currentUl = nestedUl;\r\n                }\r\n                currentUl.appendChild(li);\r\n            }\r\n\r\n            createNestedList(li, heading.children);\r\n        });\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\n\/\/ Dapatkan isi (child elements) dari ul dengan id 'list_toc_float'\r\n\tif (ulFloat !== null) {\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\t\tconst ulTocTop = document.getElementById('list_toc_top');\r\n\t\tif ((ulToc !== null || ulToc !== undefined) && window.innerWidth > 1018){\r\n\t\t\tulToc.append(...clonedChildren);\r\n\t\t} else {\r\n\t\t\tulTocTop.append(...clonedChildren);\r\n\t\t}\r\n\t} \r\n\r\n\tif (ulJourney !== null) {\r\n\t\tconst clonedChildrenJourney = ulJourney.cloneNode(true).children;\r\n\t\tconst ulTocJourney = document.getElementById('list_toc_journey');\r\n\t\tulTocJourney.append(...clonedChildrenJourney);\r\n\t} \r\n\r\n\r\n\r\n\r\n\t\r\n        \/\/ Fungsi untuk mengambil tinggi navbar\r\n        function getNavbarHeight() {\r\n            const navbar = document.getElementById('tdi_34');\r\n            return navbar ? navbar.offsetHeight : 0;\r\n        }\r\n\r\n        \/\/ Fungsi untuk menambahkan offset posisi scroll\r\n        function scrollToElementWithOffset(elementId) {\r\n            const element = document.getElementById(elementId);\r\n            if (element) {\r\n                const offset = getNavbarHeight();\r\n                const elementPosition = element.getBoundingClientRect().top;\r\n                const offsetPosition = elementPosition - offset-40;\r\n\r\n                window.scrollBy({\r\n                    top: offsetPosition,\r\n                    behavior: 'smooth'\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Fungsi untuk menangani klik pada tautan judul\r\n        function handleTitleClick(event) {\r\n            event.preventDefault();\r\n            const href = event.target.getAttribute('href').substr(1);\r\n            scrollToElementWithOffset(href);\r\n        }\r\n\r\n        \/\/ Tambahkan event listener untuk semua tautan judul\r\n        const titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n        titleLinks.forEach(link => {\r\n            link.addEventListener('click', handleTitleClick);\r\n        });\r\n\t});\r\n    <\/script> -->\r\n<!-- \t<style>#toc_group_float{display:block !important}<\/style> -->\r\n<\/span><\/p>\n<h2><b>What is Bookkeeping?<\/b><\/h2>\n<p>Bookkeeping refers to the consistent recording of a company\u2019s financial activities. Accurate bookkeeping helps businesses monitor their financial records and supports informed decisions related to operations, investments, and funding.<\/p>\n<p>They are responsible for maintaining a company\u2019s financial data. Without them, businesses would struggle to understand their financial standing and track internal transactions.<\/p>\n<p>Typical bookkeeping duties include:<\/p>\n<ul>\n<li aria-level=\"1\">Issuing invoices for sales<\/li>\n<li aria-level=\"1\">Logging and organizing incoming payments<\/li>\n<li aria-level=\"1\">Reviewing and processing supplier invoices<\/li>\n<li aria-level=\"1\">Making payments to vendors<\/li>\n<li aria-level=\"1\">Managing payroll<\/li>\n<li aria-level=\"1\">Compiling financial statements<\/li>\n<\/ul>\n<p>Today, traditional bookkeeping methods have been mostly replaced by digital tools and software, which help streamline tasks and improve accuracy. To understand the full <a href=\"https:\/\/scholarworks.waldenu.edu\/cgi\/viewcontent.cgi?article=3494&amp;context=dissertations\">role of bookkeeping<\/a>, it\u2019s worth exploring how it fits into broader financial practices.<\/p>\n<h2><b>Types of Bookkeeping<\/b><\/h2>\n<p><span id=\"type\">Bookkeepers typically use one of two main methods to record transactions: single-entry or double-entry bookkeeping.<\/span><\/p>\n<ul>\n<li aria-level=\"1\"><b>Single-entry bookkeeping<\/b> records each transaction only once, usually in a single line. It\u2019s commonly used for basic tasks like tracking cash flow, taxable income, and deductible expenses.<\/li>\n<li aria-level=\"1\"><b>Double-entry bookkeeping<\/b>, on the other hand, records each transaction twice\u2014once as a debit and once as a credit. This method follows the accrual accounting system and helps manage a company\u2019s assets, liabilities, equity, income, and expenses more accurately.<\/li>\n<\/ul>\n<p>While single-entry is simpler and easier to manage, double-entry provides a more complete picture of a company\u2019s finances and helps reduce accounting errors.<\/p>\n<h2><b>What Does a Bookkeeper Do?<\/b><\/h2>\n<p>A bookkeeper is a financial specialist responsible for recording a <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/proof-of-payment\/\">business\u2019s daily transactions<\/a>, such as sales, purchases, payroll, accounts receivable, and <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-accounts-payable-software\/\">accounts payable<\/a>. They help track the flow of money in and out of the business by keeping detailed and organized financial records.<\/p>\n<p>Unlike accountants, bookkeepers usually don\u2019t hold formal accounting certifications. Their main role is to enter and manage transaction data within an accounting system.<\/p>\n<p>The exact duties of a bookkeeper can vary depending on the company\u2019s size and needs. Bookkeepers may work for large corporations, small businesses, or independently as freelancers. Some of their key responsibilities include:<\/p>\n<ul>\n<li aria-level=\"1\">Recording transactions using <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-accounting-software\/\">accounting software<\/a>, spreadsheets, or databases<\/li>\n<li aria-level=\"1\">Managing financial documents like bank statements, cash flow records, and profit-and-loss reports<\/li>\n<li aria-level=\"1\">Creating invoices and handling incoming payments<\/li>\n<li aria-level=\"1\">Tracking account debits and credits<\/li>\n<li aria-level=\"1\">Reconciling bank and financial statements<\/li>\n<li aria-level=\"1\">Compiling balance sheets and income statements<\/li>\n<li aria-level=\"1\">Checking financial reports for accuracy<\/li>\n<li aria-level=\"1\">Overseeing payroll processes<\/li>\n<li aria-level=\"1\">Preparing and submitting tax returns on behalf of the business<\/li>\n<\/ul>\n<h2><b>Why is Bookkeeping Important?<\/b><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-6891\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/difference-between-bookkeeping-and-accounting.webp\" alt=\"difference between bookkeeping and accounting\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/difference-between-bookkeeping-and-accounting.webp 1200w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/difference-between-bookkeeping-and-accounting-300x169.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/difference-between-bookkeeping-and-accounting-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/difference-between-bookkeeping-and-accounting-768x432.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/difference-between-bookkeeping-and-accounting-747x420.webp 747w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/difference-between-bookkeeping-and-accounting-150x84.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/difference-between-bookkeeping-and-accounting-696x392.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/difference-between-bookkeeping-and-accounting-1068x601.webp 1068w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p><span id=\"important\">Accurate bookkeeping gives businesses a dependable way to evaluate their performance. It also provides essential data for making strategic decisions and tracking progress toward income and revenue goals.<\/span><\/p>\n<p>In short, maintaining organized financial records becomes vital once a business starts operating, even if it requires additional time and investment.<\/p>\n<p>Because hiring a full-time accountant can be costly, many small businesses choose to employ a bookkeeper or outsource the work to a professional service. It\u2019s also common for new business owners to underestimate the importance of tracking every financial transaction, which can lead to issues later on.<\/p>\n<p>Many modern SMEs in Malaysia now rely on <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-financial-management-software\/\">financial management software<\/a> to maintain accurate records, monitor expenses, and generate real-time reports.<\/p>\n<h2><b>Activities in Bookkeeping<\/b><\/h2>\n<p>To maintain accurate and organized financial records, bookkeepers carry out a variety of important activities. These tasks go beyond simply recording transactions, as they aim to organize financial data.<\/p>\n<p>Below are some of the key responsibilities typically handled by bookkeepers.<\/p>\n<ul>\n<li aria-level=\"1\"><b>Financial Reports:<\/b> Bookkeepers create essential reports such as the balance sheet, income statement, and cash flow statement to give a clear picture of the business\u2019s financial health.<\/li>\n<li aria-level=\"1\"><b>Invoices and Payments:<\/b> They handle billing by creating and sending invoices to customers, tracking incoming payments, and following up to ensure they&#8217;re received on time. They also review supplier invoices for accuracy and make sure payments are made promptly.<\/li>\n<li aria-level=\"1\"><b>Payroll and Taxes:<\/b> Bookkeepers calculate employee wages, including deductions for taxes, leave, and retirement contributions. They also prepare and file tax documents such as payroll tax and sales tax returns.<\/li>\n<\/ul>\n<p>In addition, bookkeepers may support tasks like budgeting, financial forecasting, and compiling annual financial summaries.<\/p>\n<h2><b>Accrual vs Cash-Basis Bookkeeping<\/b><\/h2>\n<p>There are two commonly used accounting methods for managing small business bookkeeping effectively: the cash basis and the accrual basis.<\/p>\n<p>The key difference between them lies in the timing of when sales and expenses are recorded in the accounting records.<\/p>\n<h3><b>1. Cash Basis of Accounting<\/b><\/h3>\n<p>This method records income only when cash is received and expenses only when they are paid. It focuses purely on cash flow, making it straightforward and easier for smaller operations to manage.<\/p>\n<ul>\n<li aria-level=\"1\"><b>No tracking<\/b> of prepaid or outstanding items like accrued income or unpaid expenses<\/li>\n<li aria-level=\"1\"><b>Shows lower income<\/b> on financial statements since it only includes completed transactions<\/li>\n<li aria-level=\"1\"><b>Provides a short-term view<\/b> of financial health<\/li>\n<li aria-level=\"1\"><b>Better reflects liquidity<\/b>, you know exactly how much cash is available<\/li>\n<li aria-level=\"1\"><b>Taxes are paid only<\/b> on money that has actually been received<\/li>\n<li aria-level=\"1\"><b>Best suited for<\/b> small businesses and sole proprietors with no inventory<\/li>\n<li aria-level=\"1\"><b>Very easy to use<\/b>, as it focuses only on cash in and out<\/li>\n<\/ul>\n<ol start=\"2\">\n<li><b> Accrual Basis of Accounting<\/b><\/li>\n<\/ol>\n<p>In contrast, the accrual method records revenues and expenses when they are earned or incurred, regardless of when the cash is actually received or paid.<\/p>\n<ul>\n<li aria-level=\"1\"><b>Includes prepaid expenses, outstanding bills, and unearned revenue<\/b><\/li>\n<li aria-level=\"1\"><b>Shows higher income<\/b> on financial reports as it accounts for all earned revenue<\/li>\n<li aria-level=\"1\"><b>Provides a long-term, realistic view<\/b> of business performance<\/li>\n<li aria-level=\"1\"><b>May show profitability<\/b> even when cash is low, as it doesn\u2019t track cash movement directly<\/li>\n<li aria-level=\"1\"><b>Taxes must be paid<\/b> even on income that hasn\u2019t been collected yet<\/li>\n<li aria-level=\"1\"><b>Required for businesses<\/b> with revenues over $5 million annually<\/li>\n<li aria-level=\"1\"><b>More complex to manage<\/b>, as it involves additional tracking and adjustments<\/li>\n<\/ul>\n<p>Proper bookkeeping supports effective <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/cash-flow-management\/\">cash flow management<\/a>, which helps businesses avoid shortages and plan for growth more confidently.<\/p>\n<p>Understanding the difference between cash and accrual methods is key to choosing a system that suits your business best. To explore bookkeeping tools that simplify both approaches, click the banner below to check the pricing options for HashMicro\u2019s accounting software.<\/p>\n<p><span data-sheets-root=\"1\"><\/span><\/p>\n<h2><b>Bookkeeping vs. Accounting: What\u2019s the Difference?<\/b><\/h2>\n<p>Understanding the difference between <b>bookkeeping<\/b> and <b>accounting<\/b> is essential for any business owner. While the two are closely related, they serve different purposes and require different skill sets.<\/p>\n<p>So, what are the differences? Here are several key differences:<\/p>\n<ul>\n<li aria-level=\"1\"><b>Role in Financial Management:<\/b> Bookkeeping acts as the foundation for accounting. Once financial transactions are recorded through bookkeeping, accounting begins by analyzing that data.<\/li>\n<li aria-level=\"1\"><b>Nature of Work:<\/b> Bookkeeping is more clerical, often automated by systems and tools. Accounting is more analytical and decision-focused.<\/li>\n<li aria-level=\"1\"><b>Determining Financial Health:<\/b> Bookkeeping alone can\u2019t give you a full picture of a business\u2019s financial position. Accounting helps assess financial performance through reports and statements.<\/li>\n<li aria-level=\"1\"><b>Financial Statements:<\/b> While bookkeeping does not include the preparation of financial statements, accounting relies heavily on them, like profit and loss reports, balance sheets, and cash flow statements, to evaluate business health.<\/li>\n<li aria-level=\"1\"><b>Methods and Tools:<\/b> Bookkeepers use tools such as journals, ledgers, and trial balances. In contrast, accountants work with comprehensive statements and reports like income statements, balance sheets, and cash flow statements.<\/li>\n<li aria-level=\"1\"><b>Decision-Making Support:<\/b> Bookkeeping doesn\u2019t directly support business decision-making. Accounting, however, plays a crucial role in helping stakeholders make informed decisions based on financial insights.<\/li>\n<li aria-level=\"1\"><b>Approaches and Specializations:<\/b> Bookkeeping uses single-entry or double-entry systems. Accounting includes specializations such as financial accounting, cost accounting, and management accounting, depending on business needs.<\/li>\n<\/ul>\n<h2><b>Implementation of Bookkeeping<\/b><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-6889\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping-accounting.webp\" alt=\"bookkeeping accounting\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping-accounting.webp 1200w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping-accounting-300x169.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping-accounting-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping-accounting-768x432.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping-accounting-747x420.webp 747w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping-accounting-150x84.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping-accounting-696x392.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping-accounting-1068x601.webp 1068w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>In Malaysia, many businesses have adopted bookkeeping or cost accounting practices as part of their daily operations. However, it\u2019s important to remember that each business has its own unique accounting cycle.<\/p>\n<p>So, how do different industries apply these accounting methods? Let\u2019s take a closer look at some examples:<\/p>\n<h3><b>1. Service Companies<\/b><\/h3>\n<p>Service-based businesses typically have simpler operations, as they focus on delivering services rather than physical goods. Their process usually involves preparing the service and receiving payment from clients.<\/p>\n<p>Because of this, their financial reports mainly highlight the cost of services rendered to customers.<\/p>\n<h3><b>2. Manufacturing Companies<\/b><\/h3>\n<p>Manufacturing businesses handle the production of goods, starting from raw materials and ending with finished products ready for sale. As a result, cost accounting in this sector primarily revolves around calculating the selling price of products.<\/p>\n<p>It also provides detailed insights into the production cost of each unit stored in the warehouse.<\/p>\n<h3><b>3. Trading Companies<\/b><\/h3>\n<p>Trading companies buy and sell goods without producing them. They act as distributors, either directly or through intermediaries. For these businesses, the accounting process includes tracking goods entering and exiting inventory.<\/p>\n<p>They must also manage accounts related to cost of goods sold (COGS), stock levels, discounts, markdowns, and other retail-specific factors.<\/p>\n<p>In fast-moving sectors like fashion, accurate bookkeeping is especially important. Every purchase and sale transaction must be properly recorded to maintain financial clarity and avoid discrepancies.<\/p>\n<p>You can also review standard <a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S2405844023111194\">bookkeeping practices<\/a> to see how they\u2019re applied across different industries.<\/p>\n<h2><b>How to Set Up Bookkeeping for Business<\/b><\/h2>\n<p>To properly implement the bookkeeping process in your business, you\u2019ll need to go through the following steps:<\/p>\n<h3><b>1. Open a Business Bank Account<\/b><\/h3>\n<p>Start by opening a dedicated checking account for your business. This helps you manage your company\u2019s finances in an organized manner.<\/p>\n<h3><b>2. Separate Business and Personal Finances<\/b><\/h3>\n<p>Keep your business expenses completely separate from your personal ones. Mixing the two can create confusion and make tax filing much more stressful later on.<\/p>\n<h3><b>3. Choose a Bookkeeping Method<\/b><\/h3>\n<p>Select between the <b>single-entry<\/b> and <b>double-entry<\/b> bookkeeping systems.<\/p>\n<ul>\n<li aria-level=\"1\">If you&#8217;re just starting out, the <b>single-entry system<\/b> may be more suitable since it records each transaction once, either as income or expense, while tracking assets and liabilities separately.<\/li>\n<li aria-level=\"1\">For more comprehensive financial tracking, the <b>double-entry system<\/b> is preferred. It records every transaction in at least two accounts (one debit and one credit) offering a more accurate and balanced view of your business finances.<\/li>\n<\/ul>\n<h3><b>4. Select an Accounting Method<\/b><\/h3>\n<p>Decide whether to use the <b>cash basis<\/b> or <b>accrual basis<\/b> of accounting.<\/p>\n<ul>\n<li aria-level=\"1\">Many small businesses begin with the <b>cash basis<\/b> because it\u2019s simple and doesn\u2019t require tracking accounts receivable or payable.<\/li>\n<li aria-level=\"1\">However, the <b>accrual basis<\/b> is widely used because it gives a more accurate picture of business performance by recording revenues and expenses when they are earned or incurred, not when cash changes hands.<\/li>\n<\/ul>\n<h3><b>5. Use the Right Tools to Categorize Transactions<\/b><\/h3>\n<p>Utilize proper tools to categorize all transactions into relevant groups such as assets, liabilities, income, expenses, and equity. You can use cloud-based software, or rely on spreadsheets and Excel templates, whichever works best for your business size and needs.<\/p>\n<h3><b>6. Categorize Transactions Consistently<\/b><\/h3>\n<p>Make it a habit to record and categorize transactions regularly. Accurate records support better financial decisions and make it easier to identify valid tax deductions during filing.<\/p>\n<h3><b>7. Store Financial Documents Digitally<\/b><\/h3>\n<p>Use digital tools to store important financial documents, like receipts, invoices, and records\u2014so you won\u2019t be scrambling to gather everything at tax time. This also helps with long-term organization and compliance.<\/p>\n<h2><b>Simplify Your Bookkeeping with HashMicro\u2019s Smart Accounting Software<\/b><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-6892\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/HashMicro-Accounting-Software-for-Multiple-Businesses-1.webp\" alt=\"HashMicro-Accounting-Software-for-Multiple-Businesses\" width=\"1470\" height=\"900\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/HashMicro-Accounting-Software-for-Multiple-Businesses-1.webp 1470w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/HashMicro-Accounting-Software-for-Multiple-Businesses-1-300x184.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/HashMicro-Accounting-Software-for-Multiple-Businesses-1-1024x627.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/HashMicro-Accounting-Software-for-Multiple-Businesses-1-768x470.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/HashMicro-Accounting-Software-for-Multiple-Businesses-1-686x420.webp 686w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/HashMicro-Accounting-Software-for-Multiple-Businesses-1-150x92.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/HashMicro-Accounting-Software-for-Multiple-Businesses-1-696x426.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/HashMicro-Accounting-Software-for-Multiple-Businesses-1-1068x654.webp 1068w\" sizes=\"(max-width: 1470px) 100vw, 1470px\" \/><\/p>\n<p><span id=\"hashmicro\">Managing business finances shouldn\u2019t be a headache, especially when you\u2019ve got other things to focus on. With <a href=\"https:\/\/www.hashmicro.com\/my\/accounting-software\">HashMicro\u2019s integrated accounting software<\/a>, any companies and organizations can\u00a0 their entire financial workflow from one central system.<\/span><\/p>\n<p>Whether you\u2019re handling day-to-day operations or preparing for audit season, here\u2019s how HashMicro helps you stay ahead:<\/p>\n<ul>\n<li aria-level=\"1\"><b>LHDN-Compliant Reporting:<\/b> Generate accurate, real-time financial reports that simplify tax submissions and help you stay aligned with Malaysia\u2019s regulatory requirements.<\/li>\n<li aria-level=\"1\"><b>Full-Suite Billing &amp; Invoicing Tools:<\/b> From quotations to debit notes and billing, handle everything in one system; no more jumping between spreadsheets or apps.<\/li>\n<li aria-level=\"1\"><b>Multi-currency Transactions:<\/b> Doing business across borders? Our system makes it easy to record and convert multiple currencies with automatic exchange rate updates.<\/li>\n<li aria-level=\"1\"><b>Live Cash Flow Monitoring:<\/b> Stay on top of your business\u2019s financial health with direct and indirect cash flow reports. Track inflows and outflows without manual work.<\/li>\n<li aria-level=\"1\"><b>Flexible Budget Management:<\/b> Easily assign, monitor, and control budgets across teams, branches, or projects, ensuring accountability at every level.<\/li>\n<\/ul>\n<p>On top of that, HashMicro\u2019s accounting software connects seamlessly with modules like sales, inventory, procurement, and HR, so all your financial data lives in one ecosystem. <b>Faster decisions, fewer errors, and way less admin stress.<\/b><\/p>\n<h2><b>Conclusion<\/b><\/h2>\n<p>Bookkeeping is the process of recording and organizing financial transactions to keep your business financially healthy. It helps business owners track income, manage expenses, and make informed financial decisions every step of the way.<\/p>\n<p>If you&#8217;re tired of spreadsheets and manual work, <a href=\"https:\/\/www.hashmicro.com\/my\/accounting-software\">HashMicro\u2019s accounting system<\/a> can simplify everything for you. From invoicing to reports, you get full control of your business finances in just a few clicks.<\/p>\n<p>Stay compliant, save time, and get real-time insights. HashMicro helps your business grow smarter, not harder. Start your<a href=\"https:\/\/www.hashmicro.com\/my\/accounting-software\"> free demo<\/a> today and see how easy bookkeeping can actually be!<\/p>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/?medium=free-product-demo\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2024\/07\/free-demo-mobile-my.jpg\" alt=\"FreeDemo\" 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<h2><strong>FAQ on Bookkeeping<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What qualifications are needed to become a bookkeeper in Malaysia?<\/strong><\/summary>\n<p>In Malaysia, many entry-level bookkeeping jobs only require an SPM certificate. But if you want to stand out, it\u2019s a good idea to take additional courses like the AAT Foundation Certificate in Bookkeeping or the Sijil Kemahiran Malaysia (SKM) Level 3 in Accounting. Some employers also prefer candidates with a diploma in accounting or those affiliated with local professional bodies such as MACBA.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What are some common bookkeeping mistakes Malaysian businesses make?<\/strong><\/summary>\n<p>A lot of local businesses\u2014especially small ones\u2014fall into the trap of treating bookkeeping as an afterthought. Common mistakes include not reconciling bank statements regularly, mixing personal and business expenses, misclassifying transactions, and missing deadlines for SST filings or LHDN requirements. These issues can lead to audit headaches or even tax penalties.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How often should I update my business records?<\/strong><\/summary>\n<p>If you&#8217;re running a business in Malaysia, it&#8217;s best to update your financial records at least once a month. This keeps your cash flow clear, makes tax season less stressful, and helps you make better decisions throughout the year. For businesses with higher transaction volumes, weekly or even daily updates are ideal.<\/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\": \"What qualifications are needed to become a bookkeeper in Malaysia?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"In Malaysia, many entry-level bookkeeping jobs only require an SPM certificate. But if you want to stand out, it\u2019s a good idea to take additional courses like the AAT Foundation Certificate in Bookkeeping or the Sijil Kemahiran Malaysia (SKM) Level 3 in Accounting. Some employers also prefer candidates with a diploma in accounting or those affiliated with local professional bodies such as MACBA.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What are some common bookkeeping mistakes Malaysian businesses make?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"A lot of local businesses\u2014especially small ones\u2014fall into the trap of treating bookkeeping as an afterthought. Common mistakes include not reconciling bank statements regularly, mixing personal and business expenses, misclassifying transactions, and missing deadlines for SST filings or LHDN requirements. These issues can lead to audit headaches or even tax penalties.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How often should I update my business records?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"If you're running a business in Malaysia, it's best to update your financial records at least once a month. This keeps your cash flow clear, makes tax season less stressful, and helps you make better decisions throughout the year. For businesses with higher transaction volumes, weekly or even daily updates are ideal.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Running a business often feels like juggling way too many things at once, doesn\u2019t it? From tracking cash flow to managing bookkeeping and keeping inventory in check, things can get overwhelming fast, especially without the right systems in place. That\u2019s where a smart accounting system like HashMicro\u2019s integrated accounting software can make all the difference. [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":6890,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[54],"tags":[],"class_list":{"0":"post-6888","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-accounting"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A Comprehensive Guide to Bookkeeping for Malaysian Businesses<\/title>\n<meta name=\"description\" content=\"Bookkeeping is the systematic recording and organizing of financial transactions to help manage a business&#039; cash flow.\" \/>\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\/my\/blog\/bookkeeping\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Comprehensive Guide to Bookkeeping for Malaysian Businesses\" \/>\n<meta property=\"og:description\" content=\"Bookkeeping is the systematic recording and organizing of financial transactions to help manage a business&#039; cash flow.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Malaysia\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-24T09:25:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-02T09:30:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Nur Fi&#039;llia Nugrahani\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nur Fi&#039;llia Nugrahani\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/\"},\"author\":{\"name\":\"Nur Fi'llia Nugrahani\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/691c3618a2b14a7af3696de5f3dd4660\"},\"headline\":\"A Comprehensive Guide to Bookkeeping for Malaysian Businesses\",\"datePublished\":\"2025-04-24T09:25:55+00:00\",\"dateModified\":\"2026-03-02T09:30:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/\"},\"wordCount\":2559,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping.webp\",\"articleSection\":[\"Accounting\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/\",\"name\":\"A Comprehensive Guide to Bookkeeping for Malaysian Businesses\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping.webp\",\"datePublished\":\"2025-04-24T09:25:55+00:00\",\"dateModified\":\"2026-03-02T09:30:21+00:00\",\"description\":\"Bookkeeping is the systematic recording and organizing of financial transactions to help manage a business' cash flow.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping.webp\",\"width\":1200,\"height\":675,\"caption\":\"bookkeeping\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/my\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Comprehensive Guide to Bookkeeping for Malaysian Businesses\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"name\":\"HashMicro Malaysia\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/my\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\",\"name\":\"HashMicro Malaysia\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"width\":422,\"height\":255,\"caption\":\"HashMicro Malaysia\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/691c3618a2b14a7af3696de5f3dd4660\",\"name\":\"Nur Fi'llia Nugrahani\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/cropped-WhatsApp-Image-2023-12-11-at-14.23.32_bfe4caf2-96x96.jpg\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/cropped-WhatsApp-Image-2023-12-11-at-14.23.32_bfe4caf2-96x96.jpg\",\"caption\":\"Nur Fi'llia Nugrahani\"},\"description\":\"A content writer specializing in the intersection of technology and business. Produces engaging articles that resonate with readers and give meaningful insights.\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/author\/filia-nugrahani\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"A Comprehensive Guide to Bookkeeping for Malaysian Businesses","description":"Bookkeeping is the systematic recording and organizing of financial transactions to help manage a business' cash flow.","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\/my\/blog\/bookkeeping\/","og_locale":"en_US","og_type":"article","og_title":"A Comprehensive Guide to Bookkeeping for Malaysian Businesses","og_description":"Bookkeeping is the systematic recording and organizing of financial transactions to help manage a business' cash flow.","og_url":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/","og_site_name":"HashMicro Malaysia","article_published_time":"2025-04-24T09:25:55+00:00","article_modified_time":"2026-03-02T09:30:21+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping.webp","type":"image\/webp"}],"author":"Nur Fi'llia Nugrahani","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nur Fi'llia Nugrahani","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/"},"author":{"name":"Nur Fi'llia Nugrahani","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/691c3618a2b14a7af3696de5f3dd4660"},"headline":"A Comprehensive Guide to Bookkeeping for Malaysian Businesses","datePublished":"2025-04-24T09:25:55+00:00","dateModified":"2026-03-02T09:30:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/"},"wordCount":2559,"publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping.webp","articleSection":["Accounting"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/","name":"A Comprehensive Guide to Bookkeeping for Malaysian Businesses","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping.webp","datePublished":"2025-04-24T09:25:55+00:00","dateModified":"2026-03-02T09:30:21+00:00","description":"Bookkeeping is the systematic recording and organizing of financial transactions to help manage a business' cash flow.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#primaryimage","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/04\/bookkeeping.webp","width":1200,"height":675,"caption":"bookkeeping"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/my\/blog\/bookkeeping\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/my\/blog\/"},{"@type":"ListItem","position":2,"name":"A Comprehensive Guide to Bookkeeping for Malaysian Businesses"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website","url":"https:\/\/www.hashmicro.com\/my\/blog\/","name":"HashMicro Malaysia","description":"","publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/my\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization","name":"HashMicro Malaysia","url":"https:\/\/www.hashmicro.com\/my\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","width":422,"height":255,"caption":"HashMicro Malaysia"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/691c3618a2b14a7af3696de5f3dd4660","name":"Nur Fi'llia Nugrahani","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/cropped-WhatsApp-Image-2023-12-11-at-14.23.32_bfe4caf2-96x96.jpg","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/cropped-WhatsApp-Image-2023-12-11-at-14.23.32_bfe4caf2-96x96.jpg","caption":"Nur Fi'llia Nugrahani"},"description":"A content writer specializing in the intersection of technology and business. Produces engaging articles that resonate with readers and give meaningful insights.","url":"https:\/\/www.hashmicro.com\/my\/blog\/author\/filia-nugrahani\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/6888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/comments?post=6888"}],"version-history":[{"count":9,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/6888\/revisions"}],"predecessor-version":[{"id":16943,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/6888\/revisions\/16943"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media\/6890"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media?parent=6888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/categories?post=6888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/tags?post=6888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}