{"id":17213,"date":"2026-07-07T02:18:44","date_gmt":"2026-07-07T02:18:44","guid":{"rendered":"https:\/\/www.dgcrane.com\/?p=17213"},"modified":"2026-07-07T02:18:48","modified_gmt":"2026-07-07T02:18:48","slug":"overhead-and-gantry-crane-deflection-calculator","status":"publish","type":"post","link":"https:\/\/www.dgcrane.com\/id\/overhead-and-gantry-crane-deflection-calculator\/","title":{"rendered":"Kalkulator Defleksi Derek Atas dan Derek Gantry"},"content":{"rendered":"<!-- WordPress \u53ef\u76f4\u63a5\u7c98\u8d34\u5b8c\u6574\u4ee3\u7801\u5757 -->\n<div id=\"calculator\">\n    <style>\n        \/* \u4ec5\u4f5c\u7528\u4e8e #calculator \u5185\u90e8\uff0c\u65e0\u5168\u5c40\u6837\u5f0f\u6c61\u67d3 *\/\n        #calculator {\n            --primary-color: #0a3487;\n            --primary-hover: #F58423;\n            --error-color: #e53935;\n            --bg-color: #EAEEF7;\n            --text-color: #4a4a4a;\n            max-width: 545px;\n            padding: 30px;\n            background-color: var(--bg-color);\n            color: var(--text-color);\n            box-sizing: border-box;\n        }\n        #calculator .calc-title {\n            font-size: 18px;\n            margin: 0 0 24px 0;\n            font-weight: 600;\n        }\n        #calculator .field-wrap {\n            margin-bottom: 18px;\n        }\n        #calculator label {\n            display: block;\n            font-size: 14px;\n            margin-bottom: 6px;\n        }\n        #calculator input {\n            width: 100%;\n            box-sizing: border-box;\n            height: 36px;\n            font-size: 16px;\n            border: 1px solid #ccc;\n            border-radius: 0;\n            padding: 0 10px;\n            transition: 0.2s ease;\n        }\n        #calculator input:focus {\n            border: 2px solid var(--primary-color);\n            outline: none;\n        }\n        #calculator input.error {\n            border: 2px solid var(--error-color);\n        }\n        #calculator .error-msg {\n            display: none;\n            font-size: 12px;\n            color: var(--error-color);\n            margin-top: 4px;\n        }\n        #calculator .btn-group {\n            display: flex;\n            gap: 12px;\n            margin: 24px 0;\n        }\n        #calculator button {\n            flex: 1;\n            height: 34px;\n            line-height: 34px;\n            font-size: 14px;\n            border: none;\n            border-radius: 0;\n            cursor: pointer;\n            transition: 0.2s ease;\n        }\n        #calculator .calc-btn {\n            background-color: var(--primary-color);\n            color: #fff;\n        }\n        #calculator .calc-btn:hover {\n            background-color: var(--primary-hover);\n        }\n        #calculator .reset-btn {\n            background-color: #999;\n            color: #fff;\n        }\n        #calculator .result-wrap {\n            margin-top: 16px;\n        }\n        #calculator .result-label {\n            font-size: 14px;\n        }\n        #calculator .result-value {\n            font-size: 40px;\n            font-weight: bold;\n            margin-top: 4px;\n            word-break: break-all;\n        }\n        \/* \u79fb\u52a8\u7aef\u9002\u914d max-width:768px *\/\n        @media (max-width: 768px) {\n            #calculator input,\n            #calculator button {\n                height: 0.7rem;\n            }\n            #calculator label,\n            #calculator button,\n            #calculator .result-label {\n                font-size: 0.28rem;\n            }\n            #calculator .btn-group {\n                flex-direction: column;\n            }\n            #calculator button {\n                width: 100%;\n            }\n            #calculator .result-value {\n                font-size: 0.8rem;\n            }\n        }\n    <\/style>\n\n    <div class=\"field-wrap\">\n        <label for=\"calculator-P\">Beban Terkonsentrasi P (N)<\/label>\n        <input type=\"number\" id=\"calculator-P\" placeholder=\"Nilai beban masukan\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n    <div class=\"field-wrap\">\n        <label for=\"calculator-L\">Panjang Bentang L (m)<\/label>\n        <input type=\"number\" id=\"calculator-L\" placeholder=\"Panjang rentang masukan\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n    <div class=\"field-wrap\">\n        <label for=\"calculator-I\">Momen Inersia I (cm\u2074)<\/label>\n        <input type=\"number\" id=\"calculator-I\" placeholder=\"Nilai inersia masukan\">\n        <span class=\"error-msg\"><\/span>\n    <\/div>\n\n    <div class=\"btn-group\">\n        <button id=\"calculator-calcBtn\" class=\"calc-btn\">Menghitung<\/button>\n        <button id=\"calculator-resetBtn\" class=\"reset-btn\">Mengatur ulang<\/button>\n    <\/div>\n\n    <div class=\"result-wrap\">\n        <div class=\"result-label\">Defleksi (m)<\/div>\n        <div id=\"calculator-result\" class=\"result-value\">&#8212;<\/div>\n    <\/div>\n\n    <script>\n        (function() {\n            const fieldIds = ['P', 'L', 'I'];\n            const inputEls = {};\n            const errorMsgEls = {};\n            const resultEl = document.getElementById('calculator-result');\n            const calcBtn = document.getElementById('calculator-calcBtn');\n            const resetBtn = document.getElementById('calculator-resetBtn');\n            \/\/ \u94a2\u6750\u6807\u51c6\u5f39\u6027\u6a21\u91cf\u56fa\u5b9a\u503c 2.06\u00d710\u00b9\u00b9 Pa\n            const STEEL_E = 2.06e11;\n\n            \/\/ \u521d\u59cb\u5316DOM\u6620\u5c04\n            function initDomRefs() {\n                fieldIds.forEach(key => {\n                    inputEls[key] = document.getElementById(`calculator-${key}`);\n                    errorMsgEls[key] = inputEls[key].nextElementSibling;\n                    \/\/ \u8f93\u5165\u65f6\u6e05\u9664\u9519\u8bef\n                    inputEls[key].addEventListener('input', () => clearError(inputEls[key], errorMsgEls[key]));\n                });\n            }\n\n            \/\/ \u8bbe\u7f6e\u9519\u8bef\u63d0\u793a\n            function setError(inputEl, msgEl, message) {\n                inputEl.classList.add('error');\n                msgEl.textContent = message;\n                msgEl.style.display = 'block';\n            }\n\n            \/\/ \u6e05\u9664\u9519\u8bef\u63d0\u793a\n            function clearError(inputEl, msgEl) {\n                inputEl.classList.remove('error');\n                msgEl.textContent = '';\n                msgEl.style.display = 'none';\n            }\n\n            \/\/ \u6821\u9a8c\u5355\u4e2a\u8f93\u5165\n            function validateInput(inputEl, msgEl, fieldName) {\n                const val = parseFloat(inputEl.value.trim());\n                if(inputEl.value.trim() === '') {\n                    setError(inputEl, msgEl, `${fieldName} field cannot be empty`);\n                    return false;\n                }\n                if(isNaN(val) || val <= 0) {\n                    setError(inputEl, msgEl, `${fieldName} must be positive number`);\n                    return false;\n                }\n                clearError(inputEl, msgEl);\n                return true;\n            }\n\n            \/\/ \u6279\u91cf\u6821\u9a8c\u5168\u90e8\u5b57\u6bb5\n            function validateAllFields() {\n                let isValid = true;\n                const fieldNames = {\n                    P: 'Load P',\n                    L: 'Span L',\n                    I: 'Inertia I'\n                };\n                fieldIds.forEach(key => {\n                    const pass = validateInput(inputEls[key], errorMsgEls[key], fieldNames[key]);\n                    if(!pass) isValid = false;\n                });\n                return isValid;\n            }\n\n            \/\/ \u6838\u5fc3\u8ba1\u7b97\u903b\u8f91\n            \/\/ I\u8f93\u5165cm\u2074\uff0c\u8f6c\u6362 m\u2074\uff1a1 cm\u2074 = 1e-8 m\u2074\n            \/\/ f = (P * L^3) \/ (48 * E * I_m4)\n            function runCalculation() {\n                if(!validateAllFields()) {\n                    resultEl.textContent = '--';\n                    return;\n                }\n                const P = parseFloat(inputEls.P.value);\n                const L = parseFloat(inputEls.L.value);\n                const I_cm4 = parseFloat(inputEls.I.value);\n                \/\/ cm\u2074 \u8f6c m\u2074\n                const I_m4 = I_cm4 * Math.pow(10, -8);\n\n                const numerator = P * Math.pow(L, 3);\n                const denominator = 48 * STEEL_E * I_m4;\n                const deflection = numerator \/ denominator;\n                \/\/ \u7ed3\u679c\u4fdd\u75592\u4f4d\u5c0f\u6570\n                resultEl.textContent = deflection.toFixed(2);\n            }\n\n            \/\/ \u91cd\u7f6e\u5168\u90e8\n            function resetAll() {\n                fieldIds.forEach(key => {\n                    inputEls[key].value = '';\n                    clearError(inputEls[key], errorMsgEls[key]);\n                });\n                resultEl.textContent = '--';\n            }\n\n            \/\/ \u7ed1\u5b9a\u4e8b\u4ef6\n            function bindEvents() {\n                calcBtn.addEventListener('click', runCalculation);\n                resetBtn.addEventListener('click', resetAll);\n            }\n\n            \/\/ \u521d\u59cb\u5316\u5165\u53e3\n            function init() {\n                initDomRefs();\n                bindEvents();\n            }\n\n            window.BeamDeflectionCalc = {\n                init: init\n            };\n        })();\n\n        \/\/ \u9875\u9762\u52a0\u8f7d\u5b8c\u6210\u521d\u59cb\u5316\u8ba1\u7b97\u5668\n        document.addEventListener('DOMContentLoaded', function() {\n            BeamDeflectionCalc.init();\n        });\n    <\/script>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Rumus Kalkulator Defleksi Derek Atas dan Derek Gantry<\/h2>\n\n\n\n<style>\n    .formula {\n        font-family: \"Microsoft YaHei\", sans-serif;\n        font-size: 1.2em;\n        margin: 20px 0;\n        padding: 15px;\n        background: #ffffff;\n        border-radius: 8px;\n        text-align: left;\n    }\n    .math-frac {\n        display: inline-block;\n        vertical-align: middle;\n        text-align: center;\n        margin: 0 6px;\n    }\n    .frac-numerator {\n        display: block;\n        padding: 0 10px;\n        border-bottom: 2px solid #222;\n    }\n    .frac-denominator {\n        display: block;\n        padding: 0 10px;\n    }\n    .sup-pow {\n        font-size: 0.6em;\n        line-height: 0;\n        position: relative;\n        top: -0.6em;\n    }\n<\/style>\n<div class=\"formula\">\n    f = <span class=\"math-frac\">\n        <span class=\"frac-numerator\">PL<span class=\"sup-pow\">3<\/span><\/span>\n        <span class=\"frac-denominator\">48EI<\/span>\n    <\/span>\n<\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>f: Defleksi maksimum (satuan: m)<\/li>\n\n\n\n<li>P: Beban roda (satuan: N)<\/li>\n\n\n\n<li>L: Bentang balok utama (satuan: m)<\/li>\n\n\n\n<li>E: Modulus elastisitas (satuan: Pa, biasanya diambil sebagai 2,06 \u00d7 10\u00b9\u00b9 Pa)<\/li>\n\n\n\n<li>I: Momen Inersia (satuan: m\u00b2)<sup>4<\/sup>) <\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Catatan<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dalam perhitungan standar internasional, satuan untuk modulus elastisitas baja secara otomatis dikonversi ke Pa.<\/li>\n\n\n\n<li>Hasil perhitungan dari <a href=\"https:\/\/www.dgcrane.com\/id\/crane-main-girder-section-moment-of-inertia-calculator\/\">Kalkulator Momen Inersia Bagian Balok Utama Derek<\/a> Satuan yang digunakan adalah cm\u2074, tetapi secara otomatis dikonversi ke satuan SI m\u2074 selama proses perhitungan.<\/li>\n\n\n\n<li>Kalkulator defleksi derek overhead dan gantry ini terutama berlaku untuk balok utama dengan penampang berongga persegi panjang.<\/li>\n\n\n\n<li>Beban yang digunakan dalam kalkulator defleksi derek gantung dan derek gantry ini adalah beban terpusat di tengah bentang (dengan troli diposisikan di lokasi yang paling tidak menguntungkan).<\/li>\n\n\n\n<li>Hanya defleksi statis vertikal yang dihitung, dan koefisien beban dinamis tidak dipertimbangkan.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Derek yang Sesuai<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Derek jembatan (bentang \u2264 30 m)<\/li>\n\n\n\n<li>Derek gantry (bentang \u2264 30 m dan tanpa kantilever, atau panjang kantilever \u2264 0,15L)<\/li>\n\n\n\n<li>Derek semi-gantry (bentang \u2264 30 m dan tanpa kantilever, atau panjang kantilever \u2264 0,15L)<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"Kalkulator defleksi derek overhead dan gantry ini menjaga keselamatan operasional, mengurangi kelelahan struktural, dan memperpanjang umur layanan. Kalkulator ini secara akurat menghitung defleksi vertikal balok yang diberi beban, mengevaluasi kekakuan balok dan kinerja struktural dengan memasukkan kapasitas angkat, bentang, berat troli, dan parameter penampang. Kalkulator defleksi derek overhead dan gantry ini juga mencegah kerusakan rel, deformasi permanen, dan operasi yang tidak stabil, serta mengoptimalkan desain dan berat struktural. Terakhir, kalkulator ini memverifikasi apakah nilai defleksi sesuai dengan batas yang ditetapkan oleh standar ISO dan FEM.","protected":false},"author":8,"featured_media":17216,"parent":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"single-onlinetools.php","format":"standard","meta":{"_acf_changed":false,"rank_math_lock_modified_date":false,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[1059],"tags":[],"class_list":["post-17213","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-online-tools"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/posts\/17213"}],"collection":[{"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/comments?post=17213"}],"version-history":[{"count":4,"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/posts\/17213\/revisions"}],"predecessor-version":[{"id":17219,"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/posts\/17213\/revisions\/17219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/media\/17216"}],"wp:attachment":[{"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/media?parent=17213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/categories?post=17213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dgcrane.com\/id\/wp-json\/wp\/v2\/tags?post=17213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}