{"id":8538,"date":"2025-09-15T05:39:36","date_gmt":"2025-09-15T05:39:36","guid":{"rendered":"https:\/\/ccitonline.com\/wp\/?p=8538"},"modified":"2025-09-15T05:39:36","modified_gmt":"2025-09-15T05:39:36","slug":"kalkulator-proses-isobar-tekanan-konstan","status":"publish","type":"post","link":"https:\/\/ccitonline.com\/wp\/2025\/09\/15\/kalkulator-proses-isobar-tekanan-konstan\/","title":{"rendered":"Kalkulator Proses Isobar \/ Tekanan konstan"},"content":{"rendered":"\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\" \/>\n  <title>Kalkulator Proses Isobar (Tekanan Konstan)<\/title>\n  <style>\n    :root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,\"Helvetica Neue\",Arial;line-height:1.4}\n    body{margin:0;background:#f6f8fb;color:#0f172a;padding:24px}\n    .container{max-width:980px;margin:0 auto;background:white;padding:20px;border-radius:10px;box-shadow:0 6px 18px rgba(12,15,20,0.08)}\n    h1{font-size:20px;margin:0 0 8px}\n    .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n    label{display:block;font-size:13px;margin-bottom:6px}\n    input,select{width:100%;padding:8px;border:1px solid #d1d5db;border-radius:8px}\n    .btn{display:inline-block;padding:10px 14px;border-radius:8px;background:#2563eb;color:white;border:none;cursor:pointer}\n    .muted{color:#6b7280;font-size:13px}\n    .card{padding:12px;border-radius:8px;border:1px solid #e6eefc;background:#fbfdff}\n    pre{background:#0b1220;color:#dbeafe;padding:12px;border-radius:8px;overflow:auto}\n    canvas{background:white;border-radius:8px;border:1px solid #e6eefc}\n    .full{grid-column:1 \/ -1}\n    .formula{font-family:monospace;background:#f3f4f6;padding:10px;border-radius:6px;line-height:1.6}\n    .formula ul{margin:0;padding-left:20px}\n    footer{font-size:12px;color:#6b7280;margin-top:14px}\n  <\/style>\n<\/head>\n<body>\n  <div class=\"container\">\n    <h1>Kalkulator Proses Termodinamik Isobar (Tekanan Konstan)<\/h1>\n    <p class=\"muted\">Masukkan nilai pada kolom di bawah. Satuan default: P (kPa), V (m\u00b3), T (\u00b0C), m (kg), cp\/cv (kJ\/kg\u00b7K), R (kJ\/kg\u00b7K).<\/p>\n\n    <div class=\"grid\">\n      <div class=\"card\">\n        <label for=\"p\">Tekanan P (kPa)<\/label>\n        <input id=\"p\" type=\"number\" value=\"101.325\" step=\"any\">\n        <label for=\"m\">Massa m (kg)<\/label>\n        <input id=\"m\" type=\"number\" value=\"1\" step=\"any\">\n        <label for=\"R\">Konstanta gas spesifik R (kJ\/kg\u00b7K)<\/label>\n        <input id=\"R\" type=\"number\" value=\"0.287\" step=\"any\">\n        <div style=\"margin-top:8px\" class=\"muted\">(Default R = 0.287 kJ\/kg\u00b7K untuk udara)<\/div>\n      <\/div>\n\n      <div class=\"card\">\n        <label for=\"cp\">cp (kJ\/kg\u00b7K)<\/label>\n        <input id=\"cp\" type=\"number\" value=\"1.005\" step=\"any\">\n        <label for=\"cv\">cv (kJ\/kg\u00b7K)<\/label>\n        <input id=\"cv\" type=\"number\" value=\"0.718\" step=\"any\">\n        <div style=\"margin-top:8px\" class=\"muted\">(Default cp\/cv untuk udara di kondisi normal)<\/div>\n      <\/div>\n\n      <div class=\"card\">\n        <label for=\"Ti\">Temperatur awal Ti (\u00b0C)<\/label>\n        <input id=\"Ti\" type=\"number\" value=\"20\" step=\"any\">\n        <label for=\"Vi\">Volume awal Vi (m\u00b3)<\/label>\n        <input id=\"Vi\" type=\"number\" value=\"0.86\" step=\"any\">\n      <\/div>\n\n      <div class=\"card\">\n        <label for=\"Tf\">Temperatur akhir Tf (\u00b0C)<\/label>\n        <input id=\"Tf\" type=\"number\" value=\"120\" step=\"any\">\n        <label for=\"Qinput\">(Opsional) Kalor yang ditambahkan Q (kJ) \u2014 isi jika diketahui<\/label>\n        <input id=\"Qinput\" type=\"number\" placeholder=\"Kosongkan jika tidak diketahui\" step=\"any\">\n      <\/div>\n\n      <div class=\"full\">\n        <button class=\"btn\" id=\"calc\">Hitung<\/button>\n        <button class=\"btn\" id=\"reset\" style=\"background:#ef4444;margin-left:8px\">Reset<\/button>\n      <\/div>\n\n      <div class=\"full card\">\n        <h3>Hasil<\/h3>\n        <div id=\"results\">\n          <div class=\"muted\">Tekan &#8220;Hitung&#8221; untuk melihat hasil.<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"full card\">\n        <h3>Diagram p\u2013v sederhana<\/h3>\n        <canvas id=\"pv\" width=\"820\" height=\"200\"><\/canvas>\n      <\/div>\n\n      <div class=\"full card\">\n        <h3>Rumus penting (Isobar)<\/h3>\n        <div class=\"formula\">\n          <ul>\n            <li>Proses isobar: tekanan tetap \u2192 <strong>p = konstan<\/strong><\/li>\n            <li>Hukum gas ideal: <strong>pV = m R T<\/strong><\/li>\n            <li>Kerja: <strong>W = p (V<sub>f<\/sub> &#8211; V<sub>i<\/sub>)<\/strong><\/li>\n            <li>Kalor: <strong>Q = m c<sub>p<\/sub> (T<sub>f<\/sub> &#8211; T<sub>i<\/sub>)<\/strong><\/li>\n            <li>Perubahan energi dalam: <strong>\u0394U = m c<sub>v<\/sub> (T<sub>f<\/sub> &#8211; T<sub>i<\/sub>)<\/strong><\/li>\n            <li>Perubahan entalpi: <strong>\u0394H = m c<sub>p<\/sub> (T<sub>f<\/sub> &#8211; T<sub>i<\/sub>)<\/strong><\/li>\n          <\/ul>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n    <footer>Catatan: Pastikan satuan konsisten. Tekanan (kPa) \u00d7 Volume (m\u00b3) memberikan energi dalam kJ.<\/footer>\n  <\/div>\n\n  <script>\n    const $ = id => document.getElementById(id);\n\n    function toK(tempC){ return Number(tempC) + 273.15; }\n\n    function calc(){\n      const p = Number($('p').value) || 0; \/\/ kPa\n      const m = Number($('m').value) || 0; \/\/ kg\n      let R = Number($('R').value) || 0.287; \/\/ kJ\/kgK\n      const cp = Number($('cp').value) || 0; \/\/ kJ\/kgK\n      const cv = Number($('cv').value) || 0; \/\/ kJ\/kgK\n      const TiC = Number($('Ti').value);\n      const TfC = Number($('Tf').value);\n      const Vi = Number($('Vi').value) || 0; \/\/ m3\n      const Qinput = $('Qinput').value === '' ? null : Number($('Qinput').value);\n\n      const Ti = toK(TiC);\n      const Tf = toK(TfC);\n\n      let Vi_calc = Vi;\n      if(!Vi_calc){\n        if(p && m && R && Ti){\n          Vi_calc = (m * R * Ti) \/ p; \n        }\n      }\n\n      const Vf = (m * R * Tf) \/ p;\n      const W = p * (Vf - Vi_calc);\n      const dT = Tf - Ti;\n\n      let Tf_fromQ = null;\n      if(Qinput !== null && m && cp){\n        Tf_fromQ = Ti + Qinput \/ (m * cp);\n      }\n\n      const Q = m * cp * dT; \n      const dU = m * cv * dT; \n      const dH = m * cp * dT; \n\n      const results = { p, m, R, cp, cv, TiC, TfC, Vi: Vi_calc, Vf, W, Q, dU, dH, Tf_fromQ };\n      renderResults(results);\n      drawPV(results);\n    }\n\n    function renderResults(res){\n      const el = $('results');\n      el.innerHTML = '';\n\n      const rows = [\n        [`Tekanan p`, `${res.p} kPa`],\n        [`Massa m`, `${res.m} kg`],\n        [`R (spesifik)`, `${res.R} kJ\/kg\u00b7K`],\n        [`cp`, `${res.cp} kJ\/kg\u00b7K`],\n        [`cv`, `${res.cv} kJ\/kg\u00b7K`],\n        [`Temperatur awal Ti`, `${res.TiC} \u00b0C`],\n        [`Temperatur akhir Tf`, `${res.TfC} \u00b0C`],\n        [`Volume awal Vi (digunakan)`, `${res.Vi.toFixed(6)} m\u00b3`],\n        [`Volume akhir Vf`, `${res.Vf.toFixed(6)} m\u00b3`],\n        [`Kerja W = p(Vf - Vi)`, `${res.W.toFixed(6)} kJ`],\n        [`Kalor Q = m cp \u0394T`, `${res.Q.toFixed(6)} kJ`],\n        [`\u0394U = m cv \u0394T`, `${res.dU.toFixed(6)} kJ`],\n        [`\u0394H = m cp \u0394T`, `${res.dH.toFixed(6)} kJ`]\n      ];\n\n      rows.forEach(r => {\n        const d = document.createElement('div');\n        d.style.marginBottom = '6px';\n        d.innerHTML = `<strong>${r[0]}<\/strong>: <span class=\"muted\">${r[1]}<\/span>`;\n        el.appendChild(d);\n      });\n\n      if(res.Tf_fromQ !== null){\n        const note = document.createElement('div');\n        note.style.marginTop = '8px';\n        note.innerHTML = `<div><em>Jika Q yang dimasukkan benar, temperatur akhir berdasar Q: ${(res.Tf_fromQ - 273.15).toFixed(3)} \u00b0C<\/em><\/div>`;\n        el.appendChild(note);\n      }\n\n      const sign = document.createElement('div');\n      sign.style.marginTop = '8px';\n      sign.className = 'muted';\n      sign.innerHTML = 'Konvensi tanda: Q positif \u2192 kalor masuk sistem; W positif \u2192 kerja oleh sistem (V bertambah).';\n      el.appendChild(sign);\n    }\n\n    function drawPV(res){\n      const canvas = $('pv');\n      const ctx = canvas.getContext('2d');\n      ctx.clearRect(0,0,canvas.width,canvas.height);\n\n      const padding = 50;\n      const W = canvas.width - padding*2;\n      const H = canvas.height - padding*2;\n\n      const Vi = res.Vi;\n      const Vf = res.Vf;\n      const p = res.p;\n\n      const Vmin = Math.min(Vi, Vf);\n      const Vmax = Math.max(Vi, Vf);\n      const Vrange = Vmax - Vmin || Vmax*0.2 || 1;\n\n      ctx.strokeStyle = '#c7d2fe';\n      ctx.lineWidth = 1;\n      ctx.beginPath(); ctx.moveTo(padding, padding); ctx.lineTo(padding, padding+H); ctx.lineTo(padding+W, padding+H); ctx.stroke();\n\n      const xOfV = v => padding + ((v - Vmin) \/ Vrange) * W;\n\n      ctx.strokeStyle = '#2563eb';\n      ctx.lineWidth = 2;\n      ctx.beginPath();\n      ctx.moveTo(xOfV(Vmin), padding + H\/2);\n      ctx.lineTo(xOfV(Vmax), padding + H\/2);\n      ctx.stroke();\n\n      ctx.fillStyle = '#0f172a';\n      ctx.beginPath(); ctx.arc(xOfV(Vi), padding + H\/2, 4,0,Math.PI*2); ctx.fill();\n      ctx.fillText(`Vi=${Vi.toFixed(4)} m\u00b3`, xOfV(Vi)-40, padding + H\/2 - 10);\n      ctx.beginPath(); ctx.arc(xOfV(Vf), padding + H\/2, 4,0,Math.PI*2); ctx.fill();\n      ctx.fillText(`Vf=${Vf.toFixed(4)} m\u00b3`, xOfV(Vf)-40, padding + H\/2 + 18);\n\n      ctx.fillStyle = '#6b7280';\n      ctx.fillText('V (m\u00b3)', padding + W - 30, padding + H + 20);\n      ctx.fillText('p (kPa)', padding - 30, padding + 10);\n\n      ctx.fillStyle = 'rgba(37,99,235,0.12)';\n      const x1 = xOfV(Vi); const x2 = xOfV(Vf); const y = padding + H\/2;\n      ctx.beginPath(); ctx.moveTo(x1,y); ctx.lineTo(x2,y); ctx.lineTo(x2,padding+H); ctx.lineTo(x1,padding+H); ctx.closePath(); ctx.fill();\n\n      ctx.strokeStyle = '#e6eefc';\n      ctx.lineWidth = 1;\n      for(let i=0;i<=4;i++){\n        const vx = Vmin + (i\/4)*(Vrange);\n        const x = xOfV(vx);\n        ctx.beginPath(); ctx.moveTo(x, padding+H); ctx.lineTo(x, padding+H+6); ctx.stroke();\n        ctx.fillText(vx.toFixed(3), x-18, padding+H+20);\n      }\n\n      ctx.fillStyle = '#0f172a';\n      ctx.fillText(`p = ${p.toFixed(3)} kPa`, padding + 8, padding + H\/2 - 10);\n    }\n\n    $('calc').addEventListener('click', calc);\n    $('reset').addEventListener('click', ()=> location.reload());\n    window.addEventListener('load', ()=> setTimeout(calc, 80));\n  <\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>Kalkulator Proses Isobar (Tekanan Konstan) Kalkulator Proses Termodinamik Isobar (Tekanan Konstan) Masukkan nilai pada kolom di bawah. Satuan default: P (kPa), V (m\u00b3), T (\u00b0C), m (kg), cp\/cv (kJ\/kg\u00b7K), R (kJ\/kg\u00b7K). Tekanan P (kPa) Massa m (kg) Konstanta gas spesifik R (kJ\/kg\u00b7K) (Default R = 0.287 kJ\/kg\u00b7K untuk udara) cp (kJ\/kg\u00b7K) cv (kJ\/kg\u00b7K) (Default cp\/cv [&hellip;]<\/p>\n","protected":false},"author":197,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-8538","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/posts\/8538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/users\/197"}],"replies":[{"embeddable":true,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/comments?post=8538"}],"version-history":[{"count":3,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/posts\/8538\/revisions"}],"predecessor-version":[{"id":8541,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/posts\/8538\/revisions\/8541"}],"wp:attachment":[{"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/media?parent=8538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/categories?post=8538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/tags?post=8538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}