{"id":1048,"date":"2024-11-18T13:17:44","date_gmt":"2024-11-18T13:17:44","guid":{"rendered":"https:\/\/www.wpscentre-id.com\/?page_id=1048"},"modified":"2024-11-18T16:59:06","modified_gmt":"2024-11-18T16:59:06","slug":"smes-financial-management","status":"publish","type":"page","link":"https:\/\/www.wpscentre-id.com\/index.php\/smes-empowerment\/smes-financial-management\/","title":{"rendered":"SMEs Financial Management"},"content":{"rendered":"\n<div class=\"wp-block-uagb-container uagb-block-5d9b1fc5 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-04d07fb7\">\n<div class=\"wp-block-uagb-advanced-heading uagb-block-b346904c\"><\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-ec7b3ac0\"><h1 class=\"uagb-heading-text\">SMEs Financial Management<\/h1><\/div>\n\n\n\n<p class=\"has-ast-global-color-5-color has-text-color has-link-color wp-elements-b753cd99d82d6e2c66be8ff774df77b0\">Indonesia WPS Centre also support Small and Medium Enterprise Businesses by empowering them through design and digital financial management.<\/p>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-3387eb4b alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-f63762cd\">\n<!DOCTYPE html>\n<html lang=\"id\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>Kalkulator Biaya Bahan Baku (Raw Material Cost Calculator)<\/title>\n  <style>\n    body {\n      font-family: Arial, sans-serif;\n      background-color: #f4f4f9;\n      margin: 0;\n      padding: 0;\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      min-height: 100vh;\n    }\n    .container {\n      background: #fff;\n      padding: 20px;\n      border-radius: 8px;\n      width: 90%;\n      max-width: 800px;\n      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n    }\n    h1, h2 {\n      text-align: center;\n      color: #333;\n    }\n    .row {\n      display: flex;\n      gap: 10px;\n      margin-bottom: 10px;\n    }\n    select, input, button {\n      padding: 10px;\n      font-size: 14px;\n      border: 1px solid #ccc;\n      border-radius: 5px;\n      flex: 1;\n    }\n    .remove-btn {\n      background: red;\n      color: white;\n      cursor: pointer;\n    }\n    button:hover {\n      opacity: 0.9;\n    }\n    #summary-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 20px;\n    }\n    #summary-table th, #summary-table td {\n      border: 1px solid #ccc;\n      padding: 10px;\n      text-align: left;\n    }\n    #grand-total {\n      text-align: right;\n      font-weight: bold;\n      margin-top: 20px;\n    }\n    @media (max-width: 768px) {\n      .row {\n        flex-direction: column;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n  <div class=\"container\">\n    <h1>Kalkulator Biaya Bahan Baku (Raw Material Cost Calculator)<\/h1>\n    <div id=\"material-input\">\n      <div class=\"row\">\n        <input type=\"text\" placeholder=\"Jenis Bahan Baku (Type of Raw Material)\" class=\"material-type\">\n        <input type=\"number\" placeholder=\"Kuantitas (Quantity)\" class=\"material-quantity\">\n        <input type=\"number\" placeholder=\"Harga per Unit (Price per Unit)\" class=\"material-price\">\n        <button class=\"remove-btn\" onclick=\"removeRow(this)\">Hapus (Remove)<\/button>\n      <\/div>\n    <\/div>\n    <button onclick=\"addRow()\" class=\"btn bg-yellow-500\" >Tambah Bahan Baku (Add Material)<\/button>\n    <button onclick=\"calculateTotal()\"class=\"btn bg-green-500\">Hitung Total (Calculate Total)<\/button>\n    <button onclick=\"resetForm()\"class=\"btn bg-red-500\">Reset<\/button>\n    <div id=\"output\">\n      <h2>Ringkasan (Summary)<\/h2>\n      <table id=\"summary-table\">\n        <thead>\n          <tr>\n            <th>Jenis Bahan Baku (Material Type)<\/th>\n            <th>Kuantitas (Quantity)<\/th>\n            <th>Harga per Unit (Price per Unit)<\/th>\n            <th>Total Harga (Total Price)<\/th>\n          <\/tr>\n        <\/thead>\n        <tbody><\/tbody>\n      <\/table>\n      <h3 id=\"grand-total\"><\/h3>\n      <button onclick=\"printSummary()\"class=\"btn bg-yellow-500\"\">Cetak Ringkasan (Print Summary)<\/button>\n    <\/div>\n  <\/div>\n\n  <script>\n    function addRow() {\n      const container = document.getElementById('material-input');\n      const row = document.createElement('div');\n      row.className = 'row';\n      row.innerHTML = `\n        <input type=\"text\" placeholder=\"Jenis Bahan Baku (Type of Raw Material)\" class=\"material-type\">\n        <input type=\"number\" placeholder=\"Kuantitas (Quantity)\" class=\"material-quantity\">\n        <input type=\"number\" placeholder=\"Harga per Unit (Price per Unit)\" class=\"material-price\">\n        <button class=\"remove-btn\" onclick=\"removeRow(this)\">Hapus (Remove)<\/button>\n      `;\n      container.appendChild(row);\n    }\n\n    function removeRow(button) {\n      button.parentElement.remove();\n    }\n\n    function calculateTotal() {\n      const rows = document.querySelectorAll('#material-input .row');\n      const tableBody = document.querySelector('#summary-table tbody');\n      tableBody.innerHTML = '';\n\n      let grandTotal = 0;\n\n      rows.forEach(row => {\n        const type = row.querySelector('.material-type').value || \"Tidak Disebutkan (Not Specified)\";\n        const quantity = parseFloat(row.querySelector('.material-quantity').value) || 0;\n        const price = parseFloat(row.querySelector('.material-price').value) || 0;\n        const total = quantity * price;\n\n        grandTotal += total;\n\n        const rowHTML = `\n          <tr>\n            <td>${type}<\/td>\n            <td>${quantity}<\/td>\n            <td>Rp${price.toLocaleString()}<\/td>\n            <td>Rp${total.toLocaleString()}<\/td>\n          <\/tr>\n        `;\n        tableBody.insertAdjacentHTML('beforeend', rowHTML);\n      });\n\n      document.getElementById('grand-total').textContent = `Total Keseluruhan (Grand Total): Rp${grandTotal.toLocaleString()}`;\n    }\n\n    function resetForm() {\n      document.getElementById('material-input').innerHTML = `\n        <div class=\"row\">\n          <input type=\"text\" placeholder=\"Jenis Bahan Baku (Type of Raw Material)\" class=\"material-type\">\n          <input type=\"number\" placeholder=\"Kuantitas (Quantity)\" class=\"material-quantity\">\n          <input type=\"number\" placeholder=\"Harga per Unit (Price per Unit)\" class=\"material-price\">\n          <button class=\"remove-btn\" onclick=\"removeRow(this)\">Hapus (Remove)<\/button>\n        <\/div>\n      `;\n      document.querySelector('#summary-table tbody').innerHTML = '';\n      document.getElementById('grand-total').textContent = '';\n    }\n\n    function printSummary() {\n      window.print();\n    }\n  <\/script>\n<\/body>\n<\/html>\n\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-c7479a31\">\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Kalkulator Serbaguna (Multi-Function Calculator)<\/title>\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/tailwindcss\/2.2.19\/tailwind.min.css\" rel=\"stylesheet\">\n<\/head>\n<body class=\"bg-gradient-to-br from-blue-100 to-blue-200 min-h-screen flex items-center justify-center p-4\">\n    <div class=\"bg-white shadow-2xl rounded-2xl p-8 w-full max-w-md\">\n        <div class=\"mb-4\">\n            <select id=\"calculatorMode\" class=\"w-full p-2 border rounded bg-blue-50\" onchange=\"switchCalculatorMode()\">\n                <option value=\"standard\">Kalkulator Standar<\/option>\n                <option value=\"scientific\">Kalkulator Ilmiah<\/option>\n            <\/select>\n        <\/div>\n\n        <div class=\"mb-4\">\n            <input type=\"text\" id=\"display\" class=\"w-full p-4 text-right text-2xl bg-blue-50 rounded\" readonly>\n        <\/div>\n\n        <div id=\"standardButtons\">\n            <div class=\"grid grid-cols-4 gap-2\">\n                <button onclick=\"appendToDisplay('7')\" class=\"btn\">7<\/button>\n                <button onclick=\"appendToDisplay('8')\" class=\"btn\">8<\/button>\n                <button onclick=\"appendToDisplay('9')\" class=\"btn\">9<\/button>\n                <button onclick=\"appendToDisplay('\/')\" class=\"btn operator\">\/<\/button>\n\n                <button onclick=\"appendToDisplay('4')\" class=\"btn\">4<\/button>\n                <button onclick=\"appendToDisplay('5')\" class=\"btn\">5<\/button>\n                <button onclick=\"appendToDisplay('6')\" class=\"btn\">6<\/button>\n                <button onclick=\"appendToDisplay('*')\" class=\"btn operator\">*<\/button>\n\n                <button onclick=\"appendToDisplay('1')\" class=\"btn\">1<\/button>\n                <button onclick=\"appendToDisplay('2')\" class=\"btn\">2<\/button>\n                <button onclick=\"appendToDisplay('3')\" class=\"btn\">3<\/button>\n                <button onclick=\"appendToDisplay('-')\" class=\"btn operator\">&#8211;<\/button>\n\n                <button onclick=\"appendToDisplay('0')\" class=\"btn\">0<\/button>\n                <button onclick=\"appendToDisplay('.')\" class=\"btn\">.<\/button>\n                <button onclick=\"appendToDisplay('sqrt(')\" class=\"btn\">\u221a<\/button>\n                <button onclick=\"appendToDisplay('+')\" class=\"btn operator\">+<\/button>\n            <\/div>\n            <div class=\"mt-3 grid grid-cols-3 gap-3\">\n                <button onclick=\"clearDisplay()\" class=\"btn bg-red-500 text-white\">C<\/button>\n                <button onclick=\"deleteLastChar()\" class=\"btn bg-yellow-500\">\u232b<\/button>\n                <button onclick=\"calculate()\" class=\"btn bg-green-500\">=<\/button>\n            <\/div>\n        <\/div>\n\n        <div id=\"scientificButtons\" class=\"hidden\">\n            <div class=\"grid grid-cols-4 gap-2\">\n                <button onclick=\"appendToDisplay('sin(')\" class=\"btn\">sin<\/button>\n                <button onclick=\"appendToDisplay('cos(')\" class=\"btn\">cos<\/button>\n                <button onclick=\"appendToDisplay('tan(')\" class=\"btn\">tan<\/button>\n                <button onclick=\"appendToDisplay('^')\" class=\"btn operator\">^<\/button>\n\n                <button onclick=\"appendToDisplay('sqrt(')\" class=\"btn\">\u221a<\/button>\n                <button onclick=\"appendToDisplay('log(')\" class=\"btn\">log<\/button>\n                <button onclick=\"appendToDisplay('(')\" class=\"btn\">(<\/button>\n                <button onclick=\"appendToDisplay(')')\" class=\"btn\">)<\/button>\n\n                <button onclick=\"appendToDisplay('PI')\" class=\"btn\">\u03c0<\/button>\n                <button onclick=\"appendToDisplay('E')\" class=\"btn\">e<\/button>\n                <button onclick=\"clearDisplay()\" class=\"btn bg-red-500 text-white\">C<\/button>\n                <button onclick=\"deleteLastChar()\" class=\"btn bg-yellow-500\">\u232b<\/button>\n            <\/div>\n        <\/div>\n\n        <div id=\"programmerButtons\" class=\"hidden\">\n            <div class=\"grid grid-cols-4 gap-2\">\n                <button onclick=\"convertBase('decimal')\" class=\"btn\">10<\/button>\n                <button onclick=\"convertBase('binary')\" class=\"btn\">2<\/button>\n                <button onclick=\"convertBase('hexadecimal')\" class=\"btn\">16<\/button>\n                <button onclick=\"convertBase('octal')\" class=\"btn\">8<\/button>\n            <\/div>\n            <div class=\"mt-2 bg-blue-50 p-2 rounded\">\n                <div id=\"conversionResults\" class=\"text-sm\"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        let currentMode = 'standard';\n\n        function switchCalculatorMode() {\n            const mode = document.getElementById('calculatorMode').value;\n            const standardButtons = document.getElementById('standardButtons');\n            const scientificButtons = document.getElementById('scientificButtons');\n            const programmerButtons = document.getElementById('programmerButtons');\n            const display = document.getElementById('display');\n\n            \/\/ Hide all button sets\n            standardButtons.classList.add('hidden');\n            scientificButtons.classList.add('hidden');\n            programmerButtons.classList.add('hidden');\n\n            \/\/ Show selected mode's buttons\n            if (mode === 'standard') {\n                standardButtons.classList.remove('hidden');\n            } else if (mode === 'scientific') {\n                scientificButtons.classList.remove('hidden');\n            } else if (mode === 'programmer') {\n                programmerButtons.classList.remove('hidden');\n            }\n\n            \/\/ Clear display when switching modes\n            clearDisplay();\n            currentMode = mode;\n        }\n\n        function appendToDisplay(value) {\n            document.getElementById('display').value += value;\n        }\n\n        function clearDisplay() {\n            document.getElementById('display').value = '';\n            document.getElementById('conversionResults').innerHTML = '';\n        }\n\n        function deleteLastChar() {\n            const display = document.getElementById('display');\n            display.value = display.value.slice(0, -1);\n        }\n\n        function calculate() {\n            const display = document.getElementById('display');\n            try {\n                if (currentMode === 'standard') {\n                    display.value = eval(display.value);\n                } else if (currentMode === 'scientific') {\n                    display.value = eval(display.value.replace('sin', 'Math.sin')\n                        .replace('cos', 'Math.cos')\n                        .replace('tan', 'Math.tan')\n                        .replace('sqrt', 'Math.sqrt')\n                        .replace('log', 'Math.log')\n                        .replace('PI', 'Math.PI')\n                        .replace('E', 'Math.E')\n                        .replace('^', '**'));\n                }\n            } catch (error) {\n                display.value = 'Error';\n            }\n        }\n\n        function convertBase(targetBase) {\n            const display = document.getElementById('display');\n            const conversionResults = document.getElementById('conversionResults');\n            const inputValue = display.value;\n            const num = Number(inputValue);\n\n            if (isNaN(num)) {\n                conversionResults.innerHTML = 'Invalid Input';\n                return;\n            }\n\n            let result = '';\n            switch(targetBase) {\n                case 'decimal':\n                    result = `Decimal: ${num}<br>\n                              Binary: ${num.toString(2)}<br>\n                              Hexadecimal: ${num.toString(16).toUpperCase()}<br>\n                              Octal: ${num.toString(8)}`;\n                    break;\n                case 'binary':\n                    result = `Decimal: ${parseInt(inputValue, 2)}<br>\n                              Binary: ${inputValue}<br>\n                              Hexadecimal: ${parseInt(inputValue, 2).toString(16).toUpperCase()}<br>\n                              Octal: ${parseInt(inputValue, 2).toString(8)}`;\n                    break;\n                case 'hexadecimal':\n                    result = `Decimal: ${parseInt(inputValue, 16)}<br>\n                              Binary: ${parseInt(inputValue, 16).toString(2)}<br>\n                              Hexadecimal: ${inputValue.toUpperCase()}<br>\n                              Octal: ${parseInt(inputValue, 16).toString(8)}`;\n                    break;\n                case 'octal':\n                    result = `Decimal: ${parseInt(inputValue, 8)}<br>\n                              Binary: ${parseInt(inputValue, 8).toString(2)}<br>\n                              Hexadecimal: ${parseInt(inputValue, 8).toString(16).toUpperCase()}<br>\n                              Octal: ${inputValue}`;\n                    break;\n            }\n            conversionResults.innerHTML = result;\n        }\n    <\/script>\n\n    <style>\n        .btn {\n            @apply bg-blue-100 hover:bg-blue-200 p-3 rounded text-center text-lg font-bold transition-colors;\n        }\n        .operator {\n            @apply bg-blue-300 hover:bg-blue-400;\n        }\n    <\/style>\n<\/body>\n<\/html>\n\n<\/div>\n<\/div><\/div>\n\n\n\n<!DOCTYPE html>\n<html lang=\"id\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Kalkulator Keuangan (Financial Calculator)<\/title>\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/tailwindcss\/2.2.19\/tailwind.min.css\" rel=\"stylesheet\">\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n<\/head>\n<body class=\"bg-gradient-to-br from-blue-100 to-blue-200 min-h-screen flex items-center justify-center p-4\">\n    <div class=\"bg-white shadow-2xl rounded-2xl p-8 w-full max-w-4xl\">\n        <h1 class=\"text-3xl font-bold text-center text-blue-600 mb-6\">\n            Kalkulator Keuangan (Financial Calculator)\n        <\/h1>\n\n        <!-- Input Section -->\n        <div class=\"grid md:grid-cols-2 gap-6\">\n            <div class=\"space-y-4\">\n                <h2 class=\"text-xl font-semibold text-blue-500\">Input Data (Input Data)<\/h2>\n                \n                <div class=\"grid grid-cols-2 gap-4\">\n                    <div>\n                        <label class=\"block text-sm font-medium text-gray-700\">\n                            Bahan Baku (Raw Materials) per Unit\n                        <\/label>\n                        <input type=\"number\" id=\"rawMaterialCost\" class=\"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-300 focus:ring focus:ring-blue-200\" placeholder=\"Rp\">\n                    <\/div>\n                    <div>\n                        <label class=\"block text-sm font-medium text-gray-700\">\n                            Tenaga Kerja (Labor Cost) per Unit\n                        <\/label>\n                        <input type=\"number\" id=\"laborCost\" class=\"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-300 focus:ring focus:ring-blue-200\" placeholder=\"Rp\">\n                    <\/div>\n                <\/div>\n\n                <div>\n                    <label class=\"block text-sm font-medium text-gray-700\">\n                        Biaya Operasional Lainnya (Other Operational Costs)\n                    <\/label>\n                    <input type=\"number\" id=\"otherOperationalCosts\" class=\"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-300 focus:ring focus:ring-blue-200\" placeholder=\"Rp\">\n                <\/div>\n\n                <div class=\"grid grid-cols-2 gap-4\">\n                    <div>\n                        <label class=\"block text-sm font-medium text-gray-700\">\n                            Harga Jual per Unit (Selling Price per Unit)\n                        <\/label>\n                        <input type=\"number\" id=\"sellingPrice\" class=\"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-300 focus:ring focus:ring-blue-200\" placeholder=\"Rp\">\n                    <\/div>\n                    <div>\n                        <label class=\"block text-sm font-medium text-gray-700\">\n                            Jumlah Unit (Number of Units)\n                        <\/label>\n                        <input type=\"number\" id=\"unitCount\" class=\"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-300 focus:ring focus:ring-blue-200\" placeholder=\"Unit\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"grid grid-cols-2 gap-4\">\n                    <div>\n                        <label class=\"block text-sm font-medium text-gray-700\">\n                            Pajak (Taxes) %\n                        <\/label>\n                        <input type=\"number\" id=\"taxRate\" class=\"mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-300 focus:ring focus:ring-blue-200\" placeholder=\"%\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"flex space-x-4\">\n                    <button onclick=\"calculateFinancials()\" class=\"w-full bg-blue-600 text-white py-2 rounded-md hover:bg-blue-700 transition\">\n                        Hitung (Calculate)\n                    <\/button>\n                    <button onclick=\"resetForm()\" class=\"w-full bg-gray-200 text-gray-700 py-2 rounded-md hover:bg-gray-300 transition\">\n                        Reset\n                    <\/button>\n                <\/div>\n            <\/div>\n\n            <!-- Results Section -->\n            <div>\n                <h2 class=\"text-xl font-semibold text-blue-500 mb-4\">\n                    Hasil Perhitungan (Calculation Results)\n                <\/h2>\n                \n                <div id=\"resultsTable\" class=\"bg-blue-50 p-4 rounded-lg\">\n                    <table class=\"w-full text-sm\">\n                        <thead>\n                            <tr class=\"bg-blue-100\">\n                                <th class=\"p-2 text-left\">Deskripsi (Description)<\/th>\n                                <th class=\"p-2 text-right\">Normal<\/th>\n                                <th class=\"p-2 text-right\">+20%<\/th>\n                                <th class=\"p-2 text-right\">+50%<\/th>\n                            <\/tr>\n                        <\/thead>\n                        <tbody id=\"calculationResults\">\n                            <tr><td colspan=\"4\" class=\"text-center text-gray-500\">Tunggu hasil perhitungan (Awaiting calculation)<\/td><\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n\n                <div class=\"mt-4\">\n                    <canvas id=\"profitChart\" class=\"w-full h-64\"><\/canvas>\n                <\/div>\n\n                <div class=\"mt-4 flex justify-between\">\n                    <button onclick=\"printReport()\" class=\"bg-green-600 text-white px-4 py-2 rounded-md hover:bg-green-700 transition\">\n                        Cetak Laporan (Print Report)\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        let profitChart = null;\n\n        function calculateFinancials() {\n            const rawMaterialCost = parseFloat(document.getElementById('rawMaterialCost').value) || 0;\n            const laborCost = parseFloat(document.getElementById('laborCost').value) || 0;\n            const otherOperationalCosts = parseFloat(document.getElementById('otherOperationalCosts').value) || 0;\n            const sellingPrice = parseFloat(document.getElementById('sellingPrice').value) || 0;\n            const unitCount = parseFloat(document.getElementById('unitCount').value) || 0;\n            const taxRate = parseFloat(document.getElementById('taxRate').value) || 0;\n\n            const scenarios = [1, 1.2, 1.5]; \/\/ Normal, +20%, +50%\n            const results = scenarios.map(multiplier => {\n                const adjustedUnitCount = unitCount * multiplier;\n                const totalProductionCost = (rawMaterialCost + laborCost) * adjustedUnitCount;\n                const totalRevenue = sellingPrice * adjustedUnitCount;\n                const grossProfit = totalRevenue - totalProductionCost;\n                const netProfit = grossProfit - otherOperationalCosts - (grossProfit * (taxRate \/ 100));\n\n                return {\n                    totalRevenue,\n                    totalProductionCost,\n                    grossProfit,\n                    netProfit\n                };\n            });\n\n            updateResultsTable(results);\n            updateProfitChart(results);\n        }\n\n        function updateResultsTable(results) {\n            const tableBody = document.getElementById('calculationResults');\n            tableBody.innerHTML = `\n                <tr>\n                    <td>Total Pendapatan (Total Revenue)<\/td>\n                    ${results.map(r => `<td class=\"text-right\">${formatCurrency(r.totalRevenue)}<\/td>`).join('')}\n                <\/tr>\n                <tr>\n                    <td>Total Biaya Produksi (Total Production Cost)<\/td>\n                    ${results.map(r => `<td class=\"text-right\">${formatCurrency(r.totalProductionCost)}<\/td>`).join('')}\n                <\/tr>\n                <tr>\n                    <td>Laba Kotor (Gross Profit)<\/td>\n                    ${results.map(r => `<td class=\"text-right\">${formatCurrency(r.grossProfit)}<\/td>`).join('')}\n                <\/tr>\n                <tr>\n                    <td>Laba Bersih (Net Profit)<\/td>\n                    ${results.map(r => `<td class=\"text-right\">${formatCurrency(r.netProfit)}<\/td>`).join('')}\n                <\/tr>\n            `;\n        }\n\n        function updateProfitChart(results) {\n            const ctx = document.getElementById('profitChart').getContext('2d');\n            \n            if (profitChart) {\n                profitChart.destroy();\n            }\n\n            profitChart = new Chart(ctx, {\n                type: 'bar',\n                data: {\n                    labels: ['Normal', '+20%', '+50%'],\n                    datasets: [\n                        {\n                            label: 'Laba Kotor (Gross Profit)',\n                            data: results.map(r => r.grossProfit),\n                            backgroundColor: 'rgba(54, 162, 235, 0.6)',\n                            borderColor: 'rgba(54, 162, 235, 1)',\n                            borderWidth: 1\n                        },\n                        {\n                            label: 'Laba Bersih (Net Profit)',\n                            data: results.map(r => r.netProfit),\n                            backgroundColor: 'rgba(255, 99, 132, 0.6)',\n                            borderColor: 'rgba(255, 99, 132, 1)',\n                            borderWidth: 1\n                        }\n                    ]\n                },\n                options: {\n                    responsive: true,\n                    scales: {\n                        y: {\n                            beginAtZero: true,\n                            title: {\n                                display: true,\n                                text: 'Rupiah'\n                            }\n                        }\n                    }\n                }\n            });\n        }\n\n        function formatCurrency(value) {\n            return new Intl.NumberFormat('id-ID', {\n                style: 'currency',\n                currency: 'IDR',\n                minimumFractionDigits: 0\n            }).format(value);\n        }\n\n        function resetForm() {\n            document.querySelectorAll('input').forEach(input => input.value = '');\n            document.getElementById('calculationResults').innerHTML = \n                '<tr><td colspan=\"4\" class=\"text-center text-gray-500\">Tunggu hasil perhitungan (Awaiting calculation)<\/td><\/tr>';\n            \n            if (profitChart) {\n                profitChart.destroy();\n            }\n        }\n\n        function printReport() {\n            window.print();\n        }\n    <\/script>\n\n    <style>\n        @media print {\n            body {\n                background: white;\n            }\n            .bg-white {\n                box-shadow: none;\n            }\n        }\n    <\/style>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>SMEs Financial Management Indonesia WPS Centre also support Small and Medium Enterprise Businesses by empowering them through design and digital financial management. Kalkulator Biaya Bahan Baku (Raw Material Cost Calculator) Kalkulator Biaya Bahan Baku (Raw Material Cost Calculator) Hapus (Remove) Tambah Bahan Baku (Add Material) Hitung Total (Calculate Total) Reset Ringkasan (Summary) Jenis Bahan Baku [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1037,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1048","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/www.wpscentre-id.com\/index.php\/author\/indonesiawpscentre_\/"},"uagb_comment_info":0,"uagb_excerpt":"SMEs Financial Management Indonesia WPS Centre also support Small and Medium Enterprise Businesses by empowering them through design and digital financial management. Kalkulator Biaya Bahan Baku (Raw Material Cost Calculator) Kalkulator Biaya Bahan Baku (Raw Material Cost Calculator) Hapus (Remove) Tambah Bahan Baku (Add Material) Hitung Total (Calculate Total) Reset Ringkasan (Summary) Jenis Bahan Baku&hellip;","_links":{"self":[{"href":"https:\/\/www.wpscentre-id.com\/index.php\/wp-json\/wp\/v2\/pages\/1048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wpscentre-id.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.wpscentre-id.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.wpscentre-id.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wpscentre-id.com\/index.php\/wp-json\/wp\/v2\/comments?post=1048"}],"version-history":[{"count":48,"href":"https:\/\/www.wpscentre-id.com\/index.php\/wp-json\/wp\/v2\/pages\/1048\/revisions"}],"predecessor-version":[{"id":1101,"href":"https:\/\/www.wpscentre-id.com\/index.php\/wp-json\/wp\/v2\/pages\/1048\/revisions\/1101"}],"up":[{"embeddable":true,"href":"https:\/\/www.wpscentre-id.com\/index.php\/wp-json\/wp\/v2\/pages\/1037"}],"wp:attachment":[{"href":"https:\/\/www.wpscentre-id.com\/index.php\/wp-json\/wp\/v2\/media?parent=1048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}