<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DWE | Irpan Chumaedi</title><link>https://www.irpanchumaedi.com/tag/dwe/</link><atom:link href="https://www.irpanchumaedi.com/tag/dwe/index.xml" rel="self" type="application/rss+xml"/><description>DWE</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Fri, 05 Jan 2024 00:00:00 +0000</lastBuildDate><image><url>https://www.irpanchumaedi.com/images/icon_huc8b49dbecede763dad003ee9bbdb929f_244914_512x512_fill_lanczos_center_2.png</url><title>DWE</title><link>https://www.irpanchumaedi.com/tag/dwe/</link></image><item><title>Modul 5 — Pemodelan 2D dengan HEC-RAS</title><link>https://www.irpanchumaedi.com/post/materi-pemodelan-2d-hecras/</link><pubDate>Fri, 05 Jan 2024 00:00:00 +0000</pubDate><guid>https://www.irpanchumaedi.com/post/materi-pemodelan-2d-hecras/</guid><description>
&lt;style>
.modul5-2d, .modul5-2d *::before, .modul5-2d *::after { box-sizing: border-box; margin: 0; padding: 0; }
/* TOP NAV */
.topnav { background: var(--hec-bg-card); border-bottom: 1px solid var(--hec-border); padding: 0 2rem; height: 56px; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 100; }
.modul5-2d .nav-brand { font-size: 15px; font-weight: 600; color: var(--hec-warning); letter-spacing: -0.3px; }
.modul5-2d .nav-breadcrumb { font-size: 13px; color: var(--hec-muted); }
.modul5-2d .nav-breadcrumb span { color: var(--hec-dim); margin: 0 6px; }
.modul5-2d .nav-breadcrumb a { color: var(--hec-muted); text-decoration: none; }
.modul5-2d .nav-breadcrumb a:hover { color: var(--hec-warning); }
/* HERO */
.hero { background: linear-gradient(135deg, #0a1f15 0%, #0f1117 70%); border-bottom: 1px solid var(--hec-border); padding: 3rem 2rem 2.5rem; position: relative; overflow: hidden; }
.modul5-2d .hero::before { content: ''; position: absolute; top: -40px; right: -40px; width: 350px; height: 350px; background: radial-gradient(circle, rgba(62,207,142,0.08) 0%, transparent 70%); pointer-events: none; }
.modul5-2d .hero-tag { display: inline-flex; align-items: center; gap: 6px; background: rgba(62,207,142,0.12); border: 1px solid rgba(62,207,142,0.3); color: var(--hec-warning); font-size: 12px; font-weight: 600; padding: 4px 12px; border-radius: 20px; margin-bottom: 1rem; letter-spacing: 0.5px; text-transform: uppercase; }
.modul5-2d .hero h1 { font-size: 2.2rem; font-weight: 700; color: #fff; line-height: 1.25; max-width: 700px; margin-bottom: 0.75rem; }
.modul5-2d .hero p { color: var(--hec-muted); font-size: 1.05rem; max-width: 650px; margin-bottom: 1.5rem; }
.modul5-2d .hero-meta { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.modul5-2d .meta-item { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--hec-dim); }
.modul5-2d .meta-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--hec-warning); }
/* MAIN LAYOUT */
.container { max-width: 860px; margin: 0 auto; padding: 2.5rem 2rem; }
/* LEARNING OBJECTIVES */
.objectives { background: rgba(62,207,142,0.06); border: 1px solid rgba(62,207,142,0.2); border-radius: 12px; padding: 1.5rem; margin-bottom: 2.5rem; }
.modul5-2d .objectives-title { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--hec-warning); margin-bottom: 1rem; text-transform: uppercase; letter-spacing: 0.5px; }
.modul5-2d .objectives ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.modul5-2d .objectives li { display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px; color: var(--hec-muted); }
.modul5-2d .obj-check { width: 18px; height: 18px; background: rgba(62,207,142,0.15); border: 1px solid rgba(62,207,142,0.4); border-radius: 4px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 10px; color: var(--hec-warning); margin-top: 2px; }
/* SECTION HEADING */
.section-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 1.25rem; margin-top: 2.5rem; }
.modul5-2d .section-num { width: 32px; height: 32px; background: rgba(62,207,142,0.15); border: 1px solid rgba(62,207,142,0.3); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: var(--hec-warning); flex-shrink: 0; }
.modul5-2d .section-heading h2 { font-size: 1.3rem; font-weight: 600; color: #fff; letter-spacing: -0.3px; }
/* DIVIDER */
.divider { border: none; border-top: 1px solid var(--hec-border); margin: 2rem 0; }
/* PROSE */
p { color: var(--hec-muted); margin-bottom: 1rem; font-size: 15.5px; }
.modul5-2d p:last-child { margin-bottom: 0; }
.modul5-2d strong { color: var(--hec-text); font-weight: 600; }
.modul5-2d h3 { font-size: 1.05rem; font-weight: 600; color: var(--hec-text); margin: 1.5rem 0 0.75rem; }
.modul5-2d h4 { font-size: 0.95rem; font-weight: 600; color: var(--hec-muted); margin: 1.25rem 0 0.5rem; }
/* INFO BOX */
.info-box { background: rgba(74,158,255,0.06); border: 1px solid rgba(74,158,255,0.2); border-left: 3px solid var(--hec-info); border-radius: 0 8px 8px 0; padding: 1rem 1.25rem; margin: 1.25rem 0; }
.modul5-2d .info-box.warning { background: rgba(244,166,66,0.06); border-color: rgba(244,166,66,0.2); border-left-color: var(--hec-warning); }
.modul5-2d .info-box.success { background: rgba(62,207,142,0.06); border-color: rgba(62,207,142,0.2); border-left-color: var(--hec-success); }
.modul5-2d .info-box.danger { background: rgba(224,90,90,0.06); border-color: rgba(224,90,90,0.2); border-left-color: var(--hec-danger); }
.modul5-2d .info-box-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--hec-info); margin-bottom: 6px; }
.modul5-2d .info-box.warning .info-box-label { color: var(--hec-warning); }
.modul5-2d .info-box.success .info-box-label { color: var(--hec-success); }
.modul5-2d .info-box.danger .info-box-label { color: var(--hec-danger); }
.modul5-2d .info-box p { margin: 0; font-size: 14.5px; }
/* CARDS GRID */
.cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 1.25rem 0; }
.modul5-2d .card { background: var(--hec-bg-card); border: 1px solid var(--hec-border); border-radius: 10px; padding: 1.1rem 1.2rem; }
.modul5-2d .card-icon { font-size: 1.5rem; margin-bottom: 8px; display: block; }
.modul5-2d .card-title { font-size: 14px; font-weight: 600; color: var(--hec-text); margin-bottom: 4px; }
.modul5-2d .card-desc { font-size: 13px; color: var(--hec-dim); line-height: 1.5; }
/* STEPS */
.steps { display: flex; flex-direction: column; gap: 0; margin: 1.25rem 0; }
.modul5-2d .step { display: flex; gap: 16px; position: relative; }
.modul5-2d .step:not(:last-child)::after { content: ''; position: absolute; left: 19px; top: 40px; bottom: 0; width: 2px; background: var(--hec-border); }
.modul5-2d .step-num { width: 38px; height: 38px; background: var(--hec-bg-card2); border: 2px solid var(--hec-border); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: var(--hec-warning); flex-shrink: 0; position: relative; z-index: 1; }
.modul5-2d .step-body { padding-bottom: 1.5rem; flex: 1; }
.modul5-2d .step-title { font-size: 15px; font-weight: 600; color: var(--hec-text); margin-bottom: 6px; padding-top: 7px; }
.modul5-2d .step-desc { font-size: 14.5px; color: var(--hec-muted); }
.modul5-2d .step-desc p { margin-bottom: 6px; font-size: 14.5px; }
/* LISTS */
ul.prose-list { margin: 0.75rem 0 1rem 0; padding-left: 0; list-style: none; color: var(--hec-muted); font-size: 15px; }
.modul5-2d ul.prose-list li { margin-bottom: 6px; line-height: 1.6; padding-left: 16px; position: relative; }
.modul5-2d ul.prose-list li::before { content: '•'; color: var(--hec-warning); font-weight: bold; margin-right: 8px; position: absolute; left: 0; }
.modul5-2d ol.prose-list { margin: 0.75rem 0 1rem 0; padding-left: 1.5rem; color: var(--hec-muted); font-size: 15px; }
.modul5-2d ol.prose-list li { margin-bottom: 6px; line-height: 1.6; }
/* TABLE */
.file-table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 1.25rem 0; }
.modul5-2d .file-table th { background: var(--hec-bg-card2); color: var(--hec-muted); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--hec-border); }
.modul5-2d .file-table td { padding: 10px 14px; border-bottom: 1px solid rgba(46,49,73,0.5); color: var(--hec-muted); vertical-align: top; }
.modul5-2d .file-table tr:last-child td { border-bottom: none; }
.modul5-2d .file-table tr:hover td { background: rgba(255,255,255,0.02); }
.modul5-2d .badge { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 4px; }
.modul5-2d .badge-green { background: rgba(62,207,142,0.15); color: var(--hec-success); }
.modul5-2d .badge-blue { background: rgba(74,158,255,0.15); color: var(--hec-info); }
.modul5-2d .badge-yellow { background: rgba(244,166,66,0.15); color: var(--hec-warning); }
.modul5-2d .badge-red { background: rgba(224,90,90,0.15); color: var(--hec-danger); }
/* CODE */
.file-ext { font-family: 'Courier New', monospace; background: var(--hec-code-bg); color: var(--hec-warning); padding: 2px 8px; border-radius: 4px; font-size: 13px; white-space: nowrap; }
.modul5-2d .code-block { background: var(--hec-code-bg); border: 1px solid var(--hec-border); border-radius: 8px; padding: 1rem 1.25rem; font-family: 'Courier New', monospace; font-size: 13.5px; color: #a8b4ff; margin: 0.75rem 0; overflow-x: auto; line-height: 1.8; }
.modul5-2d .code-comment { color: var(--hec-dim); font-style: italic; }
.modul5-2d .code-key { color: var(--hec-warning); }
/* FORMULA */
.formula-box { background: var(--hec-bg-card2); border: 1px solid var(--hec-border); border-radius: 10px; padding: 1.25rem 1.5rem; margin: 1.25rem 0; }
.modul5-2d .formula { font-family: 'Courier New', monospace; font-size: 1.05rem; color: var(--hec-warning); text-align: center; font-weight: 600; letter-spacing: 0.5px; margin-bottom: 0.75rem; }
.modul5-2d .formula-vars { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; }
.modul5-2d .formula-var { font-size: 13px; color: var(--hec-dim); }
/* COMPARISON CARDS */
.compare-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 1.25rem 0; }
.modul5-2d .compare-card { background: var(--hec-bg-card); border: 1px solid var(--hec-border); border-radius: 10px; padding: 1.25rem; }
.modul5-2d .compare-card.accent-green { border-color: rgba(62,207,142,0.3); background: rgba(62,207,142,0.04); }
.modul5-2d .compare-card.accent-blue { border-color: rgba(74,158,255,0.3); background: rgba(74,158,255,0.04); }
.modul5-2d .compare-header { display: flex; align-items: center; gap: 8px; margin-bottom: 0.75rem; }
.modul5-2d .compare-icon { font-size: 1.3rem; }
.modul5-2d .compare-title { font-size: 14px; font-weight: 700; color: var(--hec-text); }
.modul5-2d .compare-badge { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 4px; margin-left: auto; }
.modul5-2d .compare-card.accent-green .compare-badge { background: rgba(62,207,142,0.15); color: var(--hec-success); }
.modul5-2d .compare-card.accent-blue .compare-badge { background: rgba(74,158,255,0.15); color: var(--hec-info); }
.modul5-2d .compare-list { list-style: none; display: flex; flex-direction: column; gap: 5px; }
.modul5-2d .compare-list li { font-size: 13px; color: var(--hec-dim); padding-left: 14px; position: relative; line-height: 1.5; }
.modul5-2d .compare-card.accent-green .compare-list li::before { content: '✓'; position: absolute; left: 0; color: var(--hec-success); font-size: 11px; top: 1px; }
.modul5-2d .compare-card.accent-blue .compare-list li::before { content: '✓'; position: absolute; left: 0; color: var(--hec-info); font-size: 11px; top: 1px; }
/* DECISION BOX */
.decision-box { background: var(--hec-bg-card); border: 1px solid var(--hec-border); border-radius: 10px; overflow: hidden; margin: 1.25rem 0; }
.modul5-2d .decision-header { background: var(--hec-bg-card2); padding: 0.75rem 1.25rem; border-bottom: 1px solid var(--hec-border); font-size: 13px; font-weight: 600; color: var(--hec-muted); text-transform: uppercase; letter-spacing: 0.5px; }
.modul5-2d .decision-row { display: flex; align-items: flex-start; gap: 0; border-bottom: 1px solid rgba(46,49,73,0.4); }
.modul5-2d .decision-row:last-child { border-bottom: none; }
.modul5-2d .decision-cond { flex: 0 0 50%; padding: 10px 14px; font-size: 14px; color: var(--hec-muted); border-right: 1px solid var(--hec-border); }
.modul5-2d .decision-result { flex: 0 0 50%; padding: 10px 14px; font-size: 14px; font-weight: 600; }
.modul5-2d .decision-result.use-1d { color: var(--hec-info); }
.modul5-2d .decision-result.use-2d { color: var(--hec-warning); }
.modul5-2d .decision-result.either { color: var(--hec-warning); }
/* MESH VISUAL */
.mesh-visual { background: var(--hec-bg-card2); border: 1px solid var(--hec-border); border-radius: 10px; padding: 1.5rem; margin: 1.25rem 0; text-align: center; }
.modul5-2d .mesh-svg-label { font-size: 12px; color: var(--hec-dim); margin-top: 10px; }
/* PARAM GRID */
.param-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 1rem 0; }
.modul5-2d .param-item { background: var(--hec-bg-card); border: 1px solid var(--hec-border); border-radius: 8px; padding: 0.85rem; }
.modul5-2d .param-name { font-size: 13px; font-weight: 600; color: var(--hec-text); margin-bottom: 4px; }
.modul5-2d .param-val { font-size: 13px; color: var(--hec-dim); }
.modul5-2d .param-val strong { color: var(--hec-warning); }
/* TABS */
.tabs { margin: 1.25rem 0; }
.modul5-2d .tab-buttons { display: flex; gap: 4px; border-bottom: 1px solid var(--hec-border); margin-bottom: 0; }
.modul5-2d .tab-btn { background: none; border: none; padding: 8px 16px; font-size: 13.5px; font-weight: 600; color: var(--hec-dim); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: all 0.2s; font-family: inherit; }
.modul5-2d .tab-btn.active { color: var(--hec-warning); border-bottom-color: var(--hec-warning); }
.modul5-2d .tab-btn:hover:not(.active) { color: var(--hec-muted); }
.modul5-2d .tab-content { display: none; background: var(--hec-bg-card); border: 1px solid var(--hec-border); border-top: none; border-radius: 0 0 10px 10px; padding: 1.25rem; }
.modul5-2d .tab-content.active { display: block; }
/* TROUBLESHOOT */
.trouble-row { display: flex; gap: 0; border: 1px solid var(--hec-border); border-radius: 8px; overflow: hidden; margin-bottom: 8px; }
.modul5-2d .trouble-problem { flex: 0 0 45%; padding: 10px 14px; background: rgba(224,90,90,0.05); border-right: 1px solid var(--hec-border); }
.modul5-2d .trouble-icon { font-size: 1rem; margin-bottom: 4px; }
.modul5-2d .trouble-title { font-size: 13.5px; font-weight: 600; color: var(--hec-danger); }
.modul5-2d .trouble-solution { flex: 1; padding: 10px 14px; background: rgba(62,207,142,0.04); }
.modul5-2d .trouble-solution-title { font-size: 13.5px; font-weight: 600; color: var(--hec-success); margin-bottom: 4px; }
.modul5-2d .trouble-solution-text { font-size: 13px; color: var(--hec-dim); line-height: 1.5; }
/* SUMMARY &amp; NEXT */
.summary-box { background: rgba(62,207,142,0.06); border: 1px solid rgba(62,207,142,0.2); border-radius: 12px; padding: 1.5rem; margin-top: 2.5rem; }
.modul5-2d .summary-title { font-size: 14px; font-weight: 600; color: var(--hec-warning); margin-bottom: 1rem; text-transform: uppercase; letter-spacing: 0.5px; }
.modul5-2d .summary-list { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.modul5-2d .summary-list li { font-size: 14.5px; color: var(--hec-muted); padding-left: 16px; position: relative; }
.modul5-2d .summary-list li::before { content: '→'; position: absolute; left: 0; color: var(--hec-warning); font-size: 12px; top: 1px; }
.modul5-2d .next-module { background: var(--hec-bg-card); border: 1px solid var(--hec-border); border-radius: 12px; padding: 1.25rem 1.5rem; margin-top: 1.5rem; display: flex; align-items: center; justify-content: space-between; text-decoration: none; }
.modul5-2d .next-module:hover { border-color: rgba(62,207,142,0.3); background: rgba(62,207,142,0.04); }
.modul5-2d .next-label { font-size: 12px; color: var(--hec-dim); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; }
.modul5-2d .next-title { font-size: 15px; font-weight: 600; color: var(--hec-text); }
.modul5-2d .next-arrow { font-size: 1.5rem; color: var(--hec-warning); }
.modul5-2d .prev-module { background: var(--hec-bg-card); border: 1px solid var(--hec-border); border-radius: 12px; padding: 1rem 1.5rem; margin-top: 1rem; display: flex; align-items: center; gap: 12px; text-decoration: none; }
.modul5-2d .prev-module:hover { border-color: rgba(62,207,142,0.2); }
.modul5-2d .prev-label { font-size: 12px; color: var(--hec-dim); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; }
.modul5-2d .prev-title { font-size: 14px; font-weight: 500; color: var(--hec-muted); }
.modul5-2d .footnote { font-size: 12.5px; color: var(--hec-dim); border-top: 1px solid var(--hec-border); margin-top: 3rem; padding-top: 1rem; }
/* MESH SIZE GUIDE */
.mesh-guide { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 1.25rem 0; }
.modul5-2d .mesh-card { background: var(--hec-bg-card); border: 1px solid var(--hec-border); border-radius: 8px; padding: 1rem; text-align: center; }
.modul5-2d .mesh-card-size { font-size: 1.4rem; font-weight: 700; color: var(--hec-warning); margin-bottom: 4px; font-family: 'Courier New', monospace; }
.modul5-2d .mesh-card-label { font-size: 12px; color: var(--hec-dim); margin-bottom: 6px; }
.modul5-2d .mesh-card-desc { font-size: 12px; color: var(--hec-muted); line-height: 1.4; }
/* COURANT VISUAL */
.courant-box { background: var(--hec-bg-card2); border: 1px solid var(--hec-border); border-radius: 10px; padding: 1.25rem; margin: 1.25rem 0; }
.modul5-2d .courant-title { font-size: 12px; font-weight: 700; color: var(--hec-dim); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px; }
.modul5-2d .courant-bar-wrap { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.modul5-2d .courant-label { font-size: 13px; color: var(--hec-muted); width: 80px; flex-shrink: 0; }
.modul5-2d .courant-bar { flex: 1; height: 8px; border-radius: 4px; background: var(--hec-bg-card); overflow: hidden; }
.modul5-2d .courant-fill { height: 100%; border-radius: 4px; }
.modul5-2d .courant-val { font-size: 13px; font-weight: 600; width: 60px; flex-shrink: 0; }
.modul5-2d .fill-ideal { background: var(--hec-success); width: 40%; }
.modul5-2d .fill-warning { background: var(--hec-warning); width: 75%; }
.modul5-2d .fill-unstable { background: var(--hec-danger); width: 100%; }
.modul5-2d .c-ideal { color: var(--hec-success); }
.modul5-2d .c-warning { color: var(--hec-warning); }
.modul5-2d .c-unstable { color: var(--hec-danger); }
@media (max-width: 640px) {
.hero h1 { font-size: 1.6rem; }
.modul5-2d .compare-grid { grid-template-columns: 1fr; }
.modul5-2d .param-grid { grid-template-columns: 1fr; }
.modul5-2d .mesh-guide { grid-template-columns: 1fr; }
.modul5-2d .decision-cond, .modul5-2d .decision-result { flex: 0 0 50%; }
.modul5-2d .trouble-row { flex-direction: column; }
.modul5-2d .trouble-problem, .modul5-2d .trouble-solution { flex: none; }
}
.modul5-2d { box-sizing:border-box; width:100%; overflow-x:hidden; }
.modul5-2d * { box-sizing:border-box; }
&lt;/style>
&lt;div class="modul5-2d">
&lt;!-- LEARNING OBJECTIVES -->
&lt;div class="objectives">
&lt;div class="objectives-title">🎯 Tujuan Pembelajaran&lt;/div>
&lt;ul>
&lt;li>&lt;div class="obj-check">✓&lt;/div>Memahami kapan pemodelan 2D lebih tepat dibanding 1D&lt;/li>
&lt;li>&lt;div class="obj-check">✓&lt;/div>Mengenal konsep mesh, computational cells, dan dual grid pada HEC-RAS 2D&lt;/li>
&lt;li>&lt;div class="obj-check">✓&lt;/div>Mampu membuat dan memperhalus mesh 2D Flow Area di HEC-RAS&lt;/li>
&lt;li>&lt;div class="obj-check">✓&lt;/div>Memahami perbedaan Shallow Water Equations (SWE) vs Diffusion Wave Equations (DWE)&lt;/li>
&lt;li>&lt;div class="obj-check">✓&lt;/div>Mampu menetapkan kondisi batas dan menjalankan simulasi 2D&lt;/li>
&lt;li>&lt;div class="obj-check">✓&lt;/div>Mampu membangun model hybrid 1D-2D untuk sistem sungai + dataran banjir&lt;/li>
&lt;li>&lt;div class="obj-check">✓&lt;/div>Menghasilkan peta genangan (depth, velocity, WSE) dari RAS Mapper dan mengekspornya ke QGIS&lt;/li>
&lt;/ul>
&lt;/div>
&lt;!-- SECTION 1: 1D VS 2D -->
&lt;div class="section-heading">
&lt;div class="section-num">1&lt;/div>
&lt;h2>Kapan Pakai 2D? Kapan Cukup 1D?&lt;/h2>
&lt;/div>
&lt;p>Pertanyaan pertama sebelum memulai model 2D adalah: &lt;strong>apakah memang perlu?&lt;/strong> Pemodelan 2D membutuhkan data, waktu setup, dan waktu komputasi yang jauh lebih besar. Pilih 2D hanya jika kondisi berikut terpenuhi.&lt;/p>
&lt;div class="decision-box">
&lt;div class="decision-header">Panduan Pemilihan: Lihat kondisi lapangan Anda&lt;/div>
&lt;div class="decision-row">
&lt;div class="decision-cond">Sungai terkanalisis, aliran jelas satu arah mengikuti sumbu sungai&lt;/div>
&lt;div class="decision-result use-1d">→ Pakai 1D (lebih cepat, sudah cukup)&lt;/div>
&lt;/div>
&lt;div class="decision-row">
&lt;div class="decision-cond">Dataran banjir luas, aliran menyebar ke segala arah setelah meluap&lt;/div>
&lt;div class="decision-result use-2d">→ Pakai 2D&lt;/div>
&lt;/div>
&lt;div class="decision-row">
&lt;div class="decision-cond">Studi pre-feasibility, banyak skenario dibutuhkan, akurasi 2D tidak kritis&lt;/div>
&lt;div class="decision-result use-1d">→ Pakai 1D (efisiensi waktu)&lt;/div>
&lt;/div>
&lt;div class="decision-row">
&lt;div class="decision-cond">Dam break, levee breach — gelombang banjir menyebar ke dataran luas&lt;/div>
&lt;div class="decision-result use-2d">→ Pakai 2D&lt;/div>
&lt;/div>
&lt;div class="decision-row">
&lt;div class="decision-cond">Banjir perkotaan dengan jaringan jalan dan bangunan kompleks&lt;/div>
&lt;div class="decision-result use-2d">→ Pakai 2D&lt;/div>
&lt;/div>
&lt;div class="decision-row">
&lt;div class="decision-cond">Muara sungai, delta, wilayah pesisir — pasang surut + banjir&lt;/div>
&lt;div class="decision-result use-2d">→ Pakai 2D&lt;/div>
&lt;/div>
&lt;div class="decision-row">
&lt;div class="decision-cond">Sungai dengan dataran banjir terbatas, perlu flood routing akurat&lt;/div>
&lt;div class="decision-result either">→ Hybrid 1D-2D (terbaik)&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="compare-grid">
&lt;div class="compare-card accent-blue">
&lt;div class="compare-header">
&lt;span class="compare-icon">📏&lt;/span>
&lt;span class="compare-title">1D Unsteady&lt;/span>
&lt;span class="compare-badge">Cepat&lt;/span>
&lt;/div>
&lt;ul class="compare-list">
&lt;li>Aliran terkanalisis 1 arah&lt;/li>
&lt;li>Setup dan komputasi cepat&lt;/li>
&lt;li>Banyak skenario dalam satu run&lt;/li>
&lt;li>Cross section sebagai geometri&lt;/li>
&lt;li>Output: hidrograf di tiap XS&lt;/li>
&lt;/ul>
&lt;/div>
&lt;div class="compare-card accent-green">
&lt;div class="compare-header">
&lt;span class="compare-icon">🗺️&lt;/span>
&lt;span class="compare-title">2D Unsteady&lt;/span>
&lt;span class="compare-badge">Akurat&lt;/span>
&lt;/div>
&lt;ul class="compare-list">
&lt;li>Aliran menyebar ke x dan y&lt;/li>
&lt;li>Distribusi kecepatan 2D&lt;/li>
&lt;li>Peta genangan detail&lt;/li>
&lt;li>Mesh sebagai geometri&lt;/li>
&lt;li>Output: grid depth, velocity, WSE&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;hr class="divider">
&lt;!-- SECTION 2: KONSEP MESH -->
&lt;div class="section-heading">
&lt;div class="section-num">2&lt;/div>
&lt;h2>Konsep Dasar: Mesh, Sel, dan Dual Grid&lt;/h2>
&lt;/div>
&lt;p>Di HEC-RAS 2D, domain komputasi dibagi menjadi &lt;strong>ratusan hingga ribuan sel (cells)&lt;/strong> yang membentuk mesh. Setiap sel mewakili sebidang wilayah di atas terrain DEM. Pahami tiga komponen utama ini:&lt;/p>
&lt;div class="cards-grid">
&lt;div class="card">
&lt;span class="card-icon">⬡&lt;/span>
&lt;div class="card-title">Computational Cells&lt;/div>
&lt;div class="card-desc">Polygon yang membentuk mesh. Setiap sel menyimpan nilai &lt;em>rata-rata&lt;/em> elevasi muka air (H) dan volume air. HEC-RAS mendukung sel segiempat maupun poligon tidak beraturan.&lt;/div>
&lt;/div>
&lt;div class="card">
&lt;span class="card-icon">━&lt;/span>
&lt;div class="card-title">Cell Faces&lt;/div>
&lt;div class="card-desc">Tepi/sisi antar sel, tempat di mana aliran Q dan kecepatan V dihitung. Setiap face memiliki panjang, orientasi, dan ketinggian ambang tersendiri.&lt;/div>
&lt;/div>
&lt;div class="card">
&lt;span class="card-icon">⊞&lt;/span>
&lt;div class="card-title">Dual Grid System&lt;/div>
&lt;div class="card-desc">HEC-RAS menggunakan &lt;em>dual grid&lt;/em>: muka air dihitung di pusat sel, kecepatan dihitung di pusat face. Kombinasi ini meningkatkan stabilitas numerik secara signifikan.&lt;/div>
&lt;/div>
&lt;div class="card">
&lt;span class="card-icon">📊&lt;/span>
&lt;div class="card-title">Hydraulic Property Tables&lt;/div>
&lt;div class="card-desc">Untuk tiap sel, HEC-RAS pra-hitung tabel hubungan elevasi vs. volume, luas, dan lebar muka air. Ini di-preprocessing sekali dan disimpan di file geometri.&lt;/div>
&lt;/div>
&lt;/div>
&lt;!-- Mesh SVG Illustration -->
&lt;div class="mesh-visual">
&lt;svg viewBox="0 0 520 220" xmlns="http://www.w3.org/2000/svg" style="max-width:500px;width:100%;">
&lt;defs>
&lt;pattern id="meshpat" x="0" y="0" width="40" height="40" patternUnits="userSpaceOnUse">
&lt;rect width="40" height="40" fill="#1a1d27" stroke="#2e3149" stroke-width="1"/>
&lt;/pattern>
&lt;/defs>
&lt;!-- Domain -->
&lt;rect x="20" y="20" width="480" height="180" fill="url(#meshpat)" rx="4"/>
&lt;!-- Refinement zone (smaller cells) near river -->
&lt;g transform="translate(180,60)">
&lt;rect width="160" height="100" fill="#0a1f15" stroke="#3ecf8e" stroke-width="1.5" rx="2"/>
&lt;!-- small cells inside -->
&lt;line x1="20" y1="0" x2="20" y2="100" stroke="#3ecf8e" stroke-width="0.6" stroke-opacity="0.5"/>
&lt;line x1="40" y1="0" x2="40" y2="100" stroke="#3ecf8e" stroke-width="0.6" stroke-opacity="0.5"/>
&lt;line x1="60" y1="0" x2="60" y2="100" stroke="#3ecf8e" stroke-width="0.6" stroke-opacity="0.5"/>
&lt;line x1="80" y1="0" x2="80" y2="100" stroke="#3ecf8e" stroke-width="0.6" stroke-opacity="0.5"/>
&lt;line x1="100" y1="0" x2="100" y2="100" stroke="#3ecf8e" stroke-width="0.6" stroke-opacity="0.5"/>
&lt;line x1="120" y1="0" x2="120" y2="100" stroke="#3ecf8e" stroke-width="0.6" stroke-opacity="0.5"/>
&lt;line x1="140" y1="0" x2="140" y2="100" stroke="#3ecf8e" stroke-width="0.6" stroke-opacity="0.5"/>
&lt;line x1="0" y1="25" x2="160" y2="25" stroke="#3ecf8e" stroke-width="0.6" stroke-opacity="0.5"/>
&lt;line x1="0" y1="50" x2="160" y2="50" stroke="#3ecf8e" stroke-width="0.6" stroke-opacity="0.5"/>
&lt;line x1="0" y1="75" x2="160" y2="75" stroke="#3ecf8e" stroke-width="0.6" stroke-opacity="0.5"/>
&lt;!-- river channel -->
&lt;rect x="60" y="30" width="40" height="40" fill="rgba(74,158,255,0.25)" rx="2"/>
&lt;text x="80" y="52" text-anchor="middle" fill="#4a9eff" font-size="8" font-weight="600">CH&lt;/text>
&lt;/g>
&lt;!-- Labels -->
&lt;text x="55" y="40" fill="#5a6080" font-size="10">Dataran banjir&lt;/text>
&lt;text x="55" y="52" fill="#5a6080" font-size="10">(sel besar ~100m)&lt;/text>
&lt;text x="210" y="56" fill="#3ecf8e" font-size="9" font-weight="600">Refinement Zone&lt;/text>
&lt;text x="210" y="67" fill="#5a6080" font-size="9">(sel kecil ~10-20m)&lt;/text>
&lt;!-- Flow arrows -->
&lt;path d="M30,110 L165,110" stroke="#4a9eff" stroke-width="1.5" stroke-dasharray="4,3" marker-end="url(#arr)"/>
&lt;path d="M360,110 L480,110" stroke="#4a9eff" stroke-width="1.5" stroke-dasharray="4,3" marker-end="url(#arr)"/>
&lt;defs>
&lt;marker id="arr" markerWidth="6" markerHeight="6" refX="5" refY="3" orient="auto">
&lt;path d="M0,0 L6,3 L0,6 Z" fill="#4a9eff"/>
&lt;/marker>
&lt;/defs>
&lt;text x="80" y="125" fill="#4a9eff" font-size="9">Hulu →&lt;/text>
&lt;text x="390" y="125" fill="#4a9eff" font-size="9">→ Hilir&lt;/text>
&lt;!-- Legend -->
&lt;rect x="20" y="175" width="12" height="8" fill="#3ecf8e" rx="1"/>
&lt;text x="36" y="183" fill="#8e94b5" font-size="9">Refinement (sel halus)&lt;/text>
&lt;rect x="180" y="175" width="12" height="8" fill="rgba(74,158,255,0.3)" rx="1"/>
&lt;text x="196" y="183" fill="#8e94b5" font-size="9">Channel utama&lt;/text>
&lt;rect x="330" y="175" width="12" height="8" fill="#1a1d27" stroke="#2e3149" rx="1"/>
&lt;text x="346" y="183" fill="#8e94b5" font-size="9">Floodplain (sel kasar)&lt;/text>
&lt;/svg>
&lt;div class="mesh-svg-label">Ilustrasi: mesh 2D dengan refinement zone di sekitar saluran utama&lt;/div>
&lt;/div>
&lt;hr class="divider">
&lt;!-- SECTION 3: PERSAMAAN NUMERIK -->
&lt;div class="section-heading">
&lt;div class="section-num">3&lt;/div>
&lt;h2>SWE vs DWE — Pilih Persamaan yang Tepat&lt;/h2>
&lt;/div>
&lt;p>HEC-RAS 2D menyediakan dua pilihan persamaan hidrolika. Pilihan ini &lt;strong>sangat mempengaruhi&lt;/strong> akurasi, kestabilan, dan kecepatan komputasi.&lt;/p>
&lt;!-- TABS -->
&lt;div class="tabs">
&lt;div class="tab-buttons">
&lt;button class="tab-btn active" onclick="showTab(this,'swe')">Shallow Water Equations (SWE)&lt;/button>
&lt;button class="tab-btn" onclick="showTab(this,'dwe')">Diffusion Wave Equations (DWE)&lt;/button>
&lt;/div>
&lt;div class="tab-content active" id="tab-swe">
&lt;p style="margin-bottom:1rem;">&lt;strong>Full Shallow Water Equations&lt;/strong> — menyelesaikan persamaan Saint-Venant 2D secara penuh, termasuk term inersia (percepatan aliran).&lt;/p>
&lt;div class="formula-box">
&lt;div class="formula">∂h/∂t + ∂(hu)/∂x + ∂(hv)/∂y = 0 &amp;nbsp;&amp;nbsp;[Kontinuitas]&lt;/div>
&lt;div class="formula" style="margin-top:10px;">∂(hu)/∂t + ∂(hu²+gh²/2)/∂x + ∂(huv)/∂y = gh(S₀ₓ − Sfₓ) &amp;nbsp;&amp;nbsp;[Momentum-x]&lt;/div>
&lt;div class="formula-vars">
&lt;span class="formula-var">h = kedalaman air (m)&lt;/span>
&lt;span class="formula-var">u, v = kecepatan arah x dan y (m/s)&lt;/span>
&lt;span class="formula-var">g = gravitasi (m/s²)&lt;/span>
&lt;span class="formula-var">S₀ = kemiringan dasar&lt;/span>
&lt;span class="formula-var">Sf = kemiringan energi (gesekan)&lt;/span>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Gunakan SWE untuk:&lt;/strong> dam break, aliran sangat cepat (Fr > 0.5), analisis di mana efek inersia signifikan, atau studi yang memerlukan presisi tinggi terhadap front gelombang banjir.&lt;/p>
&lt;div class="info-box warning">
&lt;div class="info-box-label">⚠️ Perhatian&lt;/div>
&lt;p>SWE memerlukan time step lebih kecil (Courant condition lebih ketat) dan komputasi lebih lambat. Bisa 3–5× lebih lama dari DWE untuk mesh yang sama.&lt;/p>
&lt;/div>
&lt;/div>
&lt;div class="tab-content" id="tab-dwe">
&lt;p style="margin-bottom:1rem;">&lt;strong>Diffusion Wave Equations&lt;/strong> — aproksimasi SWE dengan mengabaikan term inersia lokal dan konvektif. Lebih sederhana dan stabil.&lt;/p>
&lt;div class="formula-box">
&lt;div class="formula">∂h/∂t + ∂(hu)/∂x + ∂(hv)/∂y = 0 &amp;nbsp;&amp;nbsp;[Kontinuitas — sama]&lt;/div>
&lt;div class="formula" style="margin-top:10px;">gh(∂h/∂x + Sfₓ − S₀ₓ) = 0 &amp;nbsp;&amp;nbsp;[Momentum — tanpa term inersia]&lt;/div>
&lt;div class="formula-vars">
&lt;span class="formula-var">Term inersia (∂u/∂t, u∂u/∂x) diabaikan&lt;/span>
&lt;span class="formula-var">Aliran diasumsikan berubah perlahan&lt;/span>
&lt;span class="formula-var">Cocok untuk banjir dataran rendah&lt;/span>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Gunakan DWE untuk:&lt;/strong> banjir dataran banjir/floodplain yang luas, aliran lambat (Fr &amp;lt; 0.5), banjir perkotaan gradual, analisis ketersediaan air. Ini adalah &lt;strong>pilihan default&lt;/strong> yang direkomendasikan untuk sebagian besar proyek hidrologi Indonesia.&lt;/p>
&lt;div class="info-box success">
&lt;div class="info-box-label">✅ Rekomendasi&lt;/div>
&lt;p>Mulai selalu dengan DWE. Beralih ke SWE hanya jika Anda mendapat hasil yang mencurigakan di daerah dengan aliran cepat, atau jika proyek secara eksplisit memerlukan full momentum (dam break, tidal flow).&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;hr class="divider">
&lt;!-- SECTION 4: SETUP 2D FLOW AREA -->
&lt;div class="section-heading">
&lt;div class="section-num">4&lt;/div>
&lt;h2>Langkah-langkah Setup 2D Flow Area&lt;/h2>
&lt;/div>
&lt;p>Berikut alur kerja lengkap dari membuka HEC-RAS hingga mesh siap dijalankan. Pastikan Anda sudah memiliki &lt;strong>terrain DEM yang siap&lt;/strong> (dibahas di Modul 2).&lt;/p>
&lt;div class="steps">
&lt;div class="step">
&lt;div class="step-num">1&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Buka Geometric Data Editor &amp; Buat 2D Flow Area&lt;/div>
&lt;div class="step-desc">
&lt;p>Di Main Window: &lt;strong>Edit → Geometric Data&lt;/strong>. Di toolbar kiri, klik ikon &lt;strong>"2D Flow Area"&lt;/strong> (ikon persegi dengan titik-titik). Gambar polygon yang mencakup seluruh area yang akan dimodelkan 2D — termasuk seluruh dataran banjir yang mungkin tergenang, bukan hanya area sungai.&lt;/p>
&lt;div class="info-box warning">
&lt;div class="info-box-label">⚠️ Aturan Penting&lt;/div>
&lt;p>Polygon 2D Flow Area harus &lt;strong>tertutup sempurna&lt;/strong>. Klik dua kali untuk mengakhiri penggambaran. Polygon yang tidak tertutup akan menyebabkan error saat preprocessing mesh.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="step">
&lt;div class="step-num">2&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Generate Mesh&lt;/div>
&lt;div class="step-desc">
&lt;p>Klik kanan pada polygon 2D Flow Area → &lt;strong>"Generate Computation Points in Region"&lt;/strong>. Tentukan &lt;strong>Default Cell Size&lt;/strong> (ukuran sel default dalam meter).&lt;/p>
&lt;div class="mesh-guide">
&lt;div class="mesh-card">
&lt;div class="mesh-card-size">500m&lt;/div>
&lt;div class="mesh-card-label">Area sangat luas&lt;/div>
&lt;div class="mesh-card-desc">DAS besar > 500 km², analisis regional, pra-studi&lt;/div>
&lt;/div>
&lt;div class="mesh-card">
&lt;div class="mesh-card-size">50–100m&lt;/div>
&lt;div class="mesh-card-label">Area sedang&lt;/div>
&lt;div class="mesh-card-desc">Dataran banjir 10–100 km², studi detail normal&lt;/div>
&lt;/div>
&lt;div class="mesh-card">
&lt;div class="mesh-card-size">10–30m&lt;/div>
&lt;div class="mesh-card-label">Area kecil / kota&lt;/div>
&lt;div class="mesh-card-desc">Banjir perkotaan, DEM LiDAR tersedia, analisis mikro&lt;/div>
&lt;/div>
&lt;/div>
&lt;p style="margin-top:0.5rem;">Ukuran sel tidak boleh lebih kecil dari resolusi DEM — hasilnya tidak akan lebih akurat, hanya lebih lambat.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="step">
&lt;div class="step-num">3&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Tambahkan Breaklines&lt;/div>
&lt;div class="step-desc">
&lt;p>Breaklines memastikan mesh mengikuti penghalang aliran nyata di lapangan. Ini sangat kritis untuk akurasi model:&lt;/p>
&lt;ul class="prose-list">
&lt;li>&lt;strong>Tanggul (levee):&lt;/strong> sel mesh harus mengikuti puncak tanggul agar tidak ada aliran yang "bocor" melintasi tanggul&lt;/li>
&lt;li>&lt;strong>Jalan raya / rel kereta:&lt;/strong> berfungsi sebagai hambatan aliran di perkotaan&lt;/li>
&lt;li>&lt;strong>Tepi sungai (bank):&lt;/strong> memisahkan zona dalam saluran dan dataran banjir&lt;/li>
&lt;/ul>
&lt;p>Cara menambahkan: di Geometric Data Editor → klik ikon "Breaklines" → digitasi garis di atas polygon 2D Flow Area → klik kanan pada Breakline → &lt;strong>"Enforce Breaklines on Mesh"&lt;/strong> → Regenerate mesh.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="step">
&lt;div class="step-num">4&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Refinement Regions (Opsional tapi Direkomendasikan)&lt;/div>
&lt;div class="step-desc">
&lt;p>Untuk memperhalus mesh di area kritis tanpa memperkecil semua sel: &lt;strong>Edit → 2D Flow Area → Add Refinement Region&lt;/strong>. Gambar polygon di area yang perlu sel lebih kecil (sekitar saluran utama, jembatan, area kota padat).&lt;/p>
&lt;div class="info-box">
&lt;div class="info-box-label">💡 Strategi Refinement&lt;/div>
&lt;p>Gunakan refinement secara strategis. Sel 50% lebih kecil di seluruh domain = jumlah sel 4× lebih banyak = waktu komputasi 4× lebih lama. Lebih baik: refinement hanya di 10–20% area yang paling kritis.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="step">
&lt;div class="step-num">5&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Hubungkan Terrain di RAS Mapper&lt;/div>
&lt;div class="step-desc">
&lt;p>Di &lt;strong>RAS Mapper&lt;/strong>: klik kanan pada "Terrains" → &lt;strong>"Add New Terrain"&lt;/strong> → pilih file DEM (GeoTIFF). Kemudian kembali ke Geometric Data Editor: klik kanan pada 2D Flow Area → &lt;strong>"Set Terrain"&lt;/strong>. HEC-RAS akan menghitung hydraulic property tables untuk setiap sel.&lt;/p>
&lt;div class="info-box warning">
&lt;div class="info-box-label">⚠️ Penting&lt;/div>
&lt;p>Setiap kali DEM diubah atau mesh dimodifikasi, klik kanan → &lt;strong>"Compute Cell and Face Hydraulic Properties"&lt;/strong> untuk meregenerasi tabel. Melewati langkah ini menyebabkan hasil simulasi yang salah.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="step">
&lt;div class="step-num">6&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Manning's n untuk 2D Area&lt;/div>
&lt;div class="step-desc">
&lt;p>Ada dua cara menetapkan Manning's n pada area 2D:&lt;/p>
&lt;ul class="prose-list">
&lt;li>&lt;strong>Nilai konstan per-region:&lt;/strong> klik kanan pada 2D Flow Area → "Set Manning's n" → input nilai tunggal untuk seluruh area. Sederhana tapi tidak akurat untuk variasi penggunaan lahan.&lt;/li>
&lt;li>&lt;strong>Land Cover Raster (direkomendasikan):&lt;/strong> buat raster penggunaan lahan dengan nilai n di tiap piksel → load di RAS Mapper sebagai "Land Cover" layer → assign ke geometri. Cara ini menghasilkan distribusi n yang realistis secara spasial.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;hr class="divider">
&lt;!-- SECTION 5: KONDISI BATAS 2D -->
&lt;div class="section-heading">
&lt;div class="section-num">5&lt;/div>
&lt;h2>Kondisi Batas untuk Model 2D&lt;/h2>
&lt;/div>
&lt;p>Kondisi batas (boundary conditions) pada model 2D didefinisikan di &lt;strong>tepi polygon&lt;/strong> 2D Flow Area, bukan di cross section seperti model 1D. Di Unsteady Flow Data Editor: pilih tab "Boundary Conditions".&lt;/p>
&lt;table class="file-table">
&lt;thead>
&lt;tr>
&lt;th>Tipe&lt;/th>
&lt;th>Posisi&lt;/th>
&lt;th>Data yang Dibutuhkan&lt;/th>
&lt;th>Kapan Digunakan&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Flow Hydrograph&lt;/strong>&lt;/td>
&lt;td>Tepi hulu&lt;/td>
&lt;td>Hidrograf Q(t) dari HEC-HMS&lt;/td>
&lt;td>Input debit masuk dari DAS&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Stage Hydrograph&lt;/strong>&lt;/td>
&lt;td>Hulu atau hilir&lt;/td>
&lt;td>Time-series elevasi muka air H(t)&lt;/td>
&lt;td>Jika ada data pos duga air (AWLR)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Normal Depth&lt;/strong>&lt;/td>
&lt;td>Tepi hilir&lt;/td>
&lt;td>Slope energi (S)&lt;/td>
&lt;td>Tidak ada data hilir; gunakan S₀ dasar sungai&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Rating Curve&lt;/strong>&lt;/td>
&lt;td>Tepi hilir&lt;/td>
&lt;td>Kurva Q-H observasi&lt;/td>
&lt;td>Ada data stasiun pengukuran di hilir&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Precipitation&lt;/strong>&lt;/td>
&lt;td>Seluruh domain&lt;/td>
&lt;td>Data hujan spasial (grid atau titik)&lt;/td>
&lt;td>Banjir urban — hujan langsung jatuh ke 2D area&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;div class="info-box">
&lt;div class="info-box-label">💡 Cara Menambahkan Boundary&lt;/div>
&lt;p>Di Geometric Data Editor: klik ikon "SA/2D Connection" di toolbar → pilih "Add SA/2D Area Boundary" → klik pada tepi polygon yang ingin dijadikan boundary → beri nama. Kemudian di Unsteady Flow Data Editor, boundary tersebut akan muncul untuk diisi tipe dan data-nya.&lt;/p>
&lt;/div>
&lt;hr class="divider">
&lt;!-- SECTION 6: PENGATURAN SIMULASI -->
&lt;div class="section-heading">
&lt;div class="section-num">6&lt;/div>
&lt;h2>Pengaturan Simulasi 2D: Time Step &amp; Courant&lt;/h2>
&lt;/div>
&lt;p>Kestabilan simulasi 2D sangat bergantung pada pemilihan &lt;strong>computational time step (Δt)&lt;/strong> yang tepat. Terlalu besar → tidak stabil. Terlalu kecil → lama tanpa perlu.&lt;/p>
&lt;h3>Syarat Courant&lt;/h3>
&lt;p>Syarat stabilitas numerik untuk 2D (Courant-Friedrichs-Lewy / CFL condition):&lt;/p>
&lt;div class="formula-box">
&lt;div class="formula">Cr = (V + c) · Δt / Δx ≤ 1.0&lt;/div>
&lt;div class="formula-vars">
&lt;span class="formula-var">Cr = Courant number&lt;/span>
&lt;span class="formula-var">V = kecepatan aliran (m/s)&lt;/span>
&lt;span class="formula-var">c = celeritas gelombang = √(g·h) (m/s)&lt;/span>
&lt;span class="formula-var">Δt = time step (s)&lt;/span>
&lt;span class="formula-var">Δx = ukuran sel (m)&lt;/span>
&lt;/div>
&lt;/div>
&lt;div class="courant-box">
&lt;div class="courant-title">Interpretasi Courant Number&lt;/div>
&lt;div class="courant-bar-wrap">
&lt;div class="courant-label">Ideal&lt;/div>
&lt;div class="courant-bar">&lt;div class="courant-fill fill-ideal">&lt;/div>&lt;/div>
&lt;div class="courant-val c-ideal">Cr &amp;lt; 0.5&lt;/div>
&lt;/div>
&lt;div class="courant-bar-wrap">
&lt;div class="courant-label">Masih OK&lt;/div>
&lt;div class="courant-bar">&lt;div class="courant-fill fill-warning">&lt;/div>&lt;/div>
&lt;div class="courant-val c-warning">0.5–1.0&lt;/div>
&lt;/div>
&lt;div class="courant-bar-wrap">
&lt;div class="courant-label">Tidak stabil&lt;/div>
&lt;div class="courant-bar">&lt;div class="courant-fill fill-unstable">&lt;/div>&lt;/div>
&lt;div class="courant-val c-unstable">Cr &amp;gt; 1.0&lt;/div>
&lt;/div>
&lt;/div>
&lt;h3>Adaptive Time Stepping (Direkomendasikan)&lt;/h3>
&lt;p>HEC-RAS 2D memiliki fitur &lt;strong>Adaptive Time Stepping&lt;/strong> yang secara otomatis menyesuaikan Δt berdasarkan kondisi aliran aktual — memperbesar Δt saat aliran tenang, memperkecil saat aliran berubah cepat. Aktifkan di:&lt;/p>
&lt;div class="code-block">
Run → Unsteady Flow Analysis → Options → &lt;span class="code-key">Use Adaptive Time Stepping&lt;/span>&lt;br>
&lt;span class="code-comment">Set: Max dt = 30 min, Min dt = 1 min, Target Courant = 0.8&lt;/span>
&lt;/div>
&lt;div class="param-grid">
&lt;div class="param-item">
&lt;div class="param-name">Mapping Output Interval&lt;/div>
&lt;div class="param-val">Setiap &lt;strong>15–60 menit&lt;/strong> — untuk animasi peta genangan&lt;/div>
&lt;/div>
&lt;div class="param-item">
&lt;div class="param-name">Hydrograph Output Interval&lt;/div>
&lt;div class="param-val">Setiap &lt;strong>5–15 menit&lt;/strong> — untuk hidrograf di titik kontrol&lt;/div>
&lt;/div>
&lt;div class="param-item">
&lt;div class="param-name">Pilihan Persamaan&lt;/div>
&lt;div class="param-val">Default: &lt;strong>DWE&lt;/strong>. Ganti ke SWE hanya jika perlu&lt;/div>
&lt;/div>
&lt;div class="param-item">
&lt;div class="param-name">Initial Conditions&lt;/div>
&lt;div class="param-val">Gunakan &lt;strong>Steady Flow Warmup&lt;/strong> — jalankan steady flow kecil selama 1–6 jam pertama&lt;/div>
&lt;/div>
&lt;/div>
&lt;hr class="divider">
&lt;!-- SECTION 7: HYBRID 1D-2D -->
&lt;div class="section-heading">
&lt;div class="section-num">7&lt;/div>
&lt;h2>Model Hybrid 1D–2D: Yang Terbaik dari Keduanya&lt;/h2>
&lt;/div>
&lt;p>Untuk sebagian besar proyek sungai di Indonesia, model &lt;strong>hybrid 1D-2D&lt;/strong> adalah pendekatan paling optimal: saluran sungai dimodelkan 1D (efisien), dataran banjir dimodelkan 2D (akurat).&lt;/p>
&lt;div class="compare-grid">
&lt;div class="compare-card accent-blue">
&lt;div class="compare-header">
&lt;span class="compare-icon">📏&lt;/span>
&lt;span class="compare-title">Bagian 1D — Channel&lt;/span>
&lt;/div>
&lt;ul class="compare-list">
&lt;li>Saluran utama (dalam tanggul)&lt;/li>
&lt;li>Aliran terkanalisis, 1 arah&lt;/li>
&lt;li>Data cross section dari survei&lt;/li>
&lt;li>Komputasi cepat, Manning's n kalibrasi&lt;/li>
&lt;/ul>
&lt;/div>
&lt;div class="compare-card accent-green">
&lt;div class="compare-header">
&lt;span class="compare-icon">🗺️&lt;/span>
&lt;span class="compare-title">Bagian 2D — Floodplain&lt;/span>
&lt;/div>
&lt;ul class="compare-list">
&lt;li>Dataran banjir luar tanggul&lt;/li>
&lt;li>Aliran bebas ke semua arah&lt;/li>
&lt;li>Mesh dari DEM DEMNAS/LiDAR&lt;/li>
&lt;li>Distribusi spasial depth &amp; velocity&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;h3>Cara Menghubungkan 1D ke 2D: Lateral Structure&lt;/h3>
&lt;p>Koneksi antara reach 1D dan area 2D dibuat menggunakan &lt;strong>Lateral Structure&lt;/strong> yang merepresentasikan tanggul atau embankment:&lt;/p>
&lt;div class="steps">
&lt;div class="step">
&lt;div class="step-num">1&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Buat Lateral Structure di Geometric Data Editor&lt;/div>
&lt;div class="step-desc">&lt;p>Di toolbar: ikon "Lateral Structures" → klik dan digitasi garis di atas puncak tanggul, sejajar dengan saluran 1D. Lateral structure ini bertindak sebagai weir — air meluap ke 2D area ketika muka air di saluran 1D melampaui puncak tanggul.&lt;/p>&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="step">
&lt;div class="step-num">2&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Hubungkan ke Reach 1D dan 2D Flow Area&lt;/div>
&lt;div class="step-desc">&lt;p>Double-click pada lateral structure → di editor, bagian "Connected to" → pilih reach 1D di satu sisi dan 2D Flow Area di sisi lain. Masukkan profil elevasi puncak tanggul.&lt;/p>&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="step">
&lt;div class="step-num">3&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Input Parameter Weir&lt;/div>
&lt;div class="step-desc">&lt;p>Masukkan &lt;strong>Weir Coefficient&lt;/strong> (biasanya 1.5–2.1 untuk tanggul tanah terbuka) dan &lt;strong>Weir Width&lt;/strong>. Untuk analisis jebol tanggul (levee breach), aktifkan opsi "Breach" dengan menentukan dimensi dan mekanisme breach.&lt;/p>&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="info-box success">
&lt;div class="info-box-label">✅ Keunggulan Hybrid 1D-2D&lt;/div>
&lt;p>Model hybrid memungkinkan: simulasi penelusuran banjir yang akurat di sepanjang sungai (1D), distribusi genangan realistis di dataran banjir (2D), dan analisis skenario breach tanggul — semua dalam satu model terintegrasi dengan waktu komputasi yang terjangkau.&lt;/p>
&lt;/div>
&lt;hr class="divider">
&lt;!-- SECTION 8: VISUALISASI OUTPUT -->
&lt;div class="section-heading">
&lt;div class="section-num">8&lt;/div>
&lt;h2>Visualisasi Output 2D di RAS Mapper&lt;/h2>
&lt;/div>
&lt;p>Setelah simulasi selesai, semua output 2D divisualisasikan melalui &lt;strong>RAS Mapper&lt;/strong> (View → RAS Mapper). Ini adalah bagian yang paling menarik — di sinilah peta genangan terbentuk.&lt;/p>
&lt;h3>Menampilkan Layer Output&lt;/h3>
&lt;p>Di RAS Mapper: klik kanan pada nama plan → &lt;strong>"Create All Inundation Maps"&lt;/strong>. Tunggu proses selesai, lalu tambahkan layer:&lt;/p>
&lt;table class="file-table">
&lt;thead>
&lt;tr>
&lt;th>Layer Output&lt;/th>
&lt;th>Satuan&lt;/th>
&lt;th>Kegunaan&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Depth (Kedalaman)&lt;/strong>&lt;/td>
&lt;td>m&lt;/td>
&lt;td>Peta kedalaman genangan — paling sering digunakan untuk peta bahaya banjir&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Water Surface Elevation (WSE)&lt;/strong>&lt;/td>
&lt;td>m MSL&lt;/td>
&lt;td>Elevasi muka air absolut — untuk verifikasi dengan data pengamatan AWLR&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Velocity&lt;/strong>&lt;/td>
&lt;td>m/s&lt;/td>
&lt;td>Besaran kecepatan aliran — untuk analisis erosi dan bahaya terhadap pejalan kaki/kendaraan&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Velocity Vectors&lt;/strong>&lt;/td>
&lt;td>m/s + arah&lt;/td>
&lt;td>Arah dan kecepatan aliran — untuk memahami pola pergerakan air di dataran banjir&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Arrival Time&lt;/strong>&lt;/td>
&lt;td>jam&lt;/td>
&lt;td>Waktu banjir tiba di tiap titik — kritis untuk early warning system dan evakuasi&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Max Depth / Max Velocity&lt;/strong>&lt;/td>
&lt;td>m / m/s&lt;/td>
&lt;td>Nilai maksimum selama seluruh simulasi — untuk peta bahaya banjir rencana&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3>Animasi Perambatan Banjir&lt;/h3>
&lt;p>RAS Mapper dapat menghasilkan animasi penelusuran banjir yang sangat berguna untuk presentasi dan pelaporan:&lt;/p>
&lt;div class="code-block">
RAS Mapper → &lt;span class="code-key">Layers → Animation&lt;/span>&lt;br>
&lt;span class="code-comment">→ Pilih layer (Depth / Velocity)&lt;/span>&lt;br>
&lt;span class="code-comment">→ Atur Time Range dan Playback Speed&lt;/span>&lt;br>
&lt;span class="code-comment">→ Export → Save as AVI / MP4&lt;/span>
&lt;/div>
&lt;h3>Export ke QGIS&lt;/h3>
&lt;p>Semua output RAS Mapper dapat diekspor sebagai GeoTIFF untuk kartografi profesional di QGIS:&lt;/p>
&lt;div class="steps">
&lt;div class="step">
&lt;div class="step-num">1&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Export dari RAS Mapper&lt;/div>
&lt;div class="step-desc">&lt;p>Klik kanan pada layer output (misal "Depth — Max") → &lt;strong>"Export Layer"&lt;/strong> → pilih format &lt;span class="file-ext">GeoTIFF&lt;/span> → pilih time step yang ingin diekspor (atau "Maximum" untuk nilai maksimum seluruh simulasi) → simpan.&lt;/p>&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="step">
&lt;div class="step-num">2&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Load di QGIS &amp; Buat Klasifikasi&lt;/div>
&lt;div class="step-desc">
&lt;p>Buka GeoTIFF di QGIS → Layer Properties → Symbology → Singleband pseudocolor. Klasifikasi kedalaman yang umum digunakan:&lt;/p>
&lt;table class="file-table" style="margin-top:0.5rem;">
&lt;thead>&lt;tr>&lt;th>Kedalaman&lt;/th>&lt;th>Kelas Bahaya&lt;/th>&lt;th>Warna Umum&lt;/th>&lt;/tr>&lt;/thead>
&lt;tbody>
&lt;tr>&lt;td>0 – 0.5 m&lt;/td>&lt;td>Rendah&lt;/td>&lt;td>Kuning&lt;/td>&lt;/tr>
&lt;tr>&lt;td>0.5 – 1.5 m&lt;/td>&lt;td>Sedang&lt;/td>&lt;td>Oranye&lt;/td>&lt;/tr>
&lt;tr>&lt;td>1.5 – 3.0 m&lt;/td>&lt;td>Tinggi&lt;/td>&lt;td>Merah&lt;/td>&lt;/tr>
&lt;tr>&lt;td>> 3.0 m&lt;/td>&lt;td>Sangat Tinggi&lt;/td>&lt;td>Merah Tua&lt;/td>&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="step">
&lt;div class="step-num">3&lt;/div>
&lt;div class="step-body">
&lt;div class="step-title">Overlay Data Tambahan &amp; Cetak Peta&lt;/div>
&lt;div class="step-desc">&lt;p>Tambahkan layer: batas administrasi, jalan, permukiman, fasilitas vital (RS, sekolah, kantor pemerintahan). Gunakan &lt;strong>QGIS Print Layout&lt;/strong> untuk menyusun peta lengkap dengan legenda, skala, arah utara, dan sumber data. Ekspor ke PDF atau PNG untuk laporan.&lt;/p>&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;hr class="divider">
&lt;!-- SECTION 9: TROUBLESHOOTING -->
&lt;div class="section-heading">
&lt;div class="section-num">9&lt;/div>
&lt;h2>Troubleshooting Model 2D&lt;/h2>
&lt;/div>
&lt;p>Model 2D lebih rentan terhadap ketidakstabilan numerik dibanding model 1D. Berikut masalah-masalah yang paling sering dijumpai dan cara mengatasinya:&lt;/p>
&lt;div class="trouble-row">
&lt;div class="trouble-problem">
&lt;div class="trouble-icon">❌&lt;/div>
&lt;div class="trouble-title">Simulasi crash / tidak selesai&lt;/div>
&lt;/div>
&lt;div class="trouble-solution">
&lt;div class="trouble-solution-title">Solusi&lt;/div>
&lt;div class="trouble-solution-text">Perkecil time step (aktifkan Adaptive Time Stepping). Cek apakah ada sel dengan elevasi sangat rendah atau negatif (void di DEM) — isi dengan QGIS raster fill. Cek boundary condition di hilir — normal depth terlalu kecil menyebabkan air "jatuh" mendadak.&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="trouble-row">
&lt;div class="trouble-problem">
&lt;div class="trouble-icon">❌&lt;/div>
&lt;div class="trouble-title">Courant number > 1.0 di banyak sel&lt;/div>
&lt;/div>
&lt;div class="trouble-solution">
&lt;div class="trouble-solution-title">Solusi&lt;/div>
&lt;div class="trouble-solution-text">Perkecil ukuran sel (terutama di area aliran cepat), atau perkecil Max dt pada Adaptive Time Stepping. Untuk DWE, Courant > 1 kadang masih bisa berjalan — cek apakah output masih masuk akal.&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="trouble-row">
&lt;div class="trouble-problem">
&lt;div class="trouble-icon">❌&lt;/div>
&lt;div class="trouble-title">Air "bocor" melewati tanggul padahal muka air belum melampaui puncak&lt;/div>
&lt;/div>
&lt;div class="trouble-solution">
&lt;div class="trouble-solution-title">Solusi&lt;/div>
&lt;div class="trouble-solution-text">Breakline tanggul belum di-enforce ke mesh. Klik kanan pada breakline → "Enforce on Mesh" → Regenerate mesh → Recompute hydraulic properties. Pastikan elevasi puncak breakline sudah sesuai DEM atau data survei tanggul.&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="trouble-row">
&lt;div class="trouble-problem">
&lt;div class="trouble-icon">❌&lt;/div>
&lt;div class="trouble-title">Peta genangan tidak muncul di RAS Mapper&lt;/div>
&lt;/div>
&lt;div class="trouble-solution">
&lt;div class="trouble-solution-title">Solusi&lt;/div>
&lt;div class="trouble-solution-text">Pastikan Mapping Output Interval sudah diset di Unsteady Flow Analysis Options. Klik kanan plan → "Create All Inundation Maps" setelah simulasi selesai. Pastikan terrain layer sudah di-assign di RAS Mapper sebelum membuat inundation maps.&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="trouble-row">
&lt;div class="trouble-problem">
&lt;div class="trouble-icon">❌&lt;/div>
&lt;div class="trouble-title">Hasil kedalaman tidak realistis (terlalu besar atau kecil)&lt;/div>
&lt;/div>
&lt;div class="trouble-solution">
&lt;div class="trouble-solution-title">Solusi&lt;/div>
&lt;div class="trouble-solution-text">Cek Manning's n — nilai terlalu kecil menyebabkan air mengalir terlalu cepat dan kumpulan air di hilir kurang. Cek kualitas DEM — void atau spike pada DEM menyebabkan anomali kedalaman lokal. Validasi dengan data observasi (bekas banjir, high water marks).&lt;/div>
&lt;/div>
&lt;/div>
&lt;hr class="divider">
&lt;!-- SECTION 10: TIPS OPTIMASI -->
&lt;div class="section-heading">
&lt;div class="section-num">10&lt;/div>
&lt;h2>Tips Optimasi Kinerja Model 2D&lt;/h2>
&lt;/div>
&lt;div class="cards-grid">
&lt;div class="card">
&lt;span class="card-icon">⚡&lt;/span>
&lt;div class="card-title">Gunakan DWE dulu&lt;/div>
&lt;div class="card-desc">Mulai dengan Diffusion Wave. Beralih ke SWE hanya jika hasil DWE meragukan. DWE 3–5× lebih cepat.&lt;/div>
&lt;/div>
&lt;div class="card">
&lt;span class="card-icon">🔺&lt;/span>
&lt;div class="card-title">Refinement Strategis&lt;/div>
&lt;div class="card-desc">Perhalus mesh hanya di 10–20% area paling kritis. Mesh kasar di floodplain jauh sudah cukup akurat.&lt;/div>
&lt;/div>
&lt;div class="card">
&lt;span class="card-icon">🖥️&lt;/span>
&lt;div class="card-title">Multi-core / GPU&lt;/div>
&lt;div class="card-desc">HEC-RAS 6.x mendukung komputasi paralel. Aktifkan di Options → Run Options. GPU acceleration untuk mesh > 500k sel.&lt;/div>
&lt;/div>
&lt;div class="card">
&lt;span class="card-icon">⏱️&lt;/span>
&lt;div class="card-title">Adaptive Time Step&lt;/div>
&lt;div class="card-desc">Selalu aktifkan. Menghemat waktu komputasi hingga 40% dibanding fixed time step yang konservatif.&lt;/div>
&lt;/div>
&lt;div class="card">
&lt;span class="card-icon">🗂️&lt;/span>
&lt;div class="card-title">Batasi Output Interval&lt;/div>
&lt;div class="card-desc">Output terlalu sering (setiap 1 menit untuk simulasi 5 hari) membuat file output sangat besar. Cukup 15–60 menit untuk peta.&lt;/div>
&lt;/div>
&lt;div class="card">
&lt;span class="card-icon">🌊&lt;/span>
&lt;div class="card-title">Warmup Period&lt;/div>
&lt;div class="card-desc">Jalankan steady flow awal selama 1–6 jam pertama untuk membangun kondisi awal yang stabil sebelum hidrograf puncak datang.&lt;/div>
&lt;/div>
&lt;/div>
&lt;hr class="divider">
&lt;!-- RINGKASAN -->
&lt;div class="summary-box">
&lt;div class="summary-title">📚 Ringkasan Modul 5&lt;/div>
&lt;ul class="summary-list">
&lt;li>Pilih 2D jika: aliran menyebar ke segala arah, dataran banjir luas, dam break, atau banjir perkotaan kompleks&lt;/li>
&lt;li>Konsep kunci: computational cells, cell faces, dual grid, dan hydraulic property tables&lt;/li>
&lt;li>DWE (Diffusion Wave) cocok untuk 90% kasus banjir di Indonesia — lebih cepat dan stabil dari SWE&lt;/li>
&lt;li>Alur setup: gambar polygon → generate mesh → tambah breaklines → link terrain → assign Manning's n → set boundary conditions&lt;/li>
&lt;li>Breaklines pada tanggul dan jalan sangat kritis untuk akurasi — jangan diabaikan&lt;/li>
&lt;li>Courant number ≤ 1.0 untuk stabilitas; gunakan Adaptive Time Stepping untuk efisiensi&lt;/li>
&lt;li>Model Hybrid 1D-2D (channel = 1D, floodplain = 2D) adalah pendekatan optimal untuk sistem sungai Indonesia&lt;/li>
&lt;li>Output RAS Mapper: Depth, WSE, Velocity, Arrival Time — ekspor GeoTIFF → QGIS untuk kartografi final&lt;/li>
&lt;/ul>
&lt;/div>
&lt;!-- NAVIGASI -->
&lt;a href="https://www.irpanchumaedi.com/post/materi-unsteady-flood-mapping/" class="prev-module">
&lt;div style="font-size:1.2rem;color:var(--hec-dim);">←&lt;/div>
&lt;div>
&lt;div class="prev-label">← Modul Sebelumnya&lt;/div>
&lt;div class="prev-title">Modul 4: Simulasi Banjir Unsteady &amp;amp; Flood Mapping&lt;/div>
&lt;/div>
&lt;/a>
&lt;div class="next-module" style="cursor:default;opacity:0.5;margin-top:0.75rem;">
&lt;div>
&lt;div class="next-label">Modul Berikutnya&lt;/div>
&lt;div class="next-title">🎉 Selesai! Anda telah menyelesaikan semua modul HEC-RAS&lt;/div>
&lt;/div>
&lt;div class="next-arrow">✓&lt;/div>
&lt;/div>
&lt;p class="footnote">
Referensi: HEC-RAS 2D User's Manual v6.x (USACE HEC) · Brunner, G.W. (2021). HEC-RAS 2D Modeling Guide · Chow, V.T., Maidment, D.R., Mays, L.W. (1988). Applied Hydrology · SNI 2415:2016 — Tata cara perhitungan debit banjir rencana
&lt;/p>
&lt;/div>
&lt;script>
function showTab(btn, id) {
// Deactivate all tabs
btn.closest('.tabs').querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));
btn.closest('.tabs').querySelectorAll('.tab-content').forEach(c => c.classList.remove('active'));
// Activate selected
btn.classList.add('active');
document.getElementById('tab-' + id).classList.add('active');
}
&lt;/script></description></item></channel></rss>