Belakangan ini, hujan cukup sering terjadi, sehingga menyebabkan banjir di berbagai daerah di Jakarta. Sejak kapan sih Jakarta bermasalah dengan banjir? Bagaimana menanggulangi banjir Jakarta?
—
Hujan dengan intensitas tinggi di beberapa minggu terakhir, sepertinya membuat banyak orang di Jabodetabek, khususnya Jakarta, mengalami kerugian yang cukup atau bahkan banyak banget.
Kalau kita analisa dari setiap tahunnya, saat musim hujan datang, Jakarta selalu menjadi kota yang terparah mengalami banjir. Saat musim kering, juga yang terparah mengalami kekeringan. Hmm, kenapa ya Jakarta ini kok terus-terusan bermasalah sama air? Apakah butuh avatar sang pengendali air?
Sejarah Banjir di Jakarta
Menurut hasil penelusuran tim ruangbaca, ternyata musibah banjir di Jakarta ini sudah terjadi sejak kerajaan Tarumanegara berdiri lho. Ya, kira-kira 15 abad yang lalu lah.
Sudah sejak zaman dahulu, banyak orang yang heran, kenapa masih banyak yang mau singgah dan tinggal di Jakarta. Padahal kota ini, dulunya itu sebagian besar adalah rawa-rawa, kemudian terpisah dari teluk, dan dipisahkan oleh lumpur-lumpur gosong. Jadi ya kalau lagi kemarau jadi kering, kalau musim ujan jadi banjir.
Terus nih, kamu tahu nggak kalau dulu itu, ternyata Jakarta adalah bandar tempat kapal-kapal pedagang singgah, lho. Namanya bandar Jakarta atau bandar Jayakarta, dan Ciliwung sebagai muaranya. Jadi, pada saat itu, banyak kapal-kapal pedagang dari Belanda yang singgah untuk berdagang.
Nah, salah satu pedagang asal Belanda itu mengamati, dan mengatakan kalau Jakarta memiliki penataan air yang sangat buruk. Wiih keren ya, sambil berdagang, nyambi jadi pengamat.
Meskipun sangat buruk, Jakarta tetap memiliki daya tarik yang besar. Hah? Kok bisa gitu ya? Lho iya, bahkan pada tahun 1612, berdiri gudang sekaligus kantor, dan juga pangkalan di muara Ciliwung. Tempat itu dijadikan pusat perdagangan, dan juga tempat bertemunya kapal-kapal Belanda.
Udah tau kan alasan kenapa Jakarta tetap diminati?
Jadi, ternyata selain sudah banjir sejak dulu, Jakarta juga sudah menjadi pusat bisnis. Nah karena kota ini dijadikan pusat bisnis, maka Belanda pun mulai memikirkan bagaimana caranya supaya tidak terus menerus bermasalah dengan banjir.
Baca Juga: Berbagai Langkah Mitigasi Bencana Alam di Indonesia
Cara Penanggulangan Banjir Jakarta
Belanda mulai melakukan pembangunan kota Jakarta, dengan meniru dan menggunakan pola perencanaan salah satu kota di Belanda. Dilakukanlah penggalian untuk membuat terusan-terusan yang berhubungan dengan sungai Ciliwung, yang merupakan sungai besar. Ada 2 model terusan yang dibuat. Pertama, terusan yang memotong-motong kota. Kedua, terusan yang dibuat dengan melingkungi kota.
Tujuan dari terusan pertama adalah sebagai drainase dan juga lalu lintas air. Agar saat musim hujan datang, air bisa tersebar-sebar dan secara efektif dapat mengalir ke hilirnya. Kalau tujuan terusan yang kedua, hanya sebagai pertahanan saja.
Pembuatan terusan-terusan sungai ini mengalami kendala. Air-air yang mengalir di sungai, membawa lumpur dari pegunungan, dan mengakibatkan pendangkalan. Untuk mengatasi itu, kemudian dilakukanlah pengerukan-pengerukan.
Kemudian, sekitar abad ke 17, sistem terusan-terusan yang telah dibuat, diperluas ke wilayah-wilayah di luar kota. Hal tersebut penting dilakukan karena terusan yang dibuat itu bisa mengaliri persawahan dan juga ladang tebu.
Masalah Sampah dan Lumpur
Banyak cara yang sudah dilakukan sejak dahulu, sampai dibuat terusan untuk bisa memecah debit air saat musim hujan, tapi masih aja banjir tidak terhindarkan. Ternyata, yang menjadi masalah adalah, kebiasaan orang-orang yang sejak dulu sering membuang sampahnya ke sungai.
Sejak tahun 1600-an, penduduk Batavia sudah memiliki kebiasaan buruk itu. Misalnya seperti membuang sampah rumah tangga, kotoran kuda, sampah pembungkus belanjaan, sampah-sampah jalanan, dan sampah-sampah lainnya. Semua itu dibuang dan diceburkan langsung ke sungai.
Belum lagi, masalah lumpur yang terbawa dari pegunungan, dan limbah yang berasal dari kilang-kilang gula, membuat sungai menjadi dangkal dan tercemar. Tidak rutinnya melakukan normalisasi atau pengerukan, membuat kerja-kerja pembuatan terusan itu menjadi tidak efektif lagi.
Baca Juga: Mengenal Permasalahan Sosial yang Muncul Akibat Persoalan Sampah
Pembuatan Banjir Kanal
Sejak kejayaan Tarumanegara, kemudian berganti ke pemerintahan Belanda, kemudian Inggris, kemudian Belanda lagi, banjir Jakarta masih juga belum teratasi. Akhirnya pada tahun 1911, seorang anggota dewan Kota Batavia yang bernama Ir. Hendrik Van Bareen, mengajukan proyek penataan air, yaitu banjir kanal.
Selain anggota dewan kota, Hendrik Van Bareen pernah bekerja sebagai Insinyur Sipil bagian Pengairan, Departemen Pekerjaan Kolonial. Ia juga merupakan seorang Guru Besar Sekolah Tinggi Teknik Bandung.
Tahun 1913, proyek banjir kanal mulai dijalankan. Pembuatan saluran dilakukan mulai dari pintu air Manggarai, kemudian menelusuri pinggiran-pinggiran kota bagian selatan dan barat. Kemudian, terakhir akan bermuara di Muara Karang. Bagian ini selesai di tahun 1919.
Proyek pembangunan kanal Van Bareen ini membuahkan hasil. Saat itu kira-kira penduduk Jakarta hanya sebanyak 300.000 jiwa. Akan tetapi, lambat tahun penduduk Jakarta semakin meningkat. Peningkatannya sangat pesat.
Meningkatnya jumlah penduduk ini, tidak direspon cepat oleh pemerintah kolonial. Termasuk ide dan proyek-proyek yang sudah dirancang oleh Van Breen, pun tidak ditindaklanjuti, ya termasuk kanal-kanal banjir yang melingkari Jakarta itu.
Akibatnya, sampai jumlah penduduk Jakarta yang pada tahun 1961 mencapai 3 juta jiwa, bencana banjir pun tidak bisa lagi dihindarkan. Menurut data yang ditampilkan pada databoks katadata.id, tahun 2018, penduduk Jakarta mencapai angka 10,4 juta jiwa.
Oh ya, Hendrik Van Breen ini juga yang merampungkan Bendungan Katulampa, dan membuatnya menjadi permanen lho.
—
Nah, ngomongin soal banjir yang sedang terjadi, segenap tim ruangbaca, mengucapkan turut berduka cita ya. Semoga teman-teman semua cepat pulih, dan bisa kembali beraktifitas seperti biasanya. Kamu bisa kembali bermain, bekerja, sekolah, membaca artikel ruangbaca, belajar pakai ruangbelajar, dan juga berkumpul bersama keluarga.
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta author="viewport" content="Ruangguru Tech Team">
<title>Sejarah Banjir Jakarta, dari Tarumanegara Sampai Pemerintahan Belanda</title>
<link rel="shortcut icon" href="https://cdn-web-2.ruangguru.com/homepage-web/public/assets/icons/favicon.id.ico" type="image/x-icon" />
<!-- <link rel="profile" href="https://gmpg.org/xfn/11"> -->
<link rel="pingback" href="https://www.ruangguru.com/blog/xmlrpc.php">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://www.ruangguru.com/blog/wp-content/themes/ruangguru/css/bootstrap.min.css">
<link rel="stylesheet" href="https://www.ruangguru.com/blog/wp-content/themes/ruangguru/css/style.css">
<script src="https://www.ruangguru.com/blog/wp-content/themes/ruangguru/js/jquery-3.6.3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://www.ruangguru.com/blog/wp-content/themes/ruangguru/js/bootstrap.min.js"></script>
<script src="https://www.ruangguru.com/blog/wp-content/themes/ruangguru/js/main.js"></script>
<script src="https://www.ruangguru.com/blog/wp-content/themes/ruangguru/js/side-banner.js"></script>
<!-- Google Tag Manager -->
<meta name="google-site-verification" content="VJAn1g6wmtTZPpTXh-B4xoSFEkUi5jcV74xQSr6jnOM" />
<!-- <script>
document.querySelector('meta[name="author"]').setAttribute("content", "Ruangguru Tech Team");
</script> -->
<meta name="publisher" content="PT Ruang Raya Indonesia">
<!-- Google Tag Manager -->
<script>
(function(w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(),
event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-PVNLZFT');
</script>
<!-- End Google Tag Manager -->
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
<!-- This site is optimized with the Yoast SEO plugin v25.9 - https://yoast.com/wordpress/plugins/seo/ -->
<meta name="description" content="Banjir Jakarta kembali terjadi. Sejak kapan sih Jakarta bermasalah dengan banjir? Bagaimana menanggulangi banjir Jakarta? Yuk simak sejarahnya berikut ini." />
<link rel="canonical" href="https://www.ruangguru.com/blog/sejarah-banjir-jakarta" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Sejarah Banjir Jakarta, dari Tarumanegara Sampai Pemerintahan Belanda" />
<meta property="og:description" content="Banjir Jakarta kembali terjadi. Sejak kapan sih Jakarta bermasalah dengan banjir? Bagaimana menanggulangi banjir Jakarta? Yuk simak sejarahnya berikut ini." />
<meta property="og:url" content="https://www.ruangguru.com/blog/sejarah-banjir-jakarta" />
<meta property="og:site_name" content="Belajar Gratis di Rumah Kapan Pun! | Blog Ruangguru" />
<meta property="article:publisher" content="https://www.facebook.com/ruanggurucom/" />
<meta property="article:published_time" content="2025-07-02T06:00:00+00:00" />
<meta property="article:modified_time" content="2025-07-02T09:18:43+00:00" />
<meta name="author" content="Fahri Abdillah" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:creator" content="@ruangguru" />
<meta name="twitter:site" content="@ruangguru" />
<meta name="twitter:label1" content="Written by" />
<meta name="twitter:data1" content="Fahri Abdillah" />
<meta name="twitter:label2" content="Est. reading time" />
<meta name="twitter:data2" content="4 minutes" />
<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.ruangguru.com/blog/sejarah-banjir-jakarta","url":"https://www.ruangguru.com/blog/sejarah-banjir-jakarta","name":"Sejarah Banjir Jakarta, dari Tarumanegara Sampai Pemerintahan Belanda","isPartOf":{"@id":"https://www.ruangguru.com/blog/#website"},"primaryImageOfPage":{"@id":"https://www.ruangguru.com/blog/sejarah-banjir-jakarta#primaryimage"},"image":{"@id":"https://www.ruangguru.com/blog/sejarah-banjir-jakarta#primaryimage"},"thumbnailUrl":"https://cdn-web.ruangguru.com/landing-pages/assets/hs/BLOG_FAKTA%20SERU_SEJARAH%20BANJIR%20JAKARTA_19102022_2-01.jpg","datePublished":"2025-07-02T06:00:00+00:00","dateModified":"2025-07-02T09:18:43+00:00","author":{"@id":"https://www.ruangguru.com/blog/#/schema/person/b8c1d4b9aaf040b66ebec1fc71ecbbc9"},"description":"Banjir Jakarta kembali terjadi. Sejak kapan sih Jakarta bermasalah dengan banjir? Bagaimana menanggulangi banjir Jakarta? Yuk simak sejarahnya berikut ini.","breadcrumb":{"@id":"https://www.ruangguru.com/blog/sejarah-banjir-jakarta#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.ruangguru.com/blog/sejarah-banjir-jakarta"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.ruangguru.com/blog/sejarah-banjir-jakarta#primaryimage","url":"https://cdn-web.ruangguru.com/landing-pages/assets/hs/BLOG_FAKTA%20SERU_SEJARAH%20BANJIR%20JAKARTA_19102022_2-01.jpg","contentUrl":"https://cdn-web.ruangguru.com/landing-pages/assets/hs/BLOG_FAKTA%20SERU_SEJARAH%20BANJIR%20JAKARTA_19102022_2-01.jpg"},{"@type":"BreadcrumbList","@id":"https://www.ruangguru.com/blog/sejarah-banjir-jakarta#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.ruangguru.com/blog"},{"@type":"ListItem","position":2,"name":"Sejarah Banjir Jakarta, dari Tarumanegara Sampai Pemerintahan Belanda"}]},{"@type":"WebSite","@id":"https://www.ruangguru.com/blog/#website","url":"https://www.ruangguru.com/blog/","name":"Ruangguru Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.ruangguru.com/blog/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https://www.ruangguru.com/blog/#/schema/person/b8c1d4b9aaf040b66ebec1fc71ecbbc9","name":"Fahri Abdillah","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.ruangguru.com/blog/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/?s=96&d=mm&r=g","caption":"Fahri Abdillah"},"url":"https://www.ruangguru.com/blog/author/fahri-abdillah"}]}</script>
<!-- / Yoast SEO plugin. -->
<link rel="alternate" type="application/rss+xml" title="Belajar Gratis di Rumah Kapan Pun! | Blog Ruangguru » Sejarah Banjir Jakarta, dari Tarumanegara Sampai Pemerintahan Belanda Comments Feed" href="https://www.ruangguru.com/blog/sejarah-banjir-jakarta/feed" />
<script type="text/javascript">
/* <![CDATA[ */
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.1.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.1.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.ruangguru.com\/blog\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8.1"}};
/*! This file is auto-generated */
!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\ud83d\udd25","\ud83d\udc26\u200b\ud83d\udd25")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
/* ]]> */
</script>
<style id='wp-emoji-styles-inline-css' type='text/css'>
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel='stylesheet' id='wp-block-library-css' href='https://www.ruangguru.com/blog/wp-includes/css/dist/block-library/style.min.css?ver=6.8.1' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link rel="https://api.w.org/" href="https://www.ruangguru.com/blog/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.ruangguru.com/blog/wp-json/wp/v2/posts/1258" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.ruangguru.com/blog/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 6.8.1" />
<link rel='shortlink' href='https://www.ruangguru.com/blog/?p=1258' />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.ruangguru.com/blog/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.ruangguru.com%2Fblog%2Fsejarah-banjir-jakarta" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.ruangguru.com/blog/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.ruangguru.com%2Fblog%2Fsejarah-banjir-jakarta&format=xml" />
</head>
<body class="wp-singular post-template-default single single-post postid-1258 single-format-standard wp-theme-ruangguru">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M28L4XJ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<header class="header">
<div class="container">
<nav class="navbar navbar-expand-lg header-inner">
<div style="display:flex; gap:12px;">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<img alt="menu" src="https://cdn-web-2.ruangguru.com/file-uploader/lp/beba4a70-3971-41be-9364-f9ee6857b192.svg" loading="lazy" width="30px" height="32px" />
</button>
<a href="https://ruangguru.com" class="header-logo">
<img loading="lazy" src="https://cdn-web-2.ruangguru.com/static/logo-ruangguru.png" alt="Logo">
</a>
</div>
<form class="form-inline my-2 my-lg-0" role="search" method="get" id="searchformmobile" class="searchform" action="https://www.ruangguru.com/blog/">
<div>
<label class="screen-reader-text" for="s">Search for:</label>
<div class="input-group input-group-sm">
<span class="input-group-text" id="search-2"><img width="20px" height="20px" loading="lazy" src="https://cdn-web-2.ruangguru.com/file-uploader/lp/baf38d7b-226b-4374-8b2b-e49766395871.png" alt="" /></span>
<input type="text" value="" name="s" class="form-control" placeholder="Cari artikel di sini!" aria-label="Cari artikel di sini!" aria-describedby="Cari artikel di sini!">
</div>
</div>
</form>
<div class="collapse navbar-collapse dropdown-hover-all" id="navbarSupportedContent">
<div class="d-lg-none navbar-head-collapse">
<a href="https://ruangguru.com" class="header-logo">
<img loading="lazy" src="https://cdn-web-2.ruangguru.com/static/logo-ruangguru.png" alt="Logo">
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
X
</button>
</div>
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="https://www.ruangguru.com/blog/">Blog</a>
</li>
<li class="nav-item
dropdown dropdown-hover">
<p class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Konsep & Tips Pelajaran </p>
<div class="dropdown-menu" aria-labelledby="nav1">
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu0" href="https://www.ruangguru.com/blog/c/bahasa-indonesia" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Bahasa Indonesia</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu0">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-indonesia/bahasa-indonesia-sd-kelas-4">Kelas 4</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-indonesia/bahasa-indonesia-sd-kelas-5">Kelas 5</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-indonesia/bahasa-indonesia-sd-kelas-6">Kelas 6</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-indonesia/bahasa-indonesia-smp-kelas-7">Kelas 7</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-indonesia/bahasa-indonesia-smp-kelas-8">Kelas 8</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-indonesia/bahasa-indonesia-smp-kelas-9">Kelas 9</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-indonesia/bahasa-indonesia-sma-kelas-10">Kelas 10</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-indonesia/bahasa-indonesia-sma-kelas-11">Kelas 11</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-indonesia/bahasa-indonesia-sma-kelas-12">Kelas 12</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu1" href="https://www.ruangguru.com/blog/c/bahasa-inggris" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Bahasa Inggris</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu1">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-inggris/bahasa-inggris-sd-kelas-6">Kelas 6</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-inggris/bahasa-inggris-smp-kelas-7">Kelas 7</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-inggris/bahasa-inggris-smp-kelas-8">Kelas 8</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-inggris/bahasa-inggris-smp-kelas-9">Kelas 9</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-inggris/bahasa-inggris-sma-kelas-10">Kelas 10</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-inggris/bahasa-inggris-sma-kelas-11">Kelas 11</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/bahasa-inggris/bahasa-inggris-sma-kelas-12">Kelas 12</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu2" href="https://www.ruangguru.com/blog/c/biologi" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Biologi</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu2">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/biologi/biologi-smp-kelas-7">Kelas 7</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/biologi/biologi-smp-kelas-8">Kelas 8</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/biologi/biologi-smp-kelas-9">Kelas 9</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/biologi/biologi-sma-kelas-10">Kelas 10</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/biologi/biologi-sma-kelas-11">Kelas 11</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/biologi/biologi-sma-kelas-12">Kelas 12</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu3" href="https://www.ruangguru.com/blog/c/ekonomi" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Ekonomi</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu3">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ekonomi/ekonomi-smp-kelas-7">Kelas 7</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ekonomi/ekonomi-smp-kelas-8">Kelas 8</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ekonomi/ekonomi-smp-kelas-9">Kelas 9</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ekonomi/ekonomi-sma-kelas-10">Kelas 10</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ekonomi/ekonomi-sma-kelas-11">Kelas 11</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ekonomi/ekonomi-sma-kelas-12">Kelas 12</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu4" href="https://www.ruangguru.com/blog/c/fisika" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Fisika</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu4">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/fisika/fisika-smp-kelas-7">Kelas 7</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/fisika/fisika-smp-kelas-8">Kelas 8</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/fisika/fisika-smp-kelas-9">Kelas 9</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/fisika/fisika-sma-kelas-10">Kelas 10</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/fisika/fisika-sma-kelas-11">Kelas 11</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/fisika/fisika-sma-kelas-12">Kelas 12</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu5" href="https://www.ruangguru.com/blog/c/geografi" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Geografi</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu5">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/geografi/geografi-smp-kelas-7">Kelas 7</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/geografi/geografi-smp-kelas-8">Kelas 8</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/geografi/geografi-smp-kelas-9">Kelas 9</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/geografi/geografi-sma-kelas-10">Kelas 10</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/geografi/geografi-sma-kelas-11">Kelas 11</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/geografi/geografi-sma-kelas-12">Kelas 12</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu6" href="https://www.ruangguru.com/blog/c/ipa-terpadu" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">IPA Terpadu</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu6">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ipa-terpadu/ipa-terpadu-sd-kelas-4">Kelas 4</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ipa-terpadu/ipa-terpadu-sd-kelas-5">Kelas 5</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ipa-terpadu/ipa-terpadu-sd-kelas-6">Kelas 6</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu7" href="https://www.ruangguru.com/blog/c/ips-terpadu" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">IPS Terpadu</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu7">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ips-terpadu/ips-terpadu-sd-kelas-4">Kelas 4</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ips-terpadu/ips-terpadu-sd-kelas-5">Kelas 5</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/ips-terpadu/ips-terpadu-sd-kelas-6">Kelas 6</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu8" href="https://www.ruangguru.com/blog/c/kimia" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Kimia</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu8">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/kimia/kimia-sma-kelas-10">Kelas 10</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/kimia/kimia-sma-kelas-11">Kelas 11</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/kimia/kimia-sma-kelas-12">Kelas 12</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu9" href="https://www.ruangguru.com/blog/c/matematika" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Matematika</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu9">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/matematika/matematika-sd-kelas-4">Kelas 4</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/matematika/matematika-sd-kelas-5">Kelas 5</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/matematika/matematika-sd-kelas-6">Kelas 6</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/matematika/matematika-smp-kelas-7">Kelas 7</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/matematika/matematika-smp-kelas-8">Kelas 8</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/matematika/matematika-smp-kelas-9">Kelas 9</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/matematika/matematika-sma-kelas-10">Kelas 10</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/matematika/matematika-sma-kelas-11">Kelas 11</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/matematika/matematika-sma-kelas-12">Kelas 12</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu10" href="https://www.ruangguru.com/blog/c/sejarah" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Sejarah</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu10">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sejarah/sejarah-smp-kelas-7">Kelas 7</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sejarah/sejarah-smp-kelas-8">Kelas 8</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sejarah/sejarah-smp-kelas-9">Kelas 9</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sejarah/sejarah-sma-kelas-10">Kelas 10</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sejarah/sejarah-sma-kelas-11">Kelas 11</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sejarah/sejarah-sma-kelas-12">Kelas 12</a>
</div>
</div>
<div class="dropdown dropend">
<a class="dropdown-item dropdown-toggle" id="nav1-menu11" href="https://www.ruangguru.com/blog/c/sosiologi" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Sosiologi</a>
<div class="dropdown-menu" aria-labelledby="nav1-menu11">
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sosiologi/sosiologi-smp-kelas-7">Kelas 7</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sosiologi/sosiologi-smp-kelas-8">Kelas 8</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sosiologi/sosiologi-smp-kelas-9">Kelas 9</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sosiologi/sosiologi-sma-kelas-10">Kelas 10</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sosiologi/sosiologi-sma-kelas-11">Kelas 11</a>
<a class="dropdown-item" href="https://www.ruangguru.com/blog/c/sosiologi/sosiologi-sma-kelas-12">Kelas 12</a>
</div>
</div>
</div>
</li>
<li class="nav-item
dropdown dropdown-hover">
<p class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Latihan Soal </p>
<div class="dropdown-menu" aria-labelledby="nav2">
<a class="dropdown-item" id="nav2-menu0" href="https://www.ruangguru.com/blog/c/latihan-soal/sd-kelas-4">Latihan Soal Kelas 4</a>
<a class="dropdown-item" id="nav2-menu1" href="https://www.ruangguru.com/blog/c/latihan-soal/sd-kelas-5">Latihan Soal Kelas 5</a>
<a class="dropdown-item" id="nav2-menu2" href="https://www.ruangguru.com/blog/c/latihan-soal/sd-kelas-6">Latihan Soal Kelas 6</a>
<a class="dropdown-item" id="nav2-menu3" href="https://www.ruangguru.com/blog/c/latihan-soal/smp-kelas-7">Latihan Soal Kelas 7</a>
<a class="dropdown-item" id="nav2-menu4" href="https://www.ruangguru.com/blog/c/latihan-soal/smp-kelas-8">Latihan Soal Kelas 8</a>
<a class="dropdown-item" id="nav2-menu5" href="https://www.ruangguru.com/blog/c/latihan-soal/smp-kelas-9">Latihan Soal Kelas 9</a>
<a class="dropdown-item" id="nav2-menu6" href="https://www.ruangguru.com/blog/c/latihan-soal/sma-kelas-10">Latihan Soal Kelas 10</a>
<a class="dropdown-item" id="nav2-menu7" href="https://www.ruangguru.com/blog/c/latihan-soal/sma-kelas-11">Latihan Soal Kelas 11</a>
<a class="dropdown-item" id="nav2-menu8" href="https://www.ruangguru.com/blog/c/latihan-soal/sma-kelas-12">Latihan Soal Kelas 12</a>
</div>
</li>
<li class="nav-item
dropdown dropdown-hover">
<p class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Pojok Kampus </p>
<div class="dropdown-menu" aria-labelledby="nav3">
<a class="dropdown-item" id="nav3-menu0" href="https://www.ruangguru.com/blog/c/info-beasiswa">Info Beasiswa</a>
<a class="dropdown-item" id="nav3-menu1" href="https://www.ruangguru.com/blog/c/kampus-dan-jurusan">Kampus dan Jurusan</a>
<a class="dropdown-item" id="nav3-menu2" href="https://www.ruangguru.com/blog/c/seleksi-masuk">Seleksi Masuk</a>
</div>
</li>
<li class="nav-item
">
<a class="nav-link
" href=" https://www.ruangguru.com/blog/c/fakta-seru" id="nav4"
>
Fakta Seru </a>
</li>
<li class="nav-item
dropdown dropdown-hover">
<p class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dunia Kata </p>
<div class="dropdown-menu" aria-labelledby="nav5">
<a class="dropdown-item" id="nav5-menu0" href="https://www.ruangguru.com/blog/tag/cerpen">Cerpen</a>
<a class="dropdown-item" id="nav5-menu1" href="https://www.ruangguru.com/blog/tag/resensi-buku">Resensi Buku</a>
</div>
</li>
<li class="nav-item
">
<a class="nav-link
" href=" https://www.ruangguru.com/blog/tag/for-kids" id="nav6"
>
For Kids </a>
</li>
<li class="nav-item
dropdown dropdown-hover">
<p class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Seputar Ruangguru </p>
<div class="dropdown-menu" aria-labelledby="nav7">
<a class="dropdown-item" id="nav7-menu0" href="https://www.ruangguru.com/blog/tag/info-ruangguru">Info Ruangguru</a>
<a class="dropdown-item" id="nav7-menu1" href="https://www.ruangguru.com/blog/tag/siaran-pers">Siaran Pers</a>
<a class="dropdown-item" id="nav7-menu2" href="https://www.ruangguru.com/blog/tag/cerita-juara">Cerita Juara</a>
<a class="dropdown-item" id="nav7-menu3" href="https://www.ruangguru.com/blog/tag/seputar-guru">Seputar Guru</a>
<a class="dropdown-item" id="nav7-menu4" href="https://www.ruangguru.com/blog/tag/lifeatruangguru">Life at Ruangguru</a>
</div>
</li>
</ul>
<form class="form-inline my-2 my-lg-0" role="search" method="get" id="searchform" class="searchform" action="https://www.ruangguru.com/blog/">
<div>
<label class="screen-reader-text" for="s">Search for:</label>
<div class="input-group input-group-sm">
<span class="input-group-text" id="search-2"><img width="10" height="10" loading="lazy" src="https://cdn-web-2.ruangguru.com/file-uploader/lp/baf38d7b-226b-4374-8b2b-e49766395871.png" alt="" /></span>
<input type="text" value="" name="s" class="form-control" placeholder="Cari artikel di sini!" aria-label="Cari artikel di sini!" aria-describedby="Cari artikel di sini!">
</div>
</div>
</form>
</div>
</nav>
<script>
(function($bs) {
const CLASS_NAME = 'has-child-dropdown-show';
$bs.Dropdown.prototype.toggle = function(_orginal) {
return function() {
document.querySelectorAll('.' + CLASS_NAME).forEach(function(e) {
e.classList.remove(CLASS_NAME);
});
let dd = this._element.closest('.dropdown').parentNode.closest('.dropdown');
for (; dd && dd !== document; dd = dd.parentNode.closest('.dropdown')) {
dd.classList.add(CLASS_NAME);
}
return _orginal.call(this);
}
}($bs.Dropdown.prototype.toggle);
document.querySelectorAll('.dropdown').forEach(function(dd) {
dd.addEventListener('hide.bs.dropdown', function(e) {
if (this.classList.contains(CLASS_NAME)) {
this.classList.remove(CLASS_NAME);
e.preventDefault();
}
e.stopPropagation(); // do not need pop in multi level mode
});
});
// for hover
document.querySelectorAll('.dropdown-hover, .dropdown-hover-all .dropdown').forEach(function(dd) {
dd.addEventListener('mouseenter', function(e) {
let toggle = e.target.querySelector(':scope>[data-bs-toggle="dropdown"]');
if (!toggle.classList.contains('show')) {
$bs.Dropdown.getOrCreateInstance(toggle).toggle();
dd.classList.add(CLASS_NAME);
$bs.Dropdown.clearMenus(e);
}
});
dd.addEventListener('mouseleave', function(e) {
let toggle = e.target.querySelector(':scope>[data-bs-toggle="dropdown"]');
if (toggle.classList.contains('show')) {
$bs.Dropdown.getOrCreateInstance(toggle).toggle();
}
});
});
})(bootstrap);
$(document).ready(() => {
if ($(window).width() > 991) {
$("a[data-bs-toggle='dropdown']").click(function() {
window.location = $(this).attr('href');
});
}
})
</script>
</div>
</header>
<div class="main-content">
<div class="side-banner-mobile">
</div>
<div class="glider-navigation mobile">
<div role="tablist" class="dots" id="side-banner-mobile-dots"></div>
<div class="glider-button-navigation">
<button aria-label="Previous" class="glider-prev" id="side-banner-mobile-prev"><img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/412de767-9fab-4a4e-9a21-09b7ac9c5f96.png"></button>
<button aria-label="Next" class="glider-next" id="side-banner-mobile-next">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/754b0134-4f20-4cdd-af8c-d5918044d734.png">
</button>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-8 post">
<div class="content">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<!-- Home Link -->
<li class="breadcrumb-item"><a href="https://www.ruangguru.com/blog">Home</a></li>
<!-- Categories -->
<li class="breadcrumb-item"><a href="https://www.ruangguru.com/blog/c/fakta-seru">Fakta Seru</a></li> </ol>
</nav>
<h1 class="content-title">
Sejarah Banjir Jakarta, dari Tarumanegara Sampai Pemerintahan Belanda </h1>
<div class="content-meta">
<p class="content-author"><a href="https://www.ruangguru.com/blog/author/fahri-abdillah" class="">Fahri Abdillah</a> </p>
<p class="content-info"><span>July 2, 2025 • </span> <span>5 minutes read</span></p>
<br />
</div>
<div class="content-body">
<p><img decoding="async" class="aligncenter" style="height: auto; max-width: 100%; width: 821px;" src="https://cdn-web.ruangguru.com/landing-pages/assets/hs/BLOG_FAKTA%20SERU_SEJARAH%20BANJIR%20JAKARTA_19102022_2-01.jpg" alt="Sejarah banjir Jakarta" width="820" /></p>
<blockquote>
<p style="text-align: center;"><em>Belakangan ini, hujan cukup sering terjadi, sehingga menyebabkan banjir di berbagai daerah di Jakarta. Sejak kapan sih Jakarta bermasalah dengan banjir? Bagaimana menanggulangi banjir Jakarta?</em></p>
</blockquote>
<p style="text-align: center;">—</p>
<p> </p>
<p style="text-align: justify;">Hujan dengan intensitas tinggi di beberapa minggu terakhir, sepertinya membuat banyak orang di Jabodetabek, khususnya Jakarta, mengalami kerugian yang cukup atau bahkan banyak banget.</p>
<p style="text-align: justify;">Kalau kita analisa dari setiap tahunnya, saat musim hujan datang, Jakarta selalu menjadi kota yang terparah mengalami banjir. Saat musim kering, juga yang terparah mengalami kekeringan. Hmm, kenapa ya Jakarta ini kok terus-terusan bermasalah sama air? Apakah butuh avatar sang pengendali air?</p>
<p> </p>
<h2><span style="font-size: 18pt;">Sejarah Banjir di Jakarta</span></h2>
<p style="text-align: justify;">Menurut hasil penelusuran tim <strong><a href="https://www.ruangguru.com/blog/">ruangbaca</a></strong>, ternyata musibah banjir di Jakarta ini sudah terjadi sejak <strong>kerajaan Tarumanegara berdiri</strong> lho. Ya, kira-kira 15 abad yang lalu lah.</p>
<p style="text-align: justify;">Sudah sejak zaman dahulu, banyak orang yang heran, kenapa masih banyak yang mau singgah dan tinggal di Jakarta. Padahal kota ini, dulunya itu sebagian besar adalah <strong>rawa-rawa</strong>, kemudian <strong>terpisah dari teluk, dan dipisahkan oleh lumpur-lumpur gosong</strong>. Jadi ya kalau lagi kemarau jadi kering, kalau musim ujan jadi banjir.</p>
<p style="text-align: justify;">Terus nih, kamu tahu nggak kalau dulu itu, ternyata Jakarta adalah <strong>bandar tempat kapal-kapal pedagang singgah</strong>, <em>lho</em>. Namanya bandar Jakarta atau bandar Jayakarta, dan Ciliwung sebagai muaranya. Jadi, pada saat itu, banyak kapal-kapal pedagang dari Belanda yang singgah untuk berdagang.</p>
<p style="text-align: justify;">Nah, salah satu pedagang asal Belanda itu mengamati, dan mengatakan kalau Jakarta memiliki penataan air yang sangat buruk. Wiih keren ya, sambil berdagang, <em>nyambi</em> jadi pengamat.</p>
<p style="text-align: justify;">Meskipun sangat buruk, Jakarta tetap memiliki daya tarik yang besar. Hah? Kok bisa gitu ya? Lho iya, bahkan pada tahun 1612, berdiri gudang sekaligus kantor, dan juga pangkalan di muara Ciliwung. Tempat itu dijadikan pusat perdagangan, dan juga tempat bertemunya kapal-kapal Belanda.</p>
<p><img decoding="async" style="height: auto; max-width: 100%; width: 600px; margin-left: auto; margin-right: auto; display: block;" src="https://cdn-web.ruangguru.com/landing-pages/assets/hs/BLOG_FAKTA%20SERU_SEJARAH%20BANJIR%20JAKARTA_19102022_2-03.jpg" alt="Banjir Jakarta" width="600" /></p>
<p> </p>
<p style="text-align: justify;">Udah tau kan alasan kenapa Jakarta tetap diminati?</p>
<p style="text-align: justify;">Jadi, ternyata selain sudah banjir sejak dulu, Jakarta juga sudah menjadi pusat bisnis. Nah karena kota ini dijadikan pusat bisnis, maka Belanda pun mulai memikirkan bagaimana caranya supaya tidak terus menerus bermasalah dengan banjir.</p>
<p><strong>Baca Juga: <a href="/blog/mitigasi-bencana-alam-di-indonesia" rel="noopener">Berbagai Langkah Mitigasi Bencana Alam di Indonesia</a></strong></p>
<p> </p>
<h2><span style="font-size: 18pt;">Cara Penanggulangan Banjir Jakarta</span></h2>
<p style="text-align: justify;">Belanda mulai melakukan pembangunan kota Jakarta, dengan meniru dan menggunakan <strong>pola perencanaan salah satu kota di Belanda</strong>. Dilakukanlah penggalian untuk <strong>membuat terusan-terusan yang berhubungan dengan sungai Ciliwung</strong>, yang merupakan sungai besar. Ada 2 model terusan yang dibuat. Pertama, terusan yang memotong-motong kota. Kedua, terusan yang dibuat dengan melingkungi kota.</p>
<p style="text-align: justify;">Tujuan dari terusan pertama adalah <strong>sebagai <em>drainase</em> dan juga lalu lintas air</strong>. Agar saat musim hujan datang, air bisa tersebar-sebar dan secara efektif dapat mengalir ke hilirnya. Kalau tujuan terusan yang kedua, hanya sebagai pertahanan saja.</p>
<p style="text-align: justify;">Pembuatan terusan-terusan sungai ini mengalami kendala. Air-air yang mengalir di sungai, membawa lumpur dari pegunungan, dan mengakibatkan pendangkalan. Untuk mengatasi itu, kemudian dilakukanlah pengerukan-pengerukan.</p>
<p style="text-align: justify;">Kemudian, sekitar abad ke 17, sistem terusan-terusan yang telah dibuat, diperluas ke wilayah-wilayah di luar kota. Hal tersebut penting dilakukan karena terusan yang dibuat itu bisa mengaliri persawahan dan juga ladang tebu.</p>
<p> </p>
<h2><span style="font-size: 18pt;">Masalah Sampah dan Lumpur</span></h2>
<p style="text-align: justify;">Banyak cara yang sudah dilakukan sejak dahulu, sampai dibuat terusan untuk bisa memecah debit air saat musim hujan, tapi masih aja banjir tidak terhindarkan. Ternyata, yang menjadi masalah adalah, kebiasaan orang-orang yang sejak dulu sering membuang sampahnya ke sungai.</p>
<p style="text-align: justify;">Sejak tahun 1600-an, penduduk Batavia sudah memiliki kebiasaan buruk itu. Misalnya seperti membuang sampah rumah tangga, kotoran kuda, sampah pembungkus belanjaan, sampah-sampah jalanan, dan sampah-sampah lainnya. Semua itu dibuang dan diceburkan langsung ke sungai.</p>
<p style="text-align: justify;">Belum lagi, masalah lumpur yang terbawa dari pegunungan, dan limbah yang berasal dari kilang-kilang gula, membuat sungai menjadi dangkal dan tercemar. Tidak rutinnya melakukan normalisasi atau pengerukan, membuat kerja-kerja pembuatan terusan itu menjadi tidak efektif lagi.</p>
<p><strong>Baca Juga: <a href="/blog/sosiologi-kelas-11-mengenal-permasalahan-sosial-akibat-persoalan-sampah" rel="noopener">Mengenal Permasalahan Sosial yang Muncul Akibat Persoalan Sampah</a></strong></p>
<p><img fetchpriority="high" decoding="async" style="height: auto; max-width: 100%; width: 600px; margin-left: auto; margin-right: auto; display: block;" src="https://cdn-web.ruangguru.com/landing-pages/assets/hs/BLOG_FAKTA%20SERU_SEJARAH%20BANJIR%20JAKARTA_19102022_2-05.jpg" alt="Penyebab banjir Jakarta" width="600" height="440" /></p>
<p> </p>
<h2><span style="font-size: 18pt;">Pembuatan Banjir Kanal</span></h2>
<p style="text-align: justify;">Sejak kejayaan Tarumanegara, kemudian berganti ke pemerintahan Belanda, kemudian Inggris, kemudian Belanda lagi, banjir Jakarta masih juga belum teratasi. Akhirnya pada tahun 1911, seorang anggota dewan Kota Batavia yang bernama Ir. Hendrik Van Bareen, mengajukan proyek penataan air, yaitu banjir kanal.</p>
<p style="text-align: justify;">Selain anggota dewan kota, Hendrik Van Bareen pernah bekerja sebagai Insinyur Sipil bagian Pengairan, Departemen Pekerjaan Kolonial. Ia juga merupakan seorang Guru Besar Sekolah Tinggi Teknik Bandung.</p>
<p style="text-align: justify;"><strong>Tahun 1913, proyek banjir kanal mulai dijalankan</strong>. Pembuatan saluran dilakukan mulai dari pintu air Manggarai, kemudian menelusuri pinggiran-pinggiran kota bagian selatan dan barat. Kemudian, terakhir akan bermuara di Muara Karang. Bagian ini selesai di tahun 1919.</p>
<p style="text-align: justify;">Proyek pembangunan kanal Van Bareen ini membuahkan hasil. Saat itu kira-kira penduduk Jakarta hanya sebanyak 300.000 jiwa. Akan tetapi, lambat tahun penduduk Jakarta semakin meningkat. Peningkatannya sangat pesat.</p>
<p style="text-align: justify;">Meningkatnya jumlah penduduk ini, tidak direspon cepat oleh pemerintah kolonial. Termasuk ide dan proyek-proyek yang sudah dirancang oleh Van Breen, pun tidak ditindaklanjuti, ya termasuk kanal-kanal banjir yang melingkari Jakarta itu.</p>
<p style="text-align: justify;">Akibatnya, sampai jumlah penduduk Jakarta yang pada tahun 1961 mencapai 3 juta jiwa, bencana banjir pun tidak bisa lagi dihindarkan. Menurut data yang ditampilkan pada databoks katadata.id, tahun 2018, penduduk Jakarta mencapai angka 10,4 juta jiwa.</p>
<p style="text-align: justify;">Oh ya, Hendrik Van Breen ini juga yang merampungkan <strong>Bendungan Katulampa</strong>, dan membuatnya menjadi permanen <em>lho</em>.</p>
<p style="text-align: center;">—</p>
<p style="text-align: justify;">Nah, ngomongin soal banjir yang sedang terjadi, segenap tim ruangbaca, mengucapkan turut berduka cita ya. Semoga teman-teman semua cepat pulih, dan bisa kembali beraktifitas seperti biasanya. Kamu bisa kembali bermain, bekerja, sekolah, membaca artikel ruangbaca, belajar pakai <strong><a href="https://www.ruangguru.com/ruangbelajar" target="_blank" rel="noopener">ruangbelajar</a></strong>, dan juga berkumpul bersama keluarga.</p>
<p><a href="https://app.ruangguru.com/ruangbelajar/"><img decoding="async" class="aligncenter size-medium" src="https://cdn-web-2.ruangguru.com/landing-pages/assets/3e02f634-69b5-45d6-b167-3d364ef53000.jpg" alt="CTA ruangbelajar" width="820" /></a></p>
</div>
<div class="content-meta-tags">
<a href="https://www.ruangguru.com/blog/tag/fakta-seru" rel="tag">Fakta Seru</a> </div>
</div>
<div class="author-post">
<img loading="lazy" class="author-avatar" width="64px" height="64px" src="https://cdn-web-2.ruangguru.com/file-uploader/lp/5196bc4b-168b-4b6f-8c46-cb076ca8b451.png">
<div>
<h5 class="author-title">Fahri Abdillah</h5>
<p class="author-description"></p>
</div>
</div> <div class="share-post">
<p>Bagikan artikel ini:</p>
<ul class="socmed">
<li>
<a target="_blank" href="https://api.whatsapp.com/send?phone=&text=Sejarah Banjir Jakarta, dari Tarumanegara Sampai Pemerintahan Belanda%0D%0A%0D%0Ahttps://www.ruangguru.com/blog/sejarah-banjir-jakarta"><img src="https://cdn-web-2.ruangguru.com/static/whatsapp.png" loading="lazy" alt="Logo Whatsapp " /></a>
</li>
<li>
<a target="_blank" href="https://www.facebook.com/share.php?u=https://www.ruangguru.com/blog/sejarah-banjir-jakarta&quote=Sejarah Banjir Jakarta, dari Tarumanegara Sampai Pemerintahan Belanda"> <img src="https://cdn-web-2.ruangguru.com/static/facebook.png" loading="lazy" alt="Logo Facebook " /> </a>
</li>
<li>
<a target="_blank" href="https://twitter.com/intent/tweet?text=Sejarah Banjir Jakarta, dari Tarumanegara Sampai Pemerintahan Belanda&url=https://www.ruangguru.com/blog/sejarah-banjir-jakarta"> <img src="https://cdn-web-2.ruangguru.com/static/twitter.png" loading="lazy" alt="Logo Twitter " /> </a>
</li>
<li>
<a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.ruangguru.com/blog/sejarah-banjir-jakarta&title=Sejarah Banjir Jakarta, dari Tarumanegara Sampai Pemerintahan Belanda"><img src="https://cdn-web-2.ruangguru.com/static/linkedin.png" loading="lazy" alt="Logo LinkedIn " /></a>
</li>
</ul>
</div>
</div>
<div class="col-md-4 sticky">
<aside id="sidebar">
<div class="side-banner-desktop">
</div>
<div class="glider-navigation desktop">
<div role="tablist" class="dots" id="side-banner-dots"></div>
<div class="glider-button-navigation">
<button aria-label="Previous" class="glider-prev" id="side-banner-prev"><img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/412de767-9fab-4a4e-9a21-09b7ac9c5f96.png"></button>
<button aria-label="Next" class="glider-next" id="side-banner-next">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/754b0134-4f20-4cdd-af8c-d5918044d734.png">
</button>
</div>
</div>
<h2 style="font-size: 24px; font-weight: bold; margin-bottom: 16px;margin-top: 16px;">Artikel Terbaru</h2>
<ul>
<li>
<a href="https://www.ruangguru.com/blog/pergerakan-nasional-indonesia">
<img loading="lazy" src="https://cdn-web-2.ruangguru.com//landing-pages/assets/dd9f819a-e3e7-4992-b8c7-3ce436bb27f8.png" alt="Pergerakan Nasional" class="external-img wp-post-image " /> <span>Pergerakan Nasional Indonesia: Pengertian, Tujuan & Penyebabnya | Sejarah Kelas 11</span>
</a>
</li>
<li>
<a href="https://www.ruangguru.com/blog/runtuhnya-uni-soviet">
<img loading="lazy" src="https://cdn-web-2.ruangguru.com//landing-pages/assets/b9f1448f-d581-42c3-bf06-6300fdbcd7c8.png" alt="Runtuhnya Uni Soviet" class="external-img wp-post-image " /> <span>Sejarah Runtuhnya Uni Soviet, Penyebab, dan Dampaknya | Sejarah Kelas 12</span>
</a>
</li>
<li>
<a href="https://www.ruangguru.com/blog/konflik-palestina-israel">
<img loading="lazy" src="https://cdn-web-2.ruangguru.com//landing-pages/assets/724ad604-4b78-4c7c-9d4b-627165954c4a.png" class="external-img wp-post-image " /> <span>Latar Belakang Terjadinya Konflik Palestina dengan Israel | Sejarah Kelas 12</span>
</a>
</li>
<li>
<a href="https://www.ruangguru.com/blog/9-lembaga-dan-pelaku-pasar-modal-di-indonesia">
<img loading="lazy" src="https://cdn-web-2.ruangguru.com//landing-pages/assets/279825ac-672b-43f9-b66e-a1c7ec87f784.png" alt="Pelaku Pasar Modal di Indonesia" class="external-img wp-post-image " /> <span>9 Lembaga dan Pelaku Pasar Modal di Indonesia | Ekonomi Kelas 10</span>
</a>
</li>
<li>
<a href="https://www.ruangguru.com/blog/peristiwa-kontemporer-dunia-perpecahan-cekoslovakia">
<img loading="lazy" src="https://cdn-web-2.ruangguru.com//landing-pages/assets/2a1a35c0-f1f5-45d4-8869-ff5083bd90e5.png" alt="Perpecahan Cekoslowakia" class="external-img wp-post-image " /> <span>Latar Belakang Perpecahan Cekoslowakia dan Penyebabnya | Sejarah Kelas 12</span>
</a>
</li>
</ul>
</aside>
</div>
</div>
<div class="row">
<div class="col-12">
<section class="related-posts">
<h2 class="page-title">
Artikel Lainnya
</h2>
<div class="content-grid">
<div class="content">
<a href="https://www.ruangguru.com/blog/pergerakan-nasional-indonesia">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com//landing-pages/assets/dd9f819a-e3e7-4992-b8c7-3ce436bb27f8.png?height=320&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com//landing-pages/assets/dd9f819a-e3e7-4992-b8c7-3ce436bb27f8.png?height=320" type="image/png">
<img src="https://cdn-web-2.ruangguru.com//landing-pages/assets/dd9f819a-e3e7-4992-b8c7-3ce436bb27f8.png" loading="lazy" alt="" />
</picture>
<div>
<h2 class="content-title">
Pergerakan Nasional Indonesia: Pengertian, Tujuan & Penyebabnya | Sejarah Kelas 11 </h2>
<div class="content-meta">
<span>March 6, 2026</span> <span>• 8 minutes read</span>
</div>
</div>
</a>
</div>
<div class="content">
<a href="https://www.ruangguru.com/blog/runtuhnya-uni-soviet">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com//landing-pages/assets/b9f1448f-d581-42c3-bf06-6300fdbcd7c8.png?height=320&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com//landing-pages/assets/b9f1448f-d581-42c3-bf06-6300fdbcd7c8.png?height=320" type="image/png">
<img src="https://cdn-web-2.ruangguru.com//landing-pages/assets/b9f1448f-d581-42c3-bf06-6300fdbcd7c8.png" loading="lazy" alt="" />
</picture>
<div>
<h2 class="content-title">
Sejarah Runtuhnya Uni Soviet, Penyebab, dan Dampaknya | Sejarah Kelas 12 </h2>
<div class="content-meta">
<span></span> <span>• 11 minutes read</span>
</div>
</div>
</a>
</div>
<div class="content">
<a href="https://www.ruangguru.com/blog/konflik-palestina-israel">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com//landing-pages/assets/724ad604-4b78-4c7c-9d4b-627165954c4a.png?height=320&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com//landing-pages/assets/724ad604-4b78-4c7c-9d4b-627165954c4a.png?height=320" type="image/png">
<img src="https://cdn-web-2.ruangguru.com//landing-pages/assets/724ad604-4b78-4c7c-9d4b-627165954c4a.png" loading="lazy" alt="" />
</picture>
<div>
<h2 class="content-title">
Latar Belakang Terjadinya Konflik Palestina dengan Israel | Sejarah Kelas 12 </h2>
<div class="content-meta">
<span>March 5, 2026</span> <span>• 5 minutes read</span>
</div>
</div>
</a>
</div>
</div>
</section> </div>
</div>
<div class="banner-product-wrapper">
<a href="https://cta.ruangguru.com/7c02db90-610d-11ee-80fe-4201ac180089" target="_blank" class="alert alert-dismissible fade show banner-product" role="alert">
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
<!-- <p>Yuk pilih kelas dan materi belajar kamu di sini</p>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/0e292531-9ee1-4eed-92f5-b5c053eea4c2.svg" width="42px" height="42px" class="arrow-right"> -->
<img class="image-floating-bottom" src="https://cdn-web-2.ruangguru.com/landing-pages/assets/d19eb9b6-999d-4b92-87c6-c4fb32000d73.png?convert=web" />
</a>
</div>
</div>
</div>
<script>
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
async function replaceCtaMarkupAsync() {
await sleep(2000);
alert("replace")
const contentBody = document.querySelector('.content-body');
const paragraphs = contentBody.querySelectorAll('p');
const regexPattern = /{{cta\(['"](.+?)['"]\)}}/g;
paragraphs.forEach((paragraph) => {
const originalHTML = paragraph.innerHTML;
let modifiedHTML = '';
let lastIndex = 0;
for (const match of originalHTML.matchAll(regexPattern)) {
const ctaId = match[1];
modifiedHTML += originalHTML.slice(lastIndex, match.index) + `<b>${ctaId}</b>`;
lastIndex = match.index + match[0].length;
}
modifiedHTML += originalHTML.slice(lastIndex);
paragraph.innerHTML = modifiedHTML;
});
document.addEventListener("DOMContentLoaded", () => {
replaceCtaMarkupAsync();
});
}
</script>
<div class="modal fade" id="popupPromo" tabindex="-1" aria-labelledby="popupPromoLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-content">
<div class="button-wrapper">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="glider-contain">
<div class="glider">
<a class="" target="_blank" href="https://cta.ruangguru.com/ab-web-pop-up-banner-blog-rg">
<img src="https://cdn-web-2.ruangguru.com//landing-pages/assets/4680961a-4e01-4169-8ff4-da0823d0da6c.png" />
</a>
<a class="" target="_blank" href="https://cta.ruangguru.com/ab-web-pop-up-banner-blog-rg-1">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/e0ebb0c9-e368-4524-9241-dbaf73cafccd.png" />
</a>
<a class="" target="_blank" href="https://cta.ruangguru.com/rasionalisasi-popup-blog-rg">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/0ec15e92-707a-4660-8134-11f1c1e539a8.png" />
</a>
<a class="" target="_blank" href="https://cta.ruangguru.com/to-snbt-reg-2026-popup-blog-rg">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/b95e02b2-28a4-4c24-a6db-930ecddef2fa.jpg" />
</a>
<a class="" target="_blank" href="https://cta.ruangguru.com/pop-blog-to-snbt-prem">
<img src="https://cdn-web-2.ruangguru.com//landing-pages/assets/1b8558a2-ad51-4144-b30c-01a3231a22da.jpg" />
</a>
<a class="" target="_blank" href="https://cta.ruangguru.com/to-prem-tka-sd-smp-popup-blog-rg">
<img src="https://cdn-web-2.ruangguru.com//landing-pages/assets/e6888a56-1d95-4d8a-b87a-b19b8a185651.png" />
</a>
<a class="" target="_blank" href="https://cta.ruangguru.com/rgp-popup-blog-rg">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/851003e6-07b5-40d1-9068-f9b0bcb1625a.png" />
</a>
<a class="" target="_blank" href="https://cta.ruangguru.com/25f78174-4fc2-11ef-9a39-4201ac180089">
<img src="https://cdn-web-2.ruangguru.com//landing-pages/assets/cbe7b869-fbe2-4497-8a1e-42344df5b137.jpg" />
</a>
<a class="" target="_blank" href="https://cta.ruangguru.com/kitab-tka-smp-popup-blog">
<img src="https://cdn-web-2.ruangguru.com//landing-pages/assets/eb41ad00-e4dc-46f5-b9f6-721266fc371e.jpg" />
</a>
<a class="" target="_blank" href="https://cta.ruangguru.com/pop-rg-kitab-utbk-snbt-lite">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/f7908ac1-3b0b-492c-bf87-dcea2b20b87c.png" />
</a>
<a class="" target="_blank" href="https://cta.ruangguru.com/pop-rg-kitablitetkasmp">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/50097055-1862-46a8-bbe0-fa5b077f88bb.png" />
</a>
</div>
<div class="glider-navigation">
<div role="tablist" class="dots" id="popup-promo-dots"></div>
<div class="glider-button-navigation">
<button aria-label="Previous" class="glider-prev" id="popup-promo-prev"><img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/412de767-9fab-4a4e-9a21-09b7ac9c5f96.png"></button>
<button aria-label="Next" class="glider-next" id="popup-promo-next">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/754b0134-4f20-4cdd-af8c-d5918044d734.png">
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
var jsonString = '[{"CreatedAt":"2025-07-25 01:01:27+00:00","Id":696,"UpdatedAt":"2026-02-25 02:12:12+00:00","campaign":null,"cta":[{"Id":31467,"ctaId":"ab-web-pop-up-banner-blog-rg","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/ab-web-pop-up-banner-blog-rg)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/b9b5f501-be14-4e3f-9ad8-a87e17ec16e9.png","name":"[AB] Web Pop Up Banner - Blog RG","targetUrl":"https:\/\/bayar.ruangguru.com\/?utm-source=ab-web-pop-up-banner-blog-rg"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/\/landing-pages\/assets\/4680961a-4e01-4169-8ff4-da0823d0da6c.png","name":"[RG] Popup Banner Blog - Promo SNBT Ramadan","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":1,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"},{"CreatedAt":"2025-07-25 01:01:27+00:00","Id":705,"UpdatedAt":"2026-02-23 10:52:46+00:00","campaign":null,"cta":[{"Id":33341,"ctaId":"ab-web-pop-up-banner-blog-rg-1","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/ab-web-pop-up-banner-blog-rg-1)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/f30c4943-4456-4a96-858b-fe065c9073ae.png","name":"[AB] Web Pop Up Banner - Blog RG 1","targetUrl":"https:\/\/bayar.ruangguru.com\/?utm-source=ab-web-pop-up-banner-blog-rg"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/e0ebb0c9-e368-4524-9241-dbaf73cafccd.png","name":"[RG] Popup Banner Blog - Promo TKA Ramadan","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":2,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"},{"CreatedAt":"2023-08-16 13:35:02+00:00","Id":657,"UpdatedAt":"2026-02-06 03:52:10+00:00","campaign":null,"cta":[{"Id":33189,"ctaId":"rasionalisasi-popup-blog-rg","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/rasionalisasi-popup-blog-rg)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/0ec15e92-707a-4660-8134-11f1c1e539a8.png","name":"[RG] Pop Up Blog - Rasionalisasi","targetUrl":"https:\/\/www.ruangguru.com\/rasionalisasi"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/0ec15e92-707a-4660-8134-11f1c1e539a8.png","name":"[RG] Pop Up Blog RG - Rasionalisasi","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":3,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"},{"CreatedAt":"2023-12-07 09:26:39+00:00","Id":677,"UpdatedAt":"2026-02-12 02:22:12+00:00","campaign":null,"cta":[{"Id":33305,"ctaId":"to-snbt-reg-2026-popup-blog-rg","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/to-snbt-reg-2026-popup-blog-rg)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/b95e02b2-28a4-4c24-a6db-930ecddef2fa.jpg","name":"[IDN] CTA Popup Blog RG - Tryout SNBT Regular 2026","targetUrl":"https:\/\/link.ruangguru.com\/blPk\/TOUTBKREG7"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/b95e02b2-28a4-4c24-a6db-930ecddef2fa.jpg","name":"[RG] Popup Blog RG - Tryout Regular 2026","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":4,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"},{"CreatedAt":"2026-02-05 10:16:52+00:00","Id":689,"UpdatedAt":"2026-03-05 02:41:12+00:00","campaign":null,"cta":[{"Id":33338,"ctaId":"pop-blog-to-snbt-prem","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/pop-blog-to-snbt-prem)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/\/landing-pages\/assets\/1b8558a2-ad51-4144-b30c-01a3231a22da.jpg","name":"[RG] Popup Blog - TO SNBT Prem","targetUrl":"https:\/\/link.ruangguru.com\/blPk\/TOUTBKPREM"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/\/landing-pages\/assets\/1b8558a2-ad51-4144-b30c-01a3231a22da.jpg","name":"[RG] Pop blog - TO SNBT Prem","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":5,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"},{"CreatedAt":"2023-12-07 09:26:39+00:00","Id":679,"UpdatedAt":"2026-03-04 03:44:16+00:00","campaign":null,"cta":[{"Id":33304,"ctaId":"to-prem-tka-sd-smp-popup-blog-rg","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/to-prem-tka-sd-smp-popup-blog-rg)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/1bf472e1-62f4-4aa9-ab8c-4fa72a82dd7b.png","name":"[RG] Pop Up Blog RG - TO Premium TKA SD SMP","targetUrl":"https:\/\/s.id\/TOTKAPREMSDSMP"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/\/landing-pages\/assets\/e6888a56-1d95-4d8a-b87a-b19b8a185651.png","name":"[RG] Popup Blog RG - TO TKA Premium SD SMP","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":6,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"},{"CreatedAt":"2025-08-25 04:25:04+00:00","Id":672,"UpdatedAt":"2026-02-06 03:52:17+00:00","campaign":null,"cta":[{"Id":33285,"ctaId":"rgp-popup-blog-rg","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/rgp-popup-blog-rg)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/851003e6-07b5-40d1-9068-f9b0bcb1625a.png","name":"[RG] Pop Up Blog - RGP","targetUrl":"https:\/\/www.ruangguru.com\/privat"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/851003e6-07b5-40d1-9068-f9b0bcb1625a.png","name":"[RG] Pop Up Blog - RGP","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":7,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"},{"CreatedAt":"2023-08-16 13:35:02+00:00","Id":379,"UpdatedAt":"2026-03-06 01:54:52+00:00","campaign":null,"cta":[{"Id":31356,"ctaId":"25f78174-4fc2-11ef-9a39-4201ac180089","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/25f78174-4fc2-11ef-9a39-4201ac180089)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/f60bc49c-c00f-4a5e-80a2-2552fa18ae21.jpg","name":"CTA Blog RG - Kitab UTBK SNBT","targetUrl":"https:\/\/bit.ly\/orderkitabrg"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/\/landing-pages\/assets\/cbe7b869-fbe2-4497-8a1e-42344df5b137.jpg","name":"[RG] Pop Up Blog RG - Kitab UTBK SNBT","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":8,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"},{"CreatedAt":"2023-08-16 13:35:02+00:00","Id":587,"UpdatedAt":"2026-03-06 01:55:00+00:00","campaign":null,"cta":[{"Id":33020,"ctaId":"kitab-tka-smp-popup-blog","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/kitab-tka-smp-popup-blog)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/9ea9eca7-9ef7-433c-baad-14bc1019f890.jpg","name":"[RG] Pop up blog - Kitab TKA SMP","targetUrl":"https:\/\/bit.ly\/kitabtkasmprg"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/\/landing-pages\/assets\/eb41ad00-e4dc-46f5-b9f6-721266fc371e.jpg","name":"[RG] Pop Up Blog RG - Kitab TKA SMP","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":9,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"},{"CreatedAt":"2025-11-12 10:28:45+00:00","Id":636,"UpdatedAt":"2026-02-06 03:52:20+00:00","campaign":null,"cta":[{"Id":33149,"ctaId":"pop-rg-kitab-utbk-snbt-lite","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/pop-rg-kitab-utbk-snbt-lite)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/8d6f8639-cfff-4d64-89ea-f68bfe7a868c.png","name":"[RG] Pop blog - Kitab utbk snbt lite","targetUrl":"https:\/\/s.id\/litesnbt26"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/f7908ac1-3b0b-492c-bf87-dcea2b20b87c.png","name":"[RG] Pop blog - Kitab utbk snbt lite","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":10,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"},{"CreatedAt":"2025-11-14 08:09:42+00:00","Id":647,"UpdatedAt":"2026-02-06 03:52:21+00:00","campaign":null,"cta":[{"Id":33160,"ctaId":"pop-rg-kitablitetkasmp","ctaLink":"URI::(https:\/\/cta.ruangguru.com\/pop-rg-kitablitetkasmp)","imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/20edba9b-ef84-4938-b698-4a82783478a5.png","name":"[RG] Pop blog - kitab lite tka smp","targetUrl":"https:\/\/s.id\/litetkasmp26"}],"endDate":null,"hide":0,"imageUrl":"https:\/\/cdn-web-2.ruangguru.com\/landing-pages\/assets\/50097055-1862-46a8-bbe0-fa5b077f88bb.png","name":"[RG] Pop blog - kitab lite tka smp","nc_v5ij___rg_campaign_id":null,"nc_v5ij___rg_product_id":41,"product":"ruangguru","rankPosition":11,"rg_campaign":null,"rg_product":{"Id":41,"name":"ruangguru"},"showIn":"blog","startDate":null,"type":"popup"}]';
var jsArray = JSON.parse(jsonString);
console.log(jsArray);
</script>
<script>
let windowHeight = window.innerHeight;
let promosLength = 11;
document.addEventListener('DOMContentLoaded', function() {
// Initialize Bootstrap Modal
let popupPromo = new bootstrap.Modal(document.getElementById('popupPromo'), {});
// Initialize Glider.js inside the Bootstrap Modal
function initGliderInModal() {
new Glider(document.querySelector('#popupPromo .glider'), {
slidesToScroll: 1,
slidesToShow: 1,
draggable: true,
dots: '#popup-promo-dots',
arrows: {
prev: '#popup-promo-prev',
next: '#popup-promo-next'
}
});
}
// Show Bootstrap Modal and initialize Glider.js after a specified scroll amount
const scrollThreshold = 2 / 3 * windowHeight; // The scroll amount in pixels to trigger the Modal
let gliderInitialized = false;
window.addEventListener('scroll', function() {
if (window.scrollY >= scrollThreshold && !gliderInitialized && promosLength > 0) {
popupPromo.show();
// Listen for the 'shown' event to initialize Glider.js after the Modal has been fully displayed
$('#popupPromo').on('shown.bs.modal', function() {
initGliderInModal();
gliderInitialized = true;
// Optionally, remove the 'shown' event listener after initializing the Glider to avoid re-initializing
$('#popupPromo').off('shown.bs.modal');
});
// Remove the scroll event listener after the Modal is shown to avoid re-initializing the Glider
this.removeEventListener('scroll', arguments.callee);
}
});
});
</script>
<script src="https://unpkg.com/analytics@0.8.1/dist/analytics.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/analytics-plugin-trackable-min@0.4.5/dist/analytics-plugin-trackable.min.js"></script>
<script type="text/javascript" defer>
/* Initialize analytics */
var Analytics = window._analytics.init({
app: "ruangguruLanding",
debug: false,
plugins: [analyticsTrackable()],
});
/* Additional context tracker pageView */
const post_id = 1258;
const tags_id = [19];
const category_id = 562;
const sub_category_id = 0;
const customData = {
tags_id: tags_id,
category_id: category_id,
sub_category_id: sub_category_id,
post_id: post_id,
};
Analytics.plugins.trackable.context(JSON.stringify(customData));
Analytics.ready(function () {
Analytics.page();
});
$(document).on('click', '[data-tracking-event-type]', function (event) {
const eventType = $(this).data('tracking-event-type');
const context = $(this).data('tracking-context');
Analytics.track(eventType, context);
});
</script>
<footer class="footer">
<div class="container">
<div class="row">
<div class="col-lg-3">
<div class="office">
<a href="https://www.ruangguru.com/">
<img src="https://cdn-web-2.ruangguru.com/static/RG_LOGO_WHITE.png?convert=auto" alt="Logo Ruangguru" loading="lazy" />
</a>
<address>
<p class="hq">RUANGGURU HQ</p>
<p>
Gedung Sinarmas MSIG Tower Lt. 33. Jl. Jenderal Sudirman Kav. 21, Karet Kuningan, Setiabudi, Jakarta Selatan, Jakarta 12920
</p>
</address>
</div>
<nav class="footer-menu call-us">
<p class="title">Hubungi Kami</p>
<address>
<a href="mailto:info@ruangguru.com">
<img class="icon-call-us" src="https://cdn-web-2.ruangguru.com/file-uploader/lp/4739a139-8f09-42ea-b517-d842c5d1c28d.png" loading="lazy" alt="Logo Email Footer" />
info@ruangguru.com</a>
<a href="tel:02130930000">
<img class="icon-call-us" src="https://cdn-web-2.ruangguru.com/file-uploader/lp/6f4bb6c8-52c9-4acb-859b-47a10a7eec75.png" loading="lazy" alt="Logo Phone Footer" />(021) 3093 0000</a>
<a href="https://wa.me/6281574410000">
<img class="icon-call-us" src="https://cdn-web-2.ruangguru.com/file-uploader/lp/4b58468a-b2f9-40e4-867f-d3242a065dcf.png" loading="lazy" alt="Logo Whatsapp Footer" />0815 7441 0000</a>
</address>
</nav>
<nav class="footer-menu social d-none d-lg-block">
<p class="title">Ikuti Kami</p>
<a target="_blank" href="https://www.instagram.com/ruangguru/">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/instagram.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/instagram.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/instagram.png" loading="lazy" alt="Logo Instagram Footer" width="32px" height="32px" />
</picture>
</a>
<a target="_blank" href="https://www.facebook.com/ruanggurucom/">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/facebook.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/facebook.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/facebook.png" loading="lazy" alt="Logo Facebook Footer" width="32px" height="32px" />
</picture>
</a>
<a target="_blank" href="https://twitter.com/ruangguru/">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/twitter.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/twitter.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/twitter.png" loading=" lazy" alt="Logo Twitter Footer" width="32px" height="32px" />
</picture>
</a>
<a target="_blank" href="https://www.youtube.com/ruangguru">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/youtube.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/youtube.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/youtube.png" loading=" lazy" alt="Logo Youtube Footer" width="32px" height="32px" />
</picture>
</a>
<a target="_blank" href="https://www.linkedin.com/company/ruangguru-com">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/linkedin.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/linkedin.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/linkedin.png" loading=" lazy" alt="Logo LinkedIn Footer" width="32px" height="32px" />
</picture>
</a>
<a target="_blank" href="https://www.tiktok.com/@ruangguru">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/tiktok.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/tiktok.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/tiktok.png" loading=" lazy" alt="Logo TikTok Footer" width="32px" height="32px" />
</picture>
</a>
</nav>
</div>
<div class="col-lg-9">
<div class="row">
<div class="col-6 col-md-3">
<nav class="footer-menu">
<p class="title">Produk Ruangguru</p>
<ul type="none">
<li><a href="https://roboguru.ruangguru.com" target="_blank">Roboguru</a></li>
<li><a href="https://www.ruangguru.com/roboguruplus">Roboguru Plus</a></li>
<li><a href="https://www.ruangguru.com/dafa-lulu">Dafa dan Lulu</a></li>
<li><a href="https://www.ruangguru.com/for-kids/kursus">Kursus for Kids</a></li>
<li><a href="https://www.ruangguru.com/for-kids">Ruangguru for Kids</a></li>
<li><a href="https://www.ruangguru.com/bisnis">Ruangguru for Business</a></li>
<li><a href="https://www.ruangguru.com/ruanguji">Ruanguji</a></li>
<li><a href="https://www.ruangguru.com/blog">Ruangbaca</a></li>
<li><a href="https://www.ruangguru.com/ruangkelas">Ruangkelas</a></li>
<li><a href="https://www.ruangguru.com/ruangbelajar">Ruangbelajar</a></li>
<li><a href="https://pengajar.ruangguru.com/">Ruangpengajar</a></li>
<li><a href="https://www.ruangguru.com/privat">Ruangguru Privat</a></li>
<li><a href="https://www.ruangpeduli.org/" target="_blank">Ruangpeduli</a></li>
</ul>
</nav>
</div>
<div class="col-6 col-md-3">
<nav class="footer-menu">
<p class="title">Bantuan & Panduan</p>
<ul type="none">
<li><a href="https://www.ruangguru.com/company-credentials">Company Credentials</a></li>
<li><a href="https://www.ruangguru.com/beasiswa">Beasiswa Ruangguru</a></li>
<li><a href="https://www.ruangguru.com/cicilan">Cicilan Ruangguru</a></li>
<li><a href="https://www.ruangguru.com/promo">Promo Ruangguru</a></li>
<li><a href="https://ticketing.ruangguru.com/help?request_type_id=459" target="_blank">Vulnerability Report</a></li>
<li><a href="https://www.ruangguru.com/bantuan#layanan">Layanan Pengaduan</a></li>
<li><a href="https://www.ruangguru.com/terms-conditions">Syarat & Ketentuan</a></li>
<li><a href="https://www.ruangguru.com/privacy-policy">Kebijakan Privasi</a></li>
<li><a href="https://www.ruangguru.com/about-us">Tentang Kami</a></li>
<li><a href="https://www.ruangguru.com/contact-us">Kontak Kami</a></li>
<li><a href="https://www.ruangguru.com/press">Press Kit</a></li>
<li><a href="https://www.ruangguru.com/bantuan">Bantuan</a></li>
<li><a href="https://career.ruangguru.com/">Karier</a></li>
</ul>
</nav>
</div>
<div class="col-6 col-md-3">
<nav class="footer-menu">
<p class="title">Produk Lainnya</p>
<ul type="none">
<li><a href="https://www.brainacademy.id/" target="_blank">Brain Academy</a></li>
<li><a href="https://www.english-academy.id/" target="_blank">English Academy</a></li>
<li><a href="https://skillacademy.com/" target="_blank">Skill Academy</a></li>
<li><a href="https://www.ruangkerja.id/" target="_blank">Ruangkerja</a></li>
<li><a href="https://www.schoters.com/id/" target="_blank">Schoters</a></li>
<li><a href="https://www.kalananti.id/" target="_blank">Kalananti</a></li>
</ul>
</nav>
</div>
<div class="col-6 col-md-3">
<nav class="footer-menu">
<p class="title"> Coba GRATIS Aplikasi Ruangguru</p>
<div class="download-list">
<ul>
<li>
<a target="_blank" rel="nofollow" href="https://apps.apple.com/id/app/ruangguru-solusi-belajar/id1099742206?l=id">
<img src="https://cdn-web-2.ruangguru.com/static/appstore.png" loading="lazy" alt="Button App Store Footer " />
</a>
</li>
<li>
<a target="_blank" rel="nofollow" href="https://play.google.com/store/apps/details?id=com.ruangguru.livestudents&hl=in">
<img src="https://cdn-web-2.ruangguru.com/static/googleplay.png" loading="lazy" alt="Button Google Play Footer " />
</a>
</li>
<li>
<a target="_blank" rel="nofollow" href="https://appgallery.huawei.com/#/app/C102352375">
<img src="https://cdn-web-2.ruangguru.com/static/huawei.png" loading="lazy" alt="Button AppGallery Footer " />
</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
</div>
</div>
<div class="d-lg-none text-center">
<nav class="footer-menu social">
<p class="title">Ikuti Kami</p>
<a target="_blank" href="https://www.instagram.com/ruangguru/">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/instagram.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/instagram.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/instagram.png" loading="lazy" alt="Logo Instagram Footer" width="32px" height="32px" />
</picture>
</a>
<a target="_blank" href="https://www.facebook.com/ruanggurucom/">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/facebook.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/facebook.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/facebook.png" loading="lazy" alt="Logo Facebook Footer" width="32px" height="32px" />
</picture>
</a>
<a target="_blank" href="https://twitter.com/ruangguru/">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/twitter.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/twitter.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/twitter.png" loading=" lazy" alt="Logo Twitter Footer" width="32px" height="32px" />
</picture>
</a>
<a target="_blank" href="https://www.youtube.com/ruangguru">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/youtube.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/youtube.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/youtube.png" loading=" lazy" alt="Logo Youtube Footer" width="32px" height="32px" />
</picture>
</a>
<a target="_blank" href="https://www.linkedin.com/company/ruangguru-com">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/linkedin.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/linkedin.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/linkedin.png" loading=" lazy" alt="Logo LinkedIn Footer" width="32px" height="32px" />
</picture>
</a>
<a target="_blank" href="https://www.tiktok.com/@ruangguru">
<picture>
<source srcset="https://cdn-web-2.ruangguru.com/static/tiktok.png?height=60&convert=webp" type="image/webp">
<source srcset="https://cdn-web-2.ruangguru.com/static/tiktok.png?height=60" type="image/png">
<img src="https://cdn-web-2.ruangguru.com/static/tiktok.png" loading=" lazy" alt="Logo TikTok Footer" width="32px" height="32px" />
</picture>
</a>
</nav>
</div>
<p class="footer-copyright">
© 2026 All Rights Reserved PT. Ruang Raya Indonesia
</p>
</div>
<style>
.bantuan-container {
position: relative;
}
.bantuan-element {
position: fixed;
z-index: 999;
display: flex;
align-items: flex-end;
justify-content: flex-end;
cursor: pointer;
transition: all 0.6s ease;
}
.bantuan-top {
bottom: 11rem;
right: 2rem;
}
.bantuan-bottom {
bottom: 2rem;
right: 2rem;
}
.bantuan-top-2 {
bottom: 15rem;
right: 2rem;
}
.bantuan-top-3 {
bottom: 19rem;
right: 2rem;
}
.bantuan-bottom-2 {
bottom: 5rem;
right: 2rem;
}
.bantuan-bottom-3 {
bottom: 8rem;
right: 2rem;
}
@media (min-width: 768px) {
.bantuan-element img {
width: auto;
transition: all 0.4s ease;
}
.bantuan-top img {
width: 140px;
}
.bantuan-bottom img {
width: 140px;
}
.bantuan-top-2 img,
.bantuan-top-3 img {
width: 140px;
}
.bantuan-bottom-2 img,
.bantuan-bottom-3 img {
width: 140px;
}
.bantuan-element.clicked {
bottom: 9rem;
right: 2.5rem;
}
.bantuan-element.clicked img {
width: auto;
height: 64px;
}
}
@media (max-width: 767px) {
.bantuan-top {
bottom: 8rem;
right: 1rem;
align-items: center;
}
.bantuan-bottom {
bottom: 2rem;
right: 1.25rem;
align-items: center;
}
.bantuan-top-2 {
bottom: 12rem;
right: 1rem;
align-items: center;
}
.bantuan-top-3 {
bottom: 16rem;
right: 1rem;
align-items: center;
}
.bantuan-bottom-2 {
bottom: 5rem;
right: 1.25rem;
align-items: center;
}
.bantuan-bottom-3 {
bottom: 8rem;
right: 1.25rem;
align-items: center;
}
.bantuan-element img {
width: auto;
}
.bantuan-top img,
.bantuan-top-2 img,
.bantuan-top-3 img {
width: 96px;
}
.bantuan-bottom img,
.bantuan-bottom-2 img,
.bantuan-bottom-3 img {
width: 96px;
}
}
.bantuan-element:hover {
transform: scale(1.05);
}
.bantuan-element img {
max-width: 100%;
height: auto;
}
</style>
<div id="bantuan-divs-container" style="position: relative" data-product="ruangguru" data-table="rg_floating_icon"></div>
<script>
class FloatingDivsComponent {
constructor(product = 'ruangguru', table = 'rg_floating_icon') {
this.container = document.getElementById('bantuan-divs-container');
this.floatingElements = [];
this.product = product;
this.table = table;
// Configuration
this.config = {
baseApiUrl: 'https://gw.ruangguru.com/api/v3/rdb/p_ddgy8hjx5dxsqx/rg_banner/views/',
apiKey: 'vLyK3dJrDBRmOwueX2OJXibMkgsUbBk0WS4ua2p1',
maxElements: 2,
zIndexBase: 100,
};
// Build dynamic API URL based on table parameter
this.config.apiUrl = this.buildApiUrl();
this.init();
}
buildApiUrl() {
const baseUrl = this.config.baseApiUrl;
const tableName = this.table || 'rg_floating_icon';
const queryParams =
'offset=0&limit=99999&sort=rankPosition&where=(type,eq,floating)~and(showIn,anyof,blog)~and(hide,is,false)~and(product,eq,' +
this.product +
')&nested%5Bcta%5D%5Bfields%5D=Id,name,ctaId,imageUrl,ctaLink,targetUrl';
return `${baseUrl}${tableName}?${queryParams}`;
}
async init() {
try {
await this.fetchFloatingElements();
this.renderFloatingElements();
} catch (error) {
console.error('Failed to initialize floating divs component:', error);
}
}
async fetchFloatingElements() {
try {
const options = {
method: 'GET',
headers: {
'xc-token': this.config.apiKey || 'vLyK3dJrDBRmOwueX2OJXibMkgsUbBk0WS4ua2p1',
},
};
const urlNoco = this.config.apiUrl;
const response = await fetch(urlNoco, options);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
this.floatingElements = this.processApiResponse(data);
} catch (error) {
console.error('Error fetching floating elements:', error);
throw error;
}
}
processApiResponse(data) {
if (!data || !data.list || !Array.isArray(data.list)) {
return [];
}
console.log(data.list);
// Ensure we only get maximum 2 elements
const limitedElements = data.list.slice(0, this.config.maxElements);
return limitedElements;
}
renderFloatingElements() {
if (!this.container || this.floatingElements.length === 0) {
return;
}
// Additional safeguard: ensure we never render more than maxElements
const elementsToRender = this.floatingElements.slice(0, this.config.maxElements);
// Clean up existing elements and their event listeners
this.cleanupExistingElements();
// Clear existing content
this.container.innerHTML = '';
elementsToRender.forEach((element, index) => {
const floatingDiv = this.createFloatingDiv(element, index);
this.container.appendChild(floatingDiv);
});
}
cleanupExistingElements() {
// Clear existing elements (no need for event listener cleanup with CSS approach)
const existingElements = this.container.querySelectorAll('[data-floating-element]');
existingElements.forEach(element => {
element.remove();
});
}
createFloatingDiv(element, index) {
const div = document.createElement('div');
const cta = element.cta[0]; // Use the first CTA
// Add data attribute for cleanup tracking
div.setAttribute('data-floating-element', 'true');
// Apply CSS classes based on rankPosition
const positionClass = this.getPositionClass(element.rankPosition, index);
div.className = `bantuan-element ${positionClass}`;
div.style.zIndex = this.config.zIndexBase + index;
// Create the link and image
const link = document.createElement('a');
link.href = 'https://cta.ruangguru.com/' + cta.ctaId || '#';
link.target = '_blank';
// Add tracking attributes
link.setAttribute('data-tracking-event-type', 'landing_page__core__item_click');
link.setAttribute(
'data-tracking-context',
JSON.stringify({
product_name: this.product,
cta_action: 'redirection',
cta_action_detail: link.href,
item_type: 'floating',
item_name: element.name || 'Floating element',
item_category: 'payment',
item_position: index,
item_serial: null,
section_type: 'floating_item',
section_position: 'body',
section_name: 'floating_item',
})
);
const img = document.createElement('img');
img.src = element.imageUrl + '?h=200&convert=webp';
img.alt = element.name || 'Floating element';
img.loading = 'lazy';
// Add click tracking
link.addEventListener('click', () => {
this.trackClick(element, cta);
});
link.appendChild(img);
div.appendChild(link);
return div;
}
getPositionClass(rankPosition, index) {
// Define positioning classes based on rankPosition
if (rankPosition === 1) {
return 'bantuan-top'; // Top position
} else if (rankPosition === 2) {
return 'bantuan-bottom'; // Bottom position
} else {
// For additional elements, distribute them evenly
return `bantuan-${index % 2 === 0 ? 'top' : 'bottom'}-${Math.floor(index / 2) + 1}`;
}
}
trackClick(element, cta) {
// Implement click tracking logic here
console.log('Floating element clicked:', {
elementId: element.Id,
elementName: cta.name,
ctaId: cta.ctaId,
targetUrl: cta.targetUrl,
});
}
// Public method to manually refresh
async refresh() {
try {
await this.fetchFloatingElements();
this.renderFloatingElements();
} catch (error) {
console.error('Failed to refresh floating elements:', error);
throw error;
}
}
// Public method to get current floating elements
getFloatingElements() {
return [...this.floatingElements];
}
}
// Initialize the component when DOM is ready
document.addEventListener('DOMContentLoaded', () => {
// Get product and table parameters from data attributes
const container = document.getElementById('bantuan-divs-container');
const product = container.getAttribute('data-product') || 'ruangguru';
const table = container.getAttribute('data-table') || 'rg_floating_icon';
new FloatingDivsComponent(product, table);
});
// Export for use in other modules if needed
if (typeof module !== 'undefined' && module.exports) {
module.exports = FloatingDivsComponent;
}
</script> <div id="wp-install-nudge" style="
position: fixed;
bottom: 0rem;
right: 0;
z-index: 999;
cursor: pointer;
"></div>
<script>
(function (w, d, s, o, f, js, fjs) {
w['Sales-Nudge-Widget'] = o; w[o] = w[o] || function () { (w[o].q = w[o].q || []).push(arguments) };
js = d.createElement(s), fjs = d.getElementsByTagName(s)[0];
js.id = o; js.src = f; js.async = 1; fjs.parentNode.insertBefore(js, fjs);
}(window, document, 'script', 'wpInstallNudge', 'https://cdn-web-2.ruangguru.com/sales-nudge/6198a95130/dist/widget.js'));
wpInstallNudge('init', { targetElementId: 'wp-install-nudge', clientTarget: 'ruangguru_blog' });
</script>
<script>
// note: disabled due to auto reload page
// var lastScrollTop = 0;
// $(window).scroll(function(event){
// var st = $(this).scrollTop();
// if (st > lastScrollTop){
// $('#wp-install-nudge').slideDown( "slow", function() {});
// } else {
// $('#wp-install-nudge').slideUp( "slow", function() {});
// }
// lastScrollTop = st;
// });
// $(document).ready(function () {
// $("#wp-install-nudge").hide();
// });
$('#wp-install-nudge').click(function(){
Analytics.track("promotion__install_nudge__click",
{
user_email: "ruangguru@blog.com",
cta_link: widgetData.dataConfig.target_link
}).catch((err) => {
console.log("tracker error", err);
});
});
</script>
</footer>
<div id="__next"></div>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/blog\/*"},{"not":{"href_matches":["\/blog\/wp-*.php","\/blog\/wp-admin\/*","\/blog\/wp-content\/uploads\/*","\/blog\/wp-content\/*","\/blog\/wp-content\/plugins\/*","\/blog\/wp-content\/themes\/ruangguru\/*","\/blog\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script>
async function getCtaDetails(ctaIds) {
const endpoint =
" https://gw.ruangguru.com/api/v3/rdb/p_ddgy8hjx5dxsqx/CTA/views/CTA?offset=0&limit=10&where=(ctaId,in," + ctaIds.toString() + ")";
try {
const response = await fetch(endpoint, {
headers: {
"xc-token": "-hG2nBDJzSj0agSgNtcJx97M4F02y54nUMoY6plJ",
},
});
const data = await response.json();
const ctaList = data?.list || [];
const ctaMap = new Map();
for (const ctaData of ctaList) {
ctaMap.set(ctaData.ctaId, ctaData);
}
return ctaMap;
} catch (error) {
console.error("Error fetching CTA details:", error);
return new Map();
}
}
async function replaceCTA() {
const regex = /{{cta\((‘(.*?)’|“(.*?)”)\)}}/g;
const bodyHTML = document.body.innerHTML;
const matches = Array.from(bodyHTML.matchAll(regex));
const ctaIds = matches.map((match) => {
let ctaId = match[2] ?? match[3];
return ctaId;
});
const ctaMap = await getCtaDetails(ctaIds);
const replacedHTML = bodyHTML.replace(regex, (match, _inner, ctaId1, ctaId2) => {
const ctaId = ctaId1 ?? ctaId2;
const ctaData = ctaMap.get(ctaId);
if (ctaData) {
return `<a href="https://cta.ruangguru.com/${ctaData.ctaId}" target="_${ctaData.targetType}" style="position:relative;display:inline-block;">
<img src="${ctaData.imageUrl}" loading="lazy" alt="${ctaData.altText}" />
</a>`;
} else {
return match;
}
});
document.body.innerHTML = replacedHTML;
}
</script>
<meta name="author" content="Ruangguru Tech Team">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PVNLZFT" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- Tracker -->
<script type="text/javascript" src="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/global-assets/js/cta.js"></script>
<script src="https://unpkg.com/@dotlottie/player-component@latest/dist/dotlottie-player.mjs" type="module"></script>
</body>
</html>