<!doctype html>
<html class="no-js" lang="id">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="author" content="PT Ruang Raya Indonesia" />
<meta
name="description"
content="Ada banyak banget penawaran dan keringanan untuk langganan paket Ruangguru. Kamu bisa pilih sampe cicilan 12 x dan bisa dapetin potongan tambahan hingga Rp300.000!"
/>
<meta name="generator" content="HubSpot" />
<title>Promo Ruangguru x Kredivo</title>
<link rel="shortcut icon" href="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/favicon60x60-3.png" />
<meta
property="og:description"
content="Ada banyak banget penawaran dan keringanan untuk langganan paket Ruangguru. Kamu bisa pilih sampe cicilan 12 x dan bisa dapetin potongan tambahan hingga Rp300.000!"
/>
<meta property="og:title" content="Promo Ruangguru x Kredivo" />
<meta
name="twitter:description"
content="Ada banyak banget penawaran dan keringanan untuk langganan paket Ruangguru. Kamu bisa pilih sampe cicilan 12 x dan bisa dapetin potongan tambahan hingga Rp300.000!"
/>
<meta name="twitter:title" content="Promo Ruangguru x Kredivo" />
<style>
a.cta_button {
-moz-box-sizing: content-box !important;
-webkit-box-sizing: content-box !important;
box-sizing: content-box !important;
vertical-align: middle;
}
.hs-breadcrumb-menu {
list-style-type: none;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
}
.hs-breadcrumb-menu-item {
float: left;
padding: 10px 0px 10px 10px;
}
.hs-breadcrumb-menu-divider:before {
content: '›';
padding-left: 10px;
}
.hs-featured-image-link {
border: 0;
}
.hs-featured-image {
float: right;
margin: 0 0 20px 20px;
max-width: 50%;
}
@media (max-width: 568px) {
.hs-featured-image {
float: none;
margin: 0;
width: 100%;
max-width: 100%;
}
}
.hs-screen-reader-text {
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
overflow: hidden;
position: absolute !important;
width: 1px;
}
</style>
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/module_assets/39227318886/1661845607410/module_39227318886_header-homepage-ruangguru-2021.min.css"
/>
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/template_assets/44980440489/1661483386153/A_Ruangguru_Projects/Project_Hofar/CSS_Javascript_Auto_Generate_Breadcrumb_-_V1.min.css"
/>
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/module_assets/50471067289/1672811400720/module_50471067289_content_cicilan_ruangguru_2021.min.css"
/>
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/module_assets/39981680119/1676448475961/module_39981680119_Footer-ruangguru-2021-v2.min.css"
/>
<!-- Added by GoogleAnalytics integration -->
<script>
var _hsp = (window._hsp = window._hsp || []);
_hsp.push([
'addPrivacyConsentListener',
function (consent) {
if (consent.allowed || (consent.categories && consent.categories.analytics)) {
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
(i[r] =
i[r] ||
function () {
(i[r].q = i[r].q || []).push(arguments);
}),
(i[r].l = 1 * new Date());
(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-49650255-1', 'auto');
ga('send', 'pageview');
}
},
]);
</script>
<!-- /Added by GoogleAnalytics integration -->
<link rel="canonical" href="https://www.ruangguru.com/cicilan/kredivo" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script>
(function (h, e, a, t, m, p) {
m = e.createElement(a);
m.async = !0;
m.src = t;
p = e.getElementsByTagName(a)[0];
p.parentNode.insertBefore(m, p);
})(window, document, 'script', 'https://u.heatmap.it/log.js');
</script>
<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" />
<!-- Global site tag (gtag.js) - Google Analytics -->
<!--
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-49650255-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-49650255-1');
</script>
-->
<!-- 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 property="og:image" content="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20New%20Icon/rg.png#keepProtocol" />
<meta property="og:image:width" content="600" />
<meta property="og:image:height" content="350" />
<meta name="twitter:image" content="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20New%20Icon/rg.png#keepProtocol" />
<meta property="og:url" content="https://www.ruangguru.com/cicilan/kredivo" />
<meta name="twitter:card" content="summary_large_image" />
<meta http-equiv="content-language" content="id" />
<link rel="stylesheet" href="https://cdn-web-2.ruangguru.com/landing-page-web/public/assets/common/layout.min.css" />
<link
rel="stylesheet"
href="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/template_assets/32781682988/1666344401391/A_Ruangguru_Projects/1_SOP_Landing_Page/SOP_Style_Ruangguru.min.css"
/>
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "home",
"item": "https://www.ruangguru.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "cicilan",
"item": "https://www.ruangguru.com/cicilan"
}
]
}
</script>
<script type="module" crossorigin src="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/cicilan/kredivo/assets/index-Dqv5PPZA.js"></script>
</head>
<body class="hs-content-id-24249069667 hs-landing-page hs-page" style="">
<div class="header-container-wrapper">
<div class="header-container container-fluid">
<div class="row-fluid-wrapper row-depth-1 row-number-1">
<div class="row-fluid">
<div class="span12 widget-span widget-type-custom_widget" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div
id="hs_cos_wrapper_module_161864779893999"
class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module"
style=""
data-hs-cos-general-type="widget"
data-hs-cos-type="module"
>
<!-- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"> -->
<style></style>
<nav class="ruangguru-header">
<div class="page-center">
<div class="container-ruangguru-header">
<div class="navigation__left">
<div class="hamburger-icon">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/ic_hamburger_black.svg" alt="Dropdown Navigation Icon" />
</div>
<a href="https://www.ruangguru.com/">
<div class="logo-header">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/OPTIMIZE/logo%20rg.svg" alt="Logo ruangguru" />
</div>
</a>
</div>
<div class="navigation__content">
<div class="navig-link navig-link-dropdown" id="produk" aria-expanded="false">
<a>Produk</a>
</div>
<div class="navig-dropdown-area closed" id="produk_item">
<!-- ruangbelajar -->
<a href="https://www.ruangguru.com/ruangbelajar">
<div class="item-product">
<div class="logo-product">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/OPTIMIZE/rb.svg" alt="Logo ruangbelajar" loading="lazy" />
</div>
<p class="text-product">Belajar seru dengan video dan latihan soal, anti remed!</p>
</div>
</a>
<!-- BA -->
<a target="_blank" href="https://www.brainacademy.id">
<div class="item-product">
<div class="logo-product">
<img
src="https://www.brainacademy.id/hubfs/03%20-%20Homepage%20Brainacademy%202022/Header%20to%20Live%20Teaching/logo_BA.svg"
alt="Logo Brain Academy"
loading="lazy"
/>
</div>
<p class="text-product">Bimbel Live Interaktif bersama STAR Master Teacher + Klinik PR</p>
</div>
</a>
<!-- roboguru -->
<a href="https://roboguru.ruangguru.com/">
<div class="item-product">
<div class="logo-product">
<img src="https://roboguru-forum-cdn.ruangguru.com/image/20b7b17a-62ba-43ee-bea8-b71c10f5fb0c.png?convert=webp" width="125" alt="Logo roboguru" loading="lazy" />
</div>
<p class="text-product">Foto dan upload soal susahmu dan dapatkan semua jawabannya di sini!</p>
</div>
</a>
<!-- roboguru plus -->
<a href="https://www.ruangguru.com/roboguruplus">
<div class="item-product">
<div class="logo-product">
<img src="https://roboguru-forum-cdn.ruangguru.com/image/ea267d76-9d20-45b0-9c2c-88e78c199f5d.png?convert=webp" width="155" alt="Logo ruanglesonline" loading="lazy" />
</div>
<p class="text-product">Konsultasikan soal tersulit kamu sebanyak-banyaknya dengan tutor online terbaik</p>
</div>
</a>
<!-- ruangles -->
<a href="https://www.ruangguru.com/privat">
<div class="item-product">
<div class="logo-product">
<img
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/LP%20Ruangguru%20Private/Logo%20Ruangguru%20Privat/logo-ruangguru-privat.png?convert=webp&width=112&name=logo-ruangguru-privat.png"
alt="Logo ruangles"
width="112"
loading="lazy"
srcset="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/LP%20Ruangguru%20Private/Logo%20Ruangguru%20Privat/logo-ruangguru-privat.png?convert=webp&width=56&name=logo-ruangguru-privat.png 56w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/LP%20Ruangguru%20Private/Logo%20Ruangguru%20Privat/logo-ruangguru-privat.png?convert=webp&width=112&name=logo-ruangguru-privat.png 112w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/LP%20Ruangguru%20Private/Logo%20Ruangguru%20Privat/logo-ruangguru-privat.png?convert=webp&width=168&name=logo-ruangguru-privat.png 168w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/LP%20Ruangguru%20Private/Logo%20Ruangguru%20Privat/logo-ruangguru-privat.png?convert=webp&width=224&name=logo-ruangguru-privat.png 224w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/LP%20Ruangguru%20Private/Logo%20Ruangguru%20Privat/logo-ruangguru-privat.png?convert=webp&width=280&name=logo-ruangguru-privat.png 280w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/LP%20Ruangguru%20Private/Logo%20Ruangguru%20Privat/logo-ruangguru-privat.png?convert=webp&width=336&name=logo-ruangguru-privat.png 336w"
sizes="(max-width: 112px) 100vw, 112px"
/>
</div>
<p class="text-product">Belajar privat dengan guru terbaik pilihan Ruangguru</p>
</div>
</a>
<!-- EA -->
<a target="_blank" href="https://www.english-academy.id/">
<div class="item-product">
<div class="logo-product" id="lp_ea">
<img
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/ENGLISH%20ACADEMY-LOGO2%201.png?convert=webp"
alt="Logo English Academy"
loading="lazy"
/>
<div class="ribbon-wrapper-new">
<div class="glow-new"> </div>
</div>
</div>
<p class="text-product">Kursus Bahasa Inggris dengan Pengajar internasional dan kurikulum berstandar internasional</p>
</div>
</a>
<!-- dafalulu -->
<a href="https://www.ruangguru.com/dafa-lulu">
<div class="item-product">
<div class="logo-product">
<img
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/00%20-%20Homepage%20Ruangguru%202022/Produk/logo-dafa-lulu-new.png?convert=webp&height=44&name=logo-dafa-lulu-new.png"
height="44"
alt="Logo dafa lulu"
loading="lazy"
/>
</div>
<p class="text-product">Belajar bersama Dafa, Lulu, dan teman petualang untuk siswa SD kelas 1 - 6</p>
</div>
</a>
<!-- rg for kids -->
<a href="https://www.ruangguru.com/for-kids">
<div class="item-product">
<div class="logo-product">
<img
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/00%20-%20Homepage%20Ruangguru%202022/Produk/logo-ruangguru-forkids.png?convert=webp&width=100&name=logo-ruangguru-forkids.png"
alt="Logo For Kids"
width="100"
loading="lazy"
srcset="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/00%20-%20Homepage%20Ruangguru%202022/Produk/logo-ruangguru-forkids.png?convert=webp&width=50&name=logo-ruangguru-forkids.png 50w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/00%20-%20Homepage%20Ruangguru%202022/Produk/logo-ruangguru-forkids.png?convert=webp&width=100&name=logo-ruangguru-forkids.png 100w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/00%20-%20Homepage%20Ruangguru%202022/Produk/logo-ruangguru-forkids.png?convert=webp&width=150&name=logo-ruangguru-forkids.png 150w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/00%20-%20Homepage%20Ruangguru%202022/Produk/logo-ruangguru-forkids.png?convert=webp&width=200&name=logo-ruangguru-forkids.png 200w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/00%20-%20Homepage%20Ruangguru%202022/Produk/logo-ruangguru-forkids.png?convert=webp&width=250&name=logo-ruangguru-forkids.png 250w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/00%20-%20Homepage%20Ruangguru%202022/Produk/logo-ruangguru-forkids.png?convert=webp&width=300&name=logo-ruangguru-forkids.png 300w"
sizes="(max-width: 100px) 100vw, 100px"
/>
</div>
<p class="text-product">Kursus online untuk anak 4-7 tahun dengan program calistung, bahasa Inggris, dan sains</p>
</div>
</a>
<!-- ruanguji -->
<a href="https://www.ruangguru.com/ruanguji">
<div class="item-product">
<div class="logo-product">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/OPTIMIZE/ruanguji.svg" alt="Logo ruanguji" loading="lazy" />
</div>
<p class="text-product">Ikut tryout online dan lihat hasilnya di sini!</p>
</div>
</a>
<!-- ruangkelas -->
<a href="https://www.ruangguru.com/ruangkelas">
<div class="item-product">
<div class="logo-product">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/OPTIMIZE/ruangkelas.svg" alt="Logo ruangkelas" loading="lazy" />
</div>
<p class="text-product">Sistem Kelola Pembelajaran Jarak Jauh GRATIS!</p>
</div>
</a>
<!-- SA -->
<a target="_blank" href="https://skillacademy.com/">
<div class="item-product">
<div class="logo-product">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/OPTIMIZE/skillacademy.svg" alt="Logo Skill Academy" loading="lazy" />
</div>
<p class="text-product">Kursus online untuk meningkatkan technical & soft skill kamu</p>
</div>
</a>
<!-- ruangkerja -->
<a target="_blank" href="https://ruangkerja.id/">
<div class="item-product">
<div class="logo-product">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/OPTIMIZE/ruangkerja.svg" alt="Logo ruangkerja" loading="lazy" />
</div>
<p class="text-product">Aplikasi Pelatihan Online #1 untuk Perusahaan & Lembaga</p>
</div>
</a>
<!-- kalananti -->
<a target="_blank" href="https://www.kalananti.id/">
<div class="item-product">
<div class="logo-product">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/kalananti%202022/Kalananti%20by%20Ruangguru.png" alt="Logo kalananti" loading="lazy" height="40" />
</div>
<p class="text-product">Kursus coding dan robotic anak usia 5-15 tahun untuk mengasah logika dan kreativitas</p>
</div>
</a>
<!-- mathchamps -->
<a target="_blank" href="https://www.mathchamps.id">
<div class="item-product">
<div class="logo-product">
<img
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/723d8e19-b594-49cf-a098-07f5379d5d5f.png?convert=webp&h=70"
alt="Logo math champs"
loading="lazy"
width="104"
height="40"
/>
</div>
<p class="text-product">Kursus matematika dan logika untuk anak 5-14 tahun dengan kurikulum Singapura</p>
</div>
</a>
<!-- schoters logo -->
<a target="_blank" href="https://www.schoters.com">
<div class="item-product">
<div class="logo-product">
<img
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/3ecc92be-4ee0-475f-bd4c-d1f5e733f012.png?convert=webp&h=120"
alt="Logo Schoters"
loading="lazy"
height="40"
/>
</div>
<p class="text-product">Bimbingan kuliah & kerja di luar negeri #1 di Indonesia, dengan kelas bahasa terlengkap!</p>
</div>
</a>
</div>
<div class="navig-link" id="program">
<a href="https://www.ruangguru.com/program">Program</a>
</div>
<div class="navig-link">
<a href="https://www.ruangguru.com/promo">Promo</a>
</div>
<div class="navig-link">
<a href="https://www.ruangguru.com/event">Event</a>
</div>
<div class="navig-link">
<a href="https://www.ruangguru.com/beasiswa">Beasiswa</a>
</div>
<div class="navig-link">
<a href="https://www.ruangguru.com/testimoni">Testimoni</a>
</div>
<div class="navig-link navig-link-dropdown" id="services">
<a>Layanan</a>
</div>
<div class="navig-dropdown-area closed" id="services_item" aria-expanded="false">
<div class="item-services">
<a href="https://www.ruangguru.com/ruangbelajar/perpanjang-paket">Cara Perpanjang Paket</a>
</div>
<div class="item-services">
<a href="https://www.ruangguru.com/cara-bayar">Cara Bayar</a>
</div>
<div class="item-services">
<a href="https://www.ruangguru.com/cicilan">Cicilan</a>
</div>
</div>
<div class="navig-link">
<a href="https://www.ruangguru.com/blog/">Ruangbaca</a>
</div>
</div>
<div class="navigation__right">
<div class="button-langganan-cta">
<!--HubSpot Call-to-Action Code -->
<span class="hs-cta-wrapper" id="hs-cta-wrapper-98f09c6e-5ed3-4c65-b943-9a7ff510d8e8">
<span class="hs-cta-node hs-cta-98f09c6e-5ed3-4c65-b943-9a7ff510d8e8" id="hs-cta-98f09c6e-5ed3-4c65-b943-9a7ff510d8e8">
<a href="https://cta.ruangguru.com/98f09c6e-5ed3-4c65-b943-9a7ff510d8e8" target="_blank" rel="noopener">
<img
class="hs-cta-img"
id="hs-cta-img-98f09c6e-5ed3-4c65-b943-9a7ff510d8e8"
style="border-width: 0px"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/cta/98f09c6e-5ed3-4c65-b943-9a7ff510d8e8.png"
alt="Langganan Sekarang"
/>
</a>
</span>
</span>
<!-- end HubSpot Call-to-Action Code -->
</div>
</div>
</div>
</div>
</nav>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script
src="https://cdn.jsdelivr.net/npm/popper.js@1.14.7/dist/umd/popper.min.js"
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
crossorigin="anonymous"
></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/js/bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
crossorigin="anonymous"
></script>
<script></script>
</div>
</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->
</div>
<!--end header -->
</div>
<!--end header wrapper -->
<div class="body-container-wrapper">
<div class="body-container container-fluid">
<div class="row-fluid-wrapper row-depth-1 row-number-1">
<div class="row-fluid">
<div class="span12 widget-span widget-type-custom_widget" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div
id="hs_cos_wrapper_module_162582017712849"
class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module"
style=""
data-hs-cos-general-type="widget"
data-hs-cos-type="module"
>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.css" />
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.css" />
<style>
:root {
--custom-orange: rgb(255, 130, 60);
}
.bg-custom-orange {
background-color: var(--custom-orange) !important;
}
.border-custom-orange {
border-color: var(--custom-orange) !important;
}
img.h-auto {
height: auto;
}
img.img-custom-clickable {
opacity: 1;
}
img.img-custom-clickable:hover {
opacity: 0.9;
cursor: pointer;
}
</style>
<div class="spacer-rg"></div>
<div class="promo__banner--detail">
<img
loading="lazy"
width="1281"
height="250"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-web.jpeg?width=1281&height=250&name=banner-kredivo-lp-web.jpeg"
alt="0"
class="banner-web h-auto"
srcset="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-web.jpeg?width=641&height=125&name=banner-kredivo-lp-web.jpeg 641w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-web.jpeg?width=1281&height=250&name=banner-kredivo-lp-web.jpeg 1281w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-web.jpeg?width=1922&height=375&name=banner-kredivo-lp-web.jpeg 1922w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-web.jpeg?width=2562&height=500&name=banner-kredivo-lp-web.jpeg 2562w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-web.jpeg?width=3203&height=625&name=banner-kredivo-lp-web.jpeg 3203w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-web.jpeg?width=3843&height=750&name=banner-kredivo-lp-web.jpeg 3843w"
sizes="(max-width: 1281px) 100vw, 1281px"
/>
<img
loading="lazy"
width="1025"
height="251"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-ipad.jpeg?width=1025&height=251&name=banner-kredivo-lp-ipad.jpeg"
alt="0"
class="banner-ipad h-auto"
srcset="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-ipad.jpeg?width=513&height=126&name=banner-kredivo-lp-ipad.jpeg 513w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-ipad.jpeg?width=1025&height=251&name=banner-kredivo-lp-ipad.jpeg 1025w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-ipad.jpeg?width=1538&height=377&name=banner-kredivo-lp-ipad.jpeg 1538w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-ipad.jpeg?width=2050&height=502&name=banner-kredivo-lp-ipad.jpeg 2050w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-ipad.jpeg?width=2563&height=628&name=banner-kredivo-lp-ipad.jpeg 2563w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-ipad.jpeg?width=3075&height=753&name=banner-kredivo-lp-ipad.jpeg 3075w"
sizes="(max-width: 1025px) 100vw, 1025px"
/>
<img
loading="lazy"
width="721"
height="317"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-mobile%201%20(1).png?width=721&height=317&name=banner-kredivo-lp-mobile%201%20(1).png"
alt="0"
class="banner-mobile d-block d-md-none h-auto"
srcset="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-mobile%201%20(1).png?width=361&height=159&name=banner-kredivo-lp-mobile%201%20(1).png 361w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-mobile%201%20(1).png?width=721&height=317&name=banner-kredivo-lp-mobile%201%20(1).png 721w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-mobile%201%20(1).png?width=1082&height=476&name=banner-kredivo-lp-mobile%201%20(1).png 1082w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-mobile%201%20(1).png?width=1442&height=634&name=banner-kredivo-lp-mobile%201%20(1).png 1442w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-mobile%201%20(1).png?width=1803&height=793&name=banner-kredivo-lp-mobile%201%20(1).png 1803w, https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2023/banner-kredivo-lp-mobile%201%20(1).png?width=2163&height=951&name=banner-kredivo-lp-mobile%201%20(1).png 2163w"
sizes="(max-width: 721px) 100vw, 721px"
/>
</div>
<div class="detail">
<div class="page-center">
<nav aria-label="breadcrumb">
<ol id="breadcrumb" class="breadcrumb bg-transparent p-0"></ol>
</nav>
<div class="detail__content">
<div class="row">
<div class="col-12 col-lg-8">
<div class="detail__content--left">
<div>
<h1 class="font-subtitle font-base font-bold">Langganan Ruangguru makin hemat kalau dicicil pakai Kredivo! Dapatkan potongan hingga Rp 100 ribu</h1>
</div>
<div class="description-promo">
<p class="font-desc font-base font-thin font-grey">
Langganan Ruangguru sekarang makin murah dan gampang lho! Kamu bisa bayar Ruangguru dengan dicicil menggunakan pembayaran Kredivo! Eits, selain bisa dicicil, kamu juga
bisa dapatkan ekstra potongan 10% hingga Rp 100 ribu lho! Mau tunggu apa lagi? Yuk langganan sekarang!
</p>
</div>
</div>
<textarea id="wording-text" class="d-none" name="wording-text" rows="5" cols="10">Hii Squad! Promo berlaku hingga 25 Mei 2023 Yuk klaim promonya di </textarea>
<div class="detail__content--left">
<div class="syarat-ketentuan">
<div class="font-base font-desc">
<h2>Syarat dan Ketentuan</h2>
<h2>Promo Reguler</h2>
<ol>
<li>Periode promo 1 - 31 Maret 2022</li>
<li>Potongan 10% hingga 50 RIBU dengan minimum transaksi Rp 500.000</li>
<li>Program ini berlaku untuk metode transaksi cicilan 3, 6, dan 12 bulan</li>
<li>
Program ini berlaku untuk pembelian semua produk Ruangguru yang tersedia di website
<a href="https://bayar.ruangguru.com/" rel="noopener" target="_blank">https://bayar.ruangguru.com/</a>
</li>
<li>
Promo tersedia pada halaman “
<strong>Voucher belanja hemat</strong>
” di halaman pembayaran Kredivo dan harus di klik oleh pelanggan untuk mendapatkan potongan harga sesuai dengan promo
</li>
<li>Promo berlaku untuk semua pengguna Kredivo</li>
<li>Promo hanya berlaku 1 (satu) kali per penggunaan per bulan</li>
<li>Kuota promo terbatas</li>
<li>Jika transaksi dibatalkan, diskon ini tidak dapat digunakan lagi untuk transaksi berikutnya</li>
<li>
Kredivo dan Ruangguru berhak mengubah syarat dan ketentuan program sewaktu-waktu
<br />
<br />
</li>
</ol>
<h2>Promo Pengguna Baru Kredivo</h2>
<p>Syarat dan Ketentuan: </p>
<ol>
<li>Promo ini berlaku hingga 31 Maret 2023</li>
<li>Diskon 50% hingga 50 RIBU dengan min. transaksi 50 RIBU</li>
<li>Promo hanya berlaku bagi Pengguna Baru Kredivo</li>
<li>Berlaku untuk transaksi di merchant online</li>
<li>Kuota terbatas hanya 200 orang pengguna pertama selama periode promo berlangsung</li>
<li>Jika transaksi dibatalkan, diskon ini tidak dapat digunakan lagi untuk transaksi berikutnya</li>
</ol>
<p>Cara Pakai: </p>
<ol>
<li>Beli produk yang kamu inginkan di merchant online</li>
<li>Pilih Metode Pembayaran Kredivo dan login ke akun Kredivo-mu</li>
<li>Pilih tenor P30 cicilan 3, 6, atau 12 bulan</li>
<li>
Klik "Voucher Belanja Hemat" dan pilih voucher "
<strong>Diskon hingga 50 RIBU untuk Pengguna Baru</strong>
"
</li>
<li>
Selesaikan transaksimu dan diskon akan terpakai pada saat transaksi
<br />
<br />
</li>
</ol>
<h2>Kredivo Weekend Promo</h2>
<p><em>25 - 27 Maret 2023</em></p>
<p><strong>Promo gratis 1 Bulan Cicilan</strong></p>
<p><em>Syarat & Ketentuan:</em></p>
<ol>
<li>Gratis 1 bulan cicilan dengan minimum transaksi 5 JUTA berlaku khusus pembayaran tenor 12 bulan di semua merchant online & offline.</li>
<li>Jika pengguna terlambat melakukan pembayaran tagihan, promo gratis 1 (satu) bulan cicilan akan otomatis hangus.</li>
<li>Voucher promo hanya dapat digunakan 1 (satu) kali/pengguna/periode.</li>
<li>Tidak ada batasan kuota selama periode promo berlangsung.</li>
<li>Jika transaksi dibatalkan, promo ini tidak dapat digunakan lagi untuk transaksi berikutnya.</li>
</ol>
<p><strong>0% promo for 6 Months</strong></p>
<p><em>Syarat dan Ketentuan:</em></p>
<ol>
<li>
Promo cicilan 0% dengan minimum transaksi 500 RIBU berlaku khusus pembayaran cicilan dengan tenor 6 bulan di semua merchant online & offline Kredivo.
</li>
<li>Voucher promo hanya dapat digunakan 1 (Satu) kali oleh setiap pengguna selama periode berlangsung.</li>
<li>Setiap transaksi akan dikenakan biaya administrasi sebesar 6%.</li>
<li>
Jika pengguna terlambat melakukan pembayaran tagihan, pengguna akan dikenakan tambahan 1 bulan cicilan beserta bunga dan biaya keterlambatan yang berlaku.
</li>
<li>Tidak ada batasan kuota selasa periode promo berlangsung.</li>
<li>Jika transaksi dibatalkan, diskon ini tidak dapat digunakan lagi untuk transaksi berikutnya.</li>
</ol>
<p><em>Cara Pakai: </em></p>
<ol>
<li>Beli produk Ruangguru yang kamu inginkan.</li>
<li>Pilih Kredivo saat pembayaran dan login ke akun Kredivo-mu.</li>
<li>Pilih tenor cicilan 12 bulan untuk promo gratis 1 bulan cicilan dan cicilan 6 bulan untuk promo cicilan 0%.</li>
<li>
Klik "
<strong>Voucher belanja hemat</strong>
" dan lalu pilih voucher yang ingin kamu pakai. Promo akan otomatis terpakai di transaksimu.
<br />
<br />
</li>
</ol>
<h2>
Persyaratan Daftar Akun Kredivo
<span style="color: #000000"><span style="text-decoration: underline"></span></span>
</h2>
<ol>
<li>Warga Negara Indonesia</li>
<li>Foto KTP asli dan selfie</li>
<li>Foto NPWP asli</li>
<li>Usia minimum 18 tahun</li>
<li>Berpenghasilan minimum Rp3.000.000</li>
<li>
Saat ini Kredivo berlaku di Jabodetabek, Bandung, Surabaya, Semarang, Palembang, Medan, Bali, Yogyakarta, Solo, Makassar, Malang, Sukabumi, Cirebon, Balikpapan,
Batam, Purwakarta, Padang, Pekanbaru, Manado, Samarinda, Kediri, Tasikmalaya, Tegal, Lampung, Banjarmasin, dan Pontianak.
</li>
</ol>
</div>
</div>
</div>
</div>
<div class="col-12 col-lg-4">
<div class="detail__content--right custom-sticky">
<div class="share">
<div class="share__text">
<p class="font-base font-desc font-thin">Bagikan promo ini</p>
</div>
<div class="share__socmed">
<div class="share__socmed--img">
<a id="waQuote" href="#" target="_blank">
<img
loading="lazy"
width="32"
height="32"
class="h-auto"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Promo/Homepage%20Promo%202021/WhatsApp%20(1).svg"
alt="Icon Whatsapp"
/>
</a>
</div>
<div class="share__socmed--img">
<a id="fbQuote" href="#" target="_blank">
<img
loading="lazy"
width="32"
height="32"
class="h-auto"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Promo/Homepage%20Promo%202021/Facebook%20(3).svg"
alt="Icon Facebook"
/>
</a>
</div>
<div class="share__socmed--img">
<a id="twitterQuote" href="" target="_blank">
<img
loading="lazy"
width="32"
height="32"
class="h-auto"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Promo/Homepage%20Promo%202021/Twitter%20(2).svg"
alt="Icon Twitter"
/>
</a>
</div>
</div>
</div>
<div class="kode-periode">
<div class="kode-periode__discount">
<div class="kode-periode__discount--text">
<div class="ic">
<img
loading="lazy"
width="24"
height="24"
class="h-auto"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Promo/Homepage%20Promo%202021/ic_discount.svg"
alt="Icon Kode Diskon"
/>
</div>
<div class="txt">
<p class="font-small font-base font-thin">Kode diskon </p>
<p class="font-base font-bold font-desc">KREDIVORG</p>
</div>
</div>
<div class="box-clipboard">
<button class="btn-copy font-base font-bold font-desc" data-clipboard-text="KREDIVORG">Salin</button>
</div>
</div>
<div class="kode-periode__date">
<div class="ic">
<img
loading="lazy"
width="24"
height="24"
class="h-auto"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Promo/Homepage%20Promo%202021/ic_calender.svg"
alt="Icon Periode Promo"
/>
</div>
<div class="txt">
<p class="font-small font-base font-thin">Periode</p>
<p class="font-base font-bold font-desc">1 Maret 2023 - 31 Maret 2023</p>
</div>
</div>
<div class="kode-periode__cicil">
<div class="ic">
<img
loading="lazy"
width="24"
height="24"
class="h-auto"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/Cicilan%20Revamp%202021/dompet.svg"
alt="Icon Cicilan Promo"
/>
</div>
<div class="txt">
<p class="font-small font-base font-thin">Cicilan</p>
<p class="font-base font-bold font-desc">3x - 12x</p>
</div>
</div>
</div>
<div class="cta__promo--langganan">
<!--HubSpot Call-to-Action Code -->
<span class="hs-cta-wrapper" id="hs-cta-wrapper-796869da-e55e-43e8-a63c-6134403ebdf6">
<span class="hs-cta-node hs-cta-796869da-e55e-43e8-a63c-6134403ebdf6" id="hs-cta-796869da-e55e-43e8-a63c-6134403ebdf6">
<a href="https://cta.ruangguru.com/796869da-e55e-43e8-a63c-6134403ebdf6" target="_blank" rel="noopener">
<img
class="hs-cta-img"
id="hs-cta-img-796869da-e55e-43e8-a63c-6134403ebdf6"
style="border-width: 0px"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/cta/796869da-e55e-43e8-a63c-6134403ebdf6.png"
alt="Langganan"
/>
</a>
</span>
<script charset="utf-8" src="/hs/cta/cta/current.js"></script>
<script type="text/javascript">
hbspt.cta._relativeUrls = true;
hbspt.cta.load(2828691, '796869da-e55e-43e8-a63c-6134403ebdf6', { useNewLoader: 'true', region: 'na1' });
</script>
</span>
<!-- end HubSpot Call-to-Action Code -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="how-to">
<div class="page-center">
<div class="font-base font-desc">
<h2>Simak Tata Cara Daftar Akun Kredivo</h2>
<div class="hs-video-widget" data-hsv-embed-id="f8b98386-f47f-4e2c-8a65-69c1ed9ddd6d">
<img
src="https://api-na1.hubapi.com/video/v1/public/97532877967/poster?portalId=2828691"
style="max-width: 600px"
alt="HubSpot Video"
data-hsv-id="97532877967"
data-hsv-style="margin-left: 0px; margin-right: 0px; width: 100%; display: inline-block; max-width: 600px;"
data-hsv-width="600"
data-hsv-height="1066"
data-hsv-autoplay="false"
data-hsv-loop="false"
data-hsv-muted="false"
data-hsv-hidden-controls="false"
data-hsv-full-width="false"
/>
</div>
<p> </p>
<p> </p>
<p> </p>
<div class="hs-embed-wrapper">
<div class="hs-embed-content-wrapper">
<h2 class="font-base font-bold font-subtitle">Panduan Transaksi</h2>
<div class="how-to__step">
<div>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2022/Panduan/1%20.png" loading="lazy" />
<p>
1.
<strong>Daftar/Masuk</strong>
dengan menggunakan akun Ruangguru di halaman bayar.ruangguru.com
</p>
</div>
<div>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2022/Panduan/2.png" loading="lazy" />
<p>
2.
<strong>Pilih paket</strong>
yang ingin dibeli
</p>
</div>
<div>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2022/Panduan/3.png" alt="Promo-RG-1 1" loading="lazy" />
<p>
3.
<strong>Masukkan kode diskon</strong>
(bisa diganti kode diskon partner atau agent sales Ruangguru)
</p>
</div>
<div>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2022/Panduan/4.png" alt="Promo-RG-1 1" loading="lazy" />
<p>
4. Pilih
<strong>Kredivo</strong>
sebagai metode bayar
</p>
</div>
<div>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2022/Panduan/5.png" alt="Promo-RG-1 1" loading="lazy" />
<p>
5. Pilih
<strong>Tenor</strong>
bayar yang kamu inginkan lalu klik
<strong>Continue</strong>
</p>
</div>
<div>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2022/Panduan/6.png" alt="Promo-RG-1 1" loading="lazy" />
<p>
6. Pastikan kamu sudah memiliki Akun Kredivo, lalu masukan Nomor Handphone
<strong>yang telah terdaftar di Akun Kredivo-mu</strong>
</p>
</div>
<div>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2022/Panduan/7.png" alt="Promo-RG-1 1" loading="lazy" />
<p>
7. Pastikan Tenor yang kamu pilih sudah sesuai, lalu klik
<strong>Lanjutkan</strong>
</p>
</div>
<div>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2022/Panduan/8.png" alt="Promo-RG-1 1" loading="lazy" />
<p>8. Pilih metode untuk verifikasi akun Kredivo-mu</p>
</div>
<div>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2022/Panduan/9.png" alt="Promo-RG-1 1" loading="lazy" />
<p>
9. Promo potongan harga yang sedang berlaku tersedia pada
<strong>"Voucher belanja hemat"</strong>
dan harus di klik untuk dapat menggunakan promonya
</p>
</div>
<div>
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/New%20Payment/Kredivo/2022/Panduan/10.png" alt="Promo-RG-1 1" loading="lazy" />
<p>
10. Masukan kode OTP untuk menyelesaikan transaksi. Lalu klik
<strong>Bayar</strong>
</p>
</div>
</div>
<br />
</div>
</div>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script async src="https://platform.twitter.com/widgets.js"></script>
<!-- <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script> -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>
<!--for tooltip-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
<script>
$('.panduan-item-wrap').slick({
infinite: false,
dots: true,
slidesToShow: 1,
slidesToScroll: 1,
autoplay: false,
speed: 400,
arrows: true,
responsive: [
{
breakpoint: 9999,
settings: 'unslick',
},
{
breakpoint: 767.5,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
},
},
{
breakpoint: 1024.5,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
},
},
],
});
</script>
<script>
//tooltip
//$('.btn-copy').tooltip({
// trigger: 'click',
// placement: 'top'
//});
function setTooltip(elem, message) {
$(elem).attr('title', message).tooltip('show');
}
function hideTooltip(elem) {
setTimeout(function () {
$(elem).removeAttr('title').tooltip('hide');
}, 2000);
}
//clipboard
var clipboard = new ClipboardJS('.btn-copy');
clipboard.on('success', function (e) {
// console.info('Action:', e.action);
// console.info('Text:', e.text);
// console.info('Trigger:', e.trigger);
setTooltip(e.trigger, 'Copied!');
hideTooltip(e.trigger);
e.clearSelection();
});
clipboard.on('error', function (e) {
// console.error('Action:', e.action);
// console.error('Trigger:', e.trigger);
setTooltip(e.trigger, 'Failed!');
hideTooltip(e.trigger);
});
//for wa
$(document).ready(function () {
// if page detail show or page with class detail length = 1
if ($('.detail').length) {
var wordingText = '';
//if wording-text not empty
if ($('#wording-text').length) {
wordingText = $('#wording-text').text();
//console.log("wordingText: " + wordingText);
}
var waUrl = window.location.href;
// var waLink = "https://api.whatsapp.com/send?phone=&text=Program%20Promo%20Ruangguru%0D%0A%0D%0ARaih%20kesempatan%20untuk%20dapat%20diskon%20hingga%2080%25%2E%20Klik%20link%20di%20bawah%20untuk%20klaim%20promo%0D%0A%0D%0A" + waUrl;
var waLink = 'https://api.whatsapp.com/send?phone=&text=' + wordingText + '%0D%0A%0D%0A' + waUrl;
document.getElementById('waQuote').href = waLink;
// for fb
var fbUrl = window.location.href;
// var fbLink = "https://www.facebook.com/share.php?u=example.com"e=Program%20Promo%20Ruangguru%0D%0A%0D%0ARaih%20kesempatan%20untuk%20dapat%20diskon%20hingga%2080%25%2E%20Klik%20link%20di%20bawah%20untuk%20klaim%20promo%0D%0A%0D%0A" + fbUrl;
var fbLink = 'https://www.facebook.com/share.php?u=' + fbUrl + '"e=' + wordingText;
document.getElementById('fbQuote').href = fbLink;
// for twitter
var twitterUrl = window.location.href;
// var twitterLink = "https://twitter.com/intent/tweet?text=Program%20Promo%20Ruangguru%0D%0A%0D%0ARaih%20kesempatan%20untuk%20dapat%20diskon%20hingga%2080%25%2E%20Klik%20link%20di%20bawah%20untuk%20klaim%20promo%0D%0A%0D%0A" + twitterUrl;
var twitterLink = 'https://twitter.com/intent/tweet?text=' + wordingText + '%0D%0A%0D%0A' + twitterUrl;
document.getElementById('twitterQuote').href = twitterLink;
}
var imgCustomClickable = $('.img-custom-clickable');
if (imgCustomClickable.length) {
imgCustomClickable.each(function (index, object) {
//console.log(index);
//console.log(object);
//console.log($(this).attr('data-img-promo-url'));
$(this).attr('title', 'Lihat detail');
$(this).on('click', function () {
window.open($(this).attr('data-img-promo-url'), '_self');
});
});
}
});
$('.how-to__step').slick({
infinite: false,
dots: false,
slidesToShow: 1,
slidesToScroll: 1,
autoplay: false,
speed: 400,
arrows: true,
responsive: [
{
breakpoint: 9999,
settings: 'unslick',
},
{
breakpoint: 767.5,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
},
},
{
breakpoint: 1024.5,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
},
},
],
});
</script>
<script>
/* global define, pageLinkClass */
(function (global, $) {
if (typeof $ === 'undefined') {
throwError('Pagination requires jQuery.');
}
var pluginName = 'pagination';
var pluginHookMethod = 'addHook';
var eventPrefix = '__pagination-';
// Conflict, use backup
if ($.fn.pagination) {
pluginName = 'pagination2';
}
$.fn[pluginName] = function (options) {
if (typeof options === 'undefined') {
return this;
}
var container = $(this);
var attributes = $.extend({}, $.fn[pluginName].defaults, options);
var pagination = {
initialize: function () {
var self = this;
// Cache attributes of current instance
if (!container.data('pagination')) {
container.data('pagination', {});
}
if (self.callHook('beforeInit') === false) return;
// Pagination has been initialized, destroy it
if (container.data('pagination').initialized) {
$('.paginationjs', container).remove();
}
// Whether to disable Pagination at the initialization
self.disabled = !!attributes.disabled;
// Model will be passed to the callback function
var model = (self.model = {
pageRange: attributes.pageRange,
pageSize: attributes.pageSize,
});
// dataSource`s type is unknown, parse it to find true data
self.parseDataSource(attributes.dataSource, function (dataSource) {
// Currently in asynchronous mode
self.isAsync = Helpers.isString(dataSource);
if (Helpers.isArray(dataSource)) {
model.totalNumber = attributes.totalNumber = dataSource.length;
}
// Currently in asynchronous mode and a totalNumberLocator is specified
self.isDynamicTotalNumber = self.isAsync && attributes.totalNumberLocator;
var el = self.render(true);
// Add extra className to the pagination element
if (attributes.className) {
el.addClass(attributes.className);
}
model.el = el;
// Append/prepend pagination element to the container
container[attributes.position === 'bottom' ? 'append' : 'prepend'](el);
// Bind events
self.observer();
// Pagination is currently initialized
container.data('pagination').initialized = true;
// Will be invoked after initialized
self.callHook('afterInit', el);
});
},
render: function (isBoot) {
var self = this;
var model = self.model;
var el = model.el || $('<div class="paginationjs"></div>');
var isForced = isBoot !== true;
self.callHook('beforeRender', isForced);
var currentPage = model.pageNumber || attributes.pageNumber;
var pageRange = attributes.pageRange || 0;
var totalPage = self.getTotalPage();
var rangeStart = currentPage - pageRange;
var rangeEnd = currentPage + pageRange;
if (rangeEnd > totalPage) {
rangeEnd = totalPage;
rangeStart = totalPage - pageRange * 2;
rangeStart = rangeStart < 1 ? 1 : rangeStart;
}
if (rangeStart <= 1) {
rangeStart = 1;
rangeEnd = Math.min(pageRange * 2 + 1, totalPage);
}
el.html(
self.generateHTML({
currentPage: currentPage,
pageRange: pageRange,
rangeStart: rangeStart,
rangeEnd: rangeEnd,
})
);
// There is only one page
if (attributes.hideWhenLessThanOnePage) {
el[totalPage <= 1 ? 'hide' : 'show']();
}
self.callHook('afterRender', isForced);
return el;
},
// Generate HTML of the pages
generatePageNumbersHTML: function (args) {
var self = this;
var currentPage = args.currentPage;
var totalPage = self.getTotalPage();
var rangeStart = args.rangeStart;
var rangeEnd = args.rangeEnd;
var html = '';
var i;
var pageLink = attributes.pageLink;
var pageLinkClass = attributes.pageLinkClass;
var ellipsisText = attributes.ellipsisText;
var classPrefix = attributes.classPrefix;
var activeClassName = attributes.activeClassName;
var customActiveClass = attributes.customActiveClass;
var customPageLinkActiveClass = attributes.customPageLinkActiveClass;
var customListClass = attributes.customListClass;
var disableClassName = attributes.disableClassName;
// Disable page range, display all the pages
if (attributes.pageRange === null) {
for (i = 1; i <= totalPage; i++) {
if (i === currentPage) {
html +=
'<li class="' +
classPrefix +
'-page J-paginationjs-page page-item ' +
activeClassName +
' ' +
customListClass +
' ' +
customActiveClass +
'" data-num="' +
i +
'"><a class="page-link ' +
pageLinkClass +
' ' +
customPageLinkActiveClass +
'">' +
i +
'<\/a><\/li>';
} else {
html +=
'<li class="' +
classPrefix +
'-page J-paginationjs-page page-item ' +
customListClass +
'" data-num="' +
i +
'"><a href="' +
pageLink +
'" class="page-link ' +
pageLinkClass +
'">' +
i +
'<\/a><\/li>';
}
}
return html;
}
if (rangeStart <= 3) {
for (i = 1; i < rangeStart; i++) {
if (i === currentPage) {
html +=
'<li class="' +
classPrefix +
'-page J-paginationjs-page page-item ' +
activeClassName +
' ' +
customListClass +
' ' +
customActiveClass +
'" data-num="' +
i +
'"><a class="page-link ' +
customPageLinkActiveClass +
'">' +
i +
'<\/a><\/li>';
} else {
html +=
'<li class="' +
classPrefix +
'-page J-paginationjs-page page-item ' +
customListClass +
'" data-num="' +
i +
'"><a href="' +
pageLink +
'" class="page-link ' +
pageLinkClass +
'">' +
i +
'<\/a><\/li>';
}
}
} else {
if (attributes.showFirstOnEllipsisShow) {
html +=
'<li class="' +
classPrefix +
'-page ' +
classPrefix +
'-first J-paginationjs-page page-item ' +
customListClass +
'" data-num="1"><a href="' +
pageLink +
'" class="page-link ' +
pageLinkClass +
'">1<\/a><\/li>';
}
html +=
'<li class="' + classPrefix + '-ellipsis ' + disableClassName + ' ' + customListClass + '"><a class="page-link ' + pageLinkClass + '">' + ellipsisText + '<\/a><\/li>';
}
for (i = rangeStart; i <= rangeEnd; i++) {
if (i === currentPage) {
html +=
'<li class="' +
classPrefix +
'-page J-paginationjs-page page-item ' +
activeClassName +
' ' +
customListClass +
' ' +
customActiveClass +
'" data-num="' +
i +
'"><a class="page-link ' +
customPageLinkActiveClass +
'">' +
i +
'<\/a><\/li>';
} else {
html +=
'<li class="' +
classPrefix +
'-page J-paginationjs-page page-item ' +
customListClass +
'" data-num="' +
i +
'"><a href="' +
pageLink +
'" class="page-link ' +
pageLinkClass +
'">' +
i +
'<\/a><\/li>';
}
}
if (rangeEnd >= totalPage - 2) {
for (i = rangeEnd + 1; i <= totalPage; i++) {
html +=
'<li class="' +
classPrefix +
'-page J-paginationjs-page page-item ' +
customListClass +
'" data-num="' +
i +
'"><a href="' +
pageLink +
'" class="page-link ' +
pageLinkClass +
'">' +
i +
'<\/a><\/li>';
}
} else {
html +=
'<li class="' + classPrefix + '-ellipsis ' + disableClassName + ' ' + customListClass + '"><a class="page-link ' + pageLinkClass + '">' + ellipsisText + '<\/a><\/li>';
if (attributes.showLastOnEllipsisShow) {
html +=
'<li class="' +
classPrefix +
'-page ' +
classPrefix +
'-last J-paginationjs-page page-item ' +
customListClass +
'" data-num="' +
totalPage +
'"><a href="' +
pageLink +
'" class="page-link ' +
pageLinkClass +
'">' +
totalPage +
'<\/a><\/li>';
}
}
return html;
},
// Generate HTML content from the template
generateHTML: function (args) {
var self = this;
var currentPage = args.currentPage;
var totalPage = self.getTotalPage();
var totalNumber = self.getTotalNumber();
var showPrevious = attributes.showPrevious;
var showNext = attributes.showNext;
var showPageNumbers = attributes.showPageNumbers;
var showNavigator = attributes.showNavigator;
var showGoInput = attributes.showGoInput;
var showGoButton = attributes.showGoButton;
var pageLink = attributes.pageLink;
var pageLinkClass = attributes.pageLinkClass;
var prevText = attributes.prevText;
var nextText = attributes.nextText;
var prevTextTitle = attributes.prevTextTitle;
var nextTextTitle = attributes.nextTextTitle;
var goButtonText = attributes.goButtonText;
var classPrefix = attributes.classPrefix;
var customListClass = attributes.customListClass;
var disableClassName = attributes.disableClassName;
var ulClassName = attributes.ulClassName;
var html = '';
var goInput = '<input type="text" class="J-paginationjs-go-pagenumber">';
var goButton = '<input type="button" class="J-paginationjs-go-button" value="' + goButtonText + '">';
var formattedString;
var formatNavigator = $.isFunction(attributes.formatNavigator) ? attributes.formatNavigator(currentPage, totalPage, totalNumber) : attributes.formatNavigator;
var formatGoInput = $.isFunction(attributes.formatGoInput) ? attributes.formatGoInput(goInput, currentPage, totalPage, totalNumber) : attributes.formatGoInput;
var formatGoButton = $.isFunction(attributes.formatGoButton) ? attributes.formatGoButton(goButton, currentPage, totalPage, totalNumber) : attributes.formatGoButton;
var autoHidePrevious = $.isFunction(attributes.autoHidePrevious) ? attributes.autoHidePrevious() : attributes.autoHidePrevious;
var autoHideNext = $.isFunction(attributes.autoHideNext) ? attributes.autoHideNext() : attributes.autoHideNext;
var header = $.isFunction(attributes.header) ? attributes.header(currentPage, totalPage, totalNumber) : attributes.header;
var footer = $.isFunction(attributes.footer) ? attributes.footer(currentPage, totalPage, totalNumber) : attributes.footer;
// Whether to display header
if (header) {
formattedString = self.replaceVariables(header, {
currentPage: currentPage,
totalPage: totalPage,
totalNumber: totalNumber,
});
html += formattedString;
}
if (showPrevious || showPageNumbers || showNext) {
html += '<div class="paginationjs-pages">';
if (ulClassName) {
html += '<ul class="pagination m-0 ' + ulClassName + '">';
} else {
html += '<ul class="pagination m-0">';
}
// Whether to display the Previous button
if (showPrevious) {
if (currentPage <= 1) {
if (!autoHidePrevious) {
html += '<li class="' + classPrefix + '-prev page-item ' + disableClassName + '"><a class="page-link ' + pageLinkClass + '">' + prevText + '<\/a><\/li>';
}
} else {
html +=
'<li class="' +
classPrefix +
'-prev J-paginationjs-previous page-item" data-num="' +
(currentPage - 1) +
'" title="' +
prevTextTitle +
'"><a href="' +
pageLink +
'" class="page-link ' +
pageLinkClass +
'">' +
prevText +
'<\/a><\/li>';
}
}
// Whether to display the pages
if (showPageNumbers) {
html += self.generatePageNumbersHTML(args);
}
// Whether to display the Next button
if (showNext) {
if (currentPage >= totalPage) {
if (!autoHideNext) {
html += '<li class="' + classPrefix + '-next page-item ' + disableClassName + '"><a class="page-link ' + pageLinkClass + '">' + nextText + '<\/a><\/li>';
}
} else {
html +=
'<li class="' +
classPrefix +
'-next J-paginationjs-next page-item" data-num="' +
(currentPage + 1) +
'" title="' +
nextTextTitle +
'"><a href="' +
pageLink +
'" class="page-link ' +
pageLinkClass +
'">' +
nextText +
'<\/a><\/li>';
}
}
html += '<\/ul><\/div>';
}
// Whether to display the navigator
if (showNavigator) {
if (formatNavigator) {
formattedString = self.replaceVariables(formatNavigator, {
currentPage: currentPage,
totalPage: totalPage,
totalNumber: totalNumber,
});
html += '<div class="' + classPrefix + '-nav J-paginationjs-nav">' + formattedString + '<\/div>';
}
}
// Whether to display the Go input
if (showGoInput) {
if (formatGoInput) {
formattedString = self.replaceVariables(formatGoInput, {
currentPage: currentPage,
totalPage: totalPage,
totalNumber: totalNumber,
input: goInput,
});
html += '<div class="' + classPrefix + '-go-input">' + formattedString + '</div>';
}
}
// Whether to display the Go button
if (showGoButton) {
if (formatGoButton) {
formattedString = self.replaceVariables(formatGoButton, {
currentPage: currentPage,
totalPage: totalPage,
totalNumber: totalNumber,
button: goButton,
});
html += '<div class="' + classPrefix + '-go-button">' + formattedString + '</div>';
}
}
// Whether to display footer
if (footer) {
formattedString = self.replaceVariables(footer, {
currentPage: currentPage,
totalPage: totalPage,
totalNumber: totalNumber,
});
html += formattedString;
}
return html;
},
// Find totalNumber from the remote response
// Only available in asynchronous mode
findTotalNumberFromRemoteResponse: function (response) {
var self = this;
self.model.totalNumber = attributes.totalNumberLocator(response);
},
// Go to the specified page
go: function (number, callback) {
var self = this;
var model = self.model;
if (self.disabled) return;
var pageNumber = number;
pageNumber = parseInt(pageNumber);
// Page number is out of bounds
if (!pageNumber || pageNumber < 1) return;
var pageSize = attributes.pageSize;
var totalNumber = self.getTotalNumber();
var totalPage = self.getTotalPage();
// Page number is out of bounds
if (totalNumber > 0) {
if (pageNumber > totalPage) return;
}
// Pick data fragment in synchronous mode
if (!self.isAsync) {
render(self.getDataFragment(pageNumber));
return;
}
var postData = {};
var alias = attributes.alias || {};
postData[alias.pageSize ? alias.pageSize : 'pageSize'] = pageSize;
postData[alias.pageNumber ? alias.pageNumber : 'pageNumber'] = pageNumber;
var ajaxParams = $.isFunction(attributes.ajax) ? attributes.ajax() : attributes.ajax;
var formatAjaxParams = {
type: 'get',
cache: false,
data: {},
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
dataType: 'json',
async: true,
};
$.extend(true, formatAjaxParams, ajaxParams);
$.extend(formatAjaxParams.data, postData);
formatAjaxParams.url = attributes.dataSource;
formatAjaxParams.success = function (response) {
if (self.isDynamicTotalNumber) {
self.findTotalNumberFromRemoteResponse(response);
} else {
self.model.totalNumber = attributes.totalNumber;
}
var finalData = self.filterDataByLocator(response);
render(finalData);
};
formatAjaxParams.error = function (jqXHR, textStatus, errorThrown) {
attributes.formatAjaxError && attributes.formatAjaxError(jqXHR, textStatus, errorThrown);
self.enable();
};
self.disable();
$.ajax(formatAjaxParams);
function render(data) {
// Will be invoked before paging
if (self.callHook('beforePaging', pageNumber) === false) return false;
// Pagination direction
model.direction = typeof model.pageNumber === 'undefined' ? 0 : pageNumber > model.pageNumber ? 1 : -1;
model.pageNumber = pageNumber;
self.render();
if (self.disabled && self.isAsync) {
// enable pagination
self.enable();
}
// cache model data
container.data('pagination').model = model;
// format result data before callback invoked
if (attributes.formatResult) {
var cloneData = $.extend(true, [], data);
if (!Helpers.isArray((data = attributes.formatResult(cloneData)))) {
data = cloneData;
}
}
container.data('pagination').currentPageData = data;
// invoke callback
self.doCallback(data, callback);
self.callHook('afterPaging', pageNumber);
// pageNumber now is the first page
if (pageNumber === 1) {
self.callHook('afterIsFirstPage');
}
// pageNumber now is the last page
if (pageNumber === self.getTotalPage()) {
self.callHook('afterIsLastPage');
}
}
},
doCallback: function (data, customCallback) {
var self = this;
var model = self.model;
if ($.isFunction(customCallback)) {
customCallback(data, model);
} else if ($.isFunction(attributes.callback)) {
attributes.callback(data, model);
}
},
destroy: function () {
// Before destroy
if (this.callHook('beforeDestroy') === false) return;
this.model.el.remove();
container.off();
// Remove style element
$('#paginationjs-style').remove();
// After destroyed
this.callHook('afterDestroy');
},
previous: function (callback) {
this.go(this.model.pageNumber - 1, callback);
},
next: function (callback) {
this.go(this.model.pageNumber + 1, callback);
},
disable: function () {
var self = this;
var source = self.isAsync ? 'async' : 'sync';
// Before disabled
if (self.callHook('beforeDisable', source) === false) return;
self.disabled = true;
self.model.disabled = true;
// After disabled
self.callHook('afterDisable', source);
},
enable: function () {
var self = this;
var source = self.isAsync ? 'async' : 'sync';
// Before enabled
if (self.callHook('beforeEnable', source) === false) return;
self.disabled = false;
self.model.disabled = false;
// After enabled
self.callHook('afterEnable', source);
},
refresh: function (callback) {
this.go(this.model.pageNumber, callback);
},
show: function () {
var self = this;
if (self.model.el.is(':visible')) return;
self.model.el.show();
},
hide: function () {
var self = this;
if (!self.model.el.is(':visible')) return;
self.model.el.hide();
},
// Parse variables in the template
replaceVariables: function (template, variables) {
var formattedString;
for (var key in variables) {
var value = variables[key];
var regexp = new RegExp('<%=\\s*' + key + '\\s*%>', 'img');
formattedString = (formattedString || template).replace(regexp, value);
}
return formattedString;
},
// Get data fragment
getDataFragment: function (number) {
var pageSize = attributes.pageSize;
var dataSource = attributes.dataSource;
var totalNumber = this.getTotalNumber();
var start = pageSize * (number - 1) + 1;
var end = Math.min(number * pageSize, totalNumber);
return dataSource.slice(start - 1, end);
},
// Get total number
getTotalNumber: function () {
return this.model.totalNumber || attributes.totalNumber || 0;
},
// Get total page
getTotalPage: function () {
return Math.ceil(this.getTotalNumber() / attributes.pageSize);
},
// Get locator
getLocator: function (locator) {
var result;
if (typeof locator === 'string') {
result = locator;
} else if ($.isFunction(locator)) {
result = locator();
} else {
throwError('"locator" is incorrect. (String | Function)');
}
return result;
},
// Filter data by "locator"
filterDataByLocator: function (dataSource) {
var locator = this.getLocator(attributes.locator);
var filteredData;
// Datasource is an Object, use "locator" to locate the true data
if (Helpers.isObject(dataSource)) {
try {
$.each(locator.split('.'), function (index, item) {
filteredData = (filteredData ? filteredData : dataSource)[item];
});
} catch (e) {}
if (!filteredData) {
throwError('dataSource.' + locator + ' is undefined.');
} else if (!Helpers.isArray(filteredData)) {
throwError('dataSource.' + locator + ' must be an Array.');
}
}
return filteredData || dataSource;
},
// Parse dataSource
parseDataSource: function (dataSource, callback) {
var self = this;
if (Helpers.isObject(dataSource)) {
callback((attributes.dataSource = self.filterDataByLocator(dataSource)));
} else if (Helpers.isArray(dataSource)) {
callback((attributes.dataSource = dataSource));
} else if ($.isFunction(dataSource)) {
attributes.dataSource(function (data) {
if (!Helpers.isArray(data)) {
throwError('The parameter of "done" Function should be an Array.');
}
self.parseDataSource.call(self, data, callback);
});
} else if (typeof dataSource === 'string') {
if (/^https?|file:/.test(dataSource)) {
attributes.ajaxDataType = 'jsonp';
}
callback(dataSource);
} else {
throwError('Unexpected type of "dataSource".');
}
},
callHook: function (hook) {
var paginationData = container.data('pagination');
var result;
var args = Array.prototype.slice.apply(arguments);
args.shift();
if (attributes[hook] && $.isFunction(attributes[hook])) {
if (attributes[hook].apply(global, args) === false) {
result = false;
}
}
if (paginationData.hooks && paginationData.hooks[hook]) {
$.each(paginationData.hooks[hook], function (index, item) {
if (item.apply(global, args) === false) {
result = false;
}
});
}
return result !== false;
},
observer: function () {
var self = this;
var el = self.model.el;
// Go to specified page number
container.on(eventPrefix + 'go', function (event, pageNumber, done) {
pageNumber = parseInt($.trim(pageNumber));
if (!pageNumber) return;
if (!$.isNumeric(pageNumber)) {
throwError('"pageNumber" is incorrect. (Number)');
}
self.go(pageNumber, done);
});
// Page number button click
el.delegate('.J-paginationjs-page', 'click', function (event) {
var current = $(event.currentTarget);
var pageNumber = $.trim(current.attr('data-num'));
if (!pageNumber || current.hasClass(attributes.disableClassName) || current.hasClass(attributes.activeClassName)) return;
// Before page button clicked
if (self.callHook('beforePageOnClick', event, pageNumber) === false) return false;
self.go(pageNumber);
// After page button clicked
self.callHook('afterPageOnClick', event, pageNumber);
if (!attributes.pageLink) return false;
});
// Previous button click
el.delegate('.J-paginationjs-previous', 'click', function (event) {
var current = $(event.currentTarget);
var pageNumber = $.trim(current.attr('data-num'));
if (!pageNumber || current.hasClass(attributes.disableClassName)) return;
// Before previous clicked
if (self.callHook('beforePreviousOnClick', event, pageNumber) === false) return false;
self.go(pageNumber);
// After previous clicked
self.callHook('afterPreviousOnClick', event, pageNumber);
if (!attributes.pageLink) return false;
});
// Next button click
el.delegate('.J-paginationjs-next', 'click', function (event) {
var current = $(event.currentTarget);
var pageNumber = $.trim(current.attr('data-num'));
if (!pageNumber || current.hasClass(attributes.disableClassName)) return;
// Before next clicked
if (self.callHook('beforeNextOnClick', event, pageNumber) === false) return false;
self.go(pageNumber);
// After next clicked
self.callHook('afterNextOnClick', event, pageNumber);
if (!attributes.pageLink) return false;
});
// Go button click
el.delegate('.J-paginationjs-go-button', 'click', function (event) {
var pageNumber = $('.J-paginationjs-go-pagenumber', el).val();
// Before Go button clicked
if (self.callHook('beforeGoButtonOnClick', event, pageNumber) === false) return false;
container.trigger(eventPrefix + 'go', pageNumber);
// After Go button clicked
self.callHook('afterGoButtonOnClick', event, pageNumber);
});
// go input enter
el.delegate('.J-paginationjs-go-pagenumber', 'keyup', function (event) {
if (event.which === 13) {
var pageNumber = $(event.currentTarget).val();
// Before Go input enter
if (self.callHook('beforeGoInputOnEnter', event, pageNumber) === false) return false;
container.trigger(eventPrefix + 'go', pageNumber);
// Regains focus
$('.J-paginationjs-go-pagenumber', el).focus();
// After Go input enter
self.callHook('afterGoInputOnEnter', event, pageNumber);
}
});
// Previous page
container.on(eventPrefix + 'previous', function (event, done) {
self.previous(done);
});
// Next page
container.on(eventPrefix + 'next', function (event, done) {
self.next(done);
});
// Disable
container.on(eventPrefix + 'disable', function () {
self.disable();
});
// Enable
container.on(eventPrefix + 'enable', function () {
self.enable();
});
// Refresh
container.on(eventPrefix + 'refresh', function (event, done) {
self.refresh(done);
});
// Show
container.on(eventPrefix + 'show', function () {
self.show();
});
// Hide
container.on(eventPrefix + 'hide', function () {
self.hide();
});
// Destroy
container.on(eventPrefix + 'destroy', function () {
self.destroy();
});
// Whether to load the default page
var validTotalPage = Math.max(self.getTotalPage(), 1);
var defaultPageNumber = attributes.pageNumber;
// Default pageNumber should be 1 when totalNumber is dynamic
if (self.isDynamicTotalNumber) {
defaultPageNumber = 1;
}
if (attributes.triggerPagingOnInit) {
container.trigger(eventPrefix + 'go', Math.min(defaultPageNumber, validTotalPage));
}
},
};
// Pagination has been initialized
if (container.data('pagination') && container.data('pagination').initialized === true) {
// Handle events
if ($.isNumeric(options)) {
// eg: container.pagination(5)
container.trigger.call(this, eventPrefix + 'go', options, arguments[1]);
return this;
} else if (typeof options === 'string') {
var args = Array.prototype.slice.apply(arguments);
args[0] = eventPrefix + args[0];
switch (options) {
case 'previous':
case 'next':
case 'go':
case 'disable':
case 'enable':
case 'refresh':
case 'show':
case 'hide':
case 'destroy':
container.trigger.apply(this, args);
break;
// Get selected page number
case 'getSelectedPageNum':
if (container.data('pagination').model) {
return container.data('pagination').model.pageNumber;
} else {
return container.data('pagination').attributes.pageNumber;
}
// Get total page
case 'getTotalPage':
return Math.ceil(container.data('pagination').model.totalNumber / container.data('pagination').model.pageSize);
// Get data of selected page
case 'getSelectedPageData':
return container.data('pagination').currentPageData;
// Whether pagination has been disabled
case 'isDisabled':
return container.data('pagination').model.disabled === true;
default:
throwError('Unknown action: ' + options);
}
return this;
} else {
// Uninstall the old instance before initializing a new one
uninstallPlugin(container);
}
} else {
if (!Helpers.isObject(options)) throwError('Illegal options');
}
// Check parameters
parameterChecker(attributes);
pagination.initialize();
return this;
};
// Instance defaults
$.fn[pluginName].defaults = {
// Data source
// Array | String | Function | Object
//dataSource: '',
// String | Function
//locator: 'data',
// Find totalNumber from remote response, the totalNumber will be ignored when totalNumberLocator is specified
// Function
//totalNumberLocator: function() {},
// Total entries
totalNumber: 0,
// Default page
pageNumber: 1,
// entries of per page
pageSize: 10,
// Page range (pages on both sides of the current page)
pageRange: 2,
// Whether to display the 'Previous' button
showPrevious: true,
// Whether to display the 'Next' button
showNext: true,
// Whether to display the page buttons
showPageNumbers: true,
showNavigator: false,
// Whether to display the 'Go' input
showGoInput: false,
// Whether to display the 'Go' button
showGoButton: false,
// Page link
pageLink: '',
// Page link Class
pageLinkClass: '',
// Custom link Class
customLinkClass: '',
// 'Previous' text
prevText: '«',
// 'Next' text
nextText: '»',
// 'Previous' text title
prevTextTitle: 'Previous page',
// 'Next' text title
nextTextTitle: 'Next page',
// Ellipsis text
ellipsisText: '...',
// 'Go' button text
goButtonText: 'Go',
// Additional className for Pagination element
//className: '',
classPrefix: 'paginationjs',
// Default active class
activeClassName: 'active',
// Custom active class
customActiveClass: '',
// Custom page link active class
customPageLinkActiveClass: '',
// Default disable class
disableClassName: 'disabled',
//ulClassName: '',
// Whether to insert inline style
inlineStyle: true,
formatNavigator: '<%= currentPage %> / <%= totalPage %>',
formatGoInput: '<%= input %>',
formatGoButton: '<%= button %>',
// Pagination element's position in the container
position: 'bottom',
// Auto hide previous button when current page is the first page
autoHidePrevious: false,
// Auto hide next button when current page is the last page
autoHideNext: false,
//header: '',
//footer: '',
// Aliases for custom pagination parameters
//alias: {},
// Whether to trigger pagination at initialization
triggerPagingOnInit: true,
// Whether to hide pagination when less than one page
hideWhenLessThanOnePage: false,
showFirstOnEllipsisShow: true,
showLastOnEllipsisShow: true,
// Pagination callback
callback: function () {},
};
// Hook register
$.fn[pluginHookMethod] = function (hook, callback) {
if (arguments.length < 2) {
throwError('Missing argument.');
}
if (!$.isFunction(callback)) {
throwError('callback must be a function.');
}
var container = $(this);
var paginationData = container.data('pagination');
if (!paginationData) {
container.data('pagination', {});
paginationData = container.data('pagination');
}
!paginationData.hooks && (paginationData.hooks = {});
//paginationData.hooks[hook] = callback;
paginationData.hooks[hook] = paginationData.hooks[hook] || [];
paginationData.hooks[hook].push(callback);
};
// Static method
$[pluginName] = function (selector, options) {
if (arguments.length < 2) {
throwError('Requires two parameters.');
}
var container;
// 'selector' is a jQuery object
if (typeof selector !== 'string' && selector instanceof jQuery) {
container = selector;
} else {
container = $(selector);
}
if (!container.length) return;
container.pagination(options);
return container;
};
// ============================================================
// helpers
// ============================================================
var Helpers = {};
// Throw error
function throwError(content) {
throw new Error('Pagination: ' + content);
}
// Check parameters
function parameterChecker(args) {
if (!args.dataSource) {
throwError('"dataSource" is required.');
}
if (typeof args.dataSource === 'string') {
if (args.totalNumberLocator === undefined) {
if (args.totalNumber === undefined) {
throwError('"totalNumber" is required.');
} else if (!$.isNumeric(args.totalNumber)) {
throwError('"totalNumber" is incorrect. (Number)');
}
} else {
if (!$.isFunction(args.totalNumberLocator)) {
throwError('"totalNumberLocator" should be a Function.');
}
}
} else if (Helpers.isObject(args.dataSource)) {
if (typeof args.locator === 'undefined') {
throwError('"dataSource" is an Object, please specify "locator".');
} else if (typeof args.locator !== 'string' && !$.isFunction(args.locator)) {
throwError('' + args.locator + ' is incorrect. (String | Function)');
}
}
if (args.formatResult !== undefined && !$.isFunction(args.formatResult)) {
throwError('"formatResult" should be a Function.');
}
}
// uninstall plugin
function uninstallPlugin(target) {
var events = ['go', 'previous', 'next', 'disable', 'enable', 'refresh', 'show', 'hide', 'destroy'];
// off events of old instance
$.each(events, function (index, value) {
target.off(eventPrefix + value);
});
// reset pagination data
target.data('pagination', {});
// remove old
$('.paginationjs', target).remove();
}
// Object type detection
function getObjectType(object, tmp) {
return ((tmp = typeof object) === 'object' ? (object === null && 'null') || Object.prototype.toString.call(object).slice(8, -1) : tmp).toLowerCase();
}
$.each(['Object', 'Array', 'String'], function (index, name) {
Helpers['is' + name] = function (object) {
return getObjectType(object) === name.toLowerCase();
};
});
/*
* export via AMD or CommonJS
* */
if (typeof define === 'function' && define.amd) {
define(function () {
return $;
});
}
})(this, window.jQuery);
</script>
<script>
/* CICILAN FUNCTION */
//filtering dan sorting seluruh item cicilan
function sort_date(a, b) {
var amyDate = a.split('-');
var aNewDate = new Date(amyDate[1] + ',' + amyDate[0] + ',' + amyDate[2]).getTime();
var bmyDate = b.split('-');
var bNewDate = new Date(bmyDate[1] + ',' + bmyDate[0] + ',' + bmyDate[2]).getTime();
return aNewDate < bNewDate ? -1 : aNewDate > bNewDate ? 1 : 0;
}
function get_items(item_cicilan) {
var show_items = [];
for (var z = 0; z < item_cicilan.length; z++) {
var items = $('.promo__item[counter=' + z + ']')[0];
show_items.push(items);
}
return show_items;
}
function check_slick() {
var body_width = $('body').width() * 0.97;
// console.log("scrollwidth: " + $(".filtered-wrap").get(0).scrollWidth + " || width: " + body_width);
if ($('.filtered-wrap').get(0).scrollWidth > body_width) {
if ($('#sebelum').length == 0) {
$('.filtered-wrap').prepend(
"<img id='sebelum' src='https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/Cicilan%20Revamp%202021/left_arrow.svg' onclick='$(\".filtered-wrap\").animate({scrollLeft: -900}, 300)'>"
);
$('.filtered-wrap').append(
"<img id='sesudah' src='https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/Cicilan%20Revamp%202021/right_arrow.svg' onclick='$(\".filtered-wrap\").animate({scrollLeft: 900}, 300)'>"
);
}
$('.filtered-wrap').addClass('showing');
} else {
$('#sebelum').remove();
$('#sesudah').remove();
$('.filtered-wrap').removeClass('showing');
}
}
function geser(paramny) {
var max_scroll = 1716;
var jumlah_ulang = 1716 / $('body').width();
// console.log("jumlah_ulang raw: " + jumlah_ulang);
// console.log("jumlah_ulang : " + Math.ceil(jumlah_ulang));
var jumlah_ulang_fix = Math.ceil(jumlah_ulang);
var gesers = 0;
var page = $('.filtered-wrap').attr('page');
var scrollwidth = Math.ceil($('.filtered-wrap').get(0).scrollWidth / $('body').width());
// console.log("scrollwidth: " + scrollwidth);
if (paramny == 'sebelum') {
if (parseInt(page) > 1 && parseInt(page) <= scrollwidth) {
gesers = (parseInt(page) - 2) * $('body').width() * 0.9;
// console.log("sebelum gesers: " + gesers);
$('.filtered-wrap').attr('style', 'transform: translate3d(-' + gesers + 'px, 0px, 0px);');
var newpage = parseInt(page) - 1;
$('.filtered-wrap').attr('page', String(newpage));
}
if (parseInt(page) > scrollwidth) {
$('.filtered-wrap').attr('style', 'transform: translate3d(0px, 0px, 0px);');
var newpage = parseInt(page) - 1;
$('.filtered-wrap').attr('page', String(newpage));
}
if (page == '1') {
$('.filtered-wrap').attr('style', 'transform: translate3d(0px, 0px, 0px);');
$('.filtered-wrap').attr('page', '1');
}
// console.log("masuk sebelum!");
}
if (paramny == 'sesudah' && parseInt(page) < scrollwidth) {
if (parseInt(page) <= parseInt(jumlah_ulang)) {
gesers = parseInt(page) * $('body').width() * 0.9;
$('.filtered-wrap').attr('style', 'transform: translate3d(-' + gesers + 'px, 0px, 0px);');
var newpage = parseInt(page) + 1;
$('.filtered-wrap').attr('page', String(newpage));
}
// console.log("masuk setelah!");
}
}
function check_slick_mobile() {
var body_width = $('body').width() * 0.99;
// console.log("scrollwidth: " + $(".filtered-wrap").get(0).scrollWidth + " || width: " + body_width);
if ($('.filtered-wrap').get(0).scrollWidth > body_width) {
if ($('#sebelum').length == 0) {
$('.filtered-wrap').attr('page', '1');
$('.outer-filtered-wrap').prepend(
"<img id='sebelum' onclick='geser(\"sebelum\");' src='https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/Cicilan%20Revamp%202021/left_arrow.svg'>"
);
$('.outer-filtered-wrap').append(
"<img id='sesudah' onclick='geser(\"sesudah\");' src='https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/Cicilan%20Revamp%202021/right_arrow.svg'>"
);
}
$('.filtered-wrap').addClass('showing');
} else {
$('#sebelum').remove();
$('#sesudah').remove();
$('.filtered-wrap').removeClass('showing');
}
}
function check_kosong() {
var kosong = $('.promo__item.show.d-none').length;
if (kosong == $('.promo__item').length) {
$('.no-data.img-no-data').removeClass('d-none');
$('.paginationjs-pages').addClass('d-none');
} else {
$('.no-data.img-no-data').addClass('d-none');
$('.paginationjs-pages').removeClass('d-none');
}
}
$('#click_filter').click(function () {
$('#filters').removeClass('tutup');
$('#filters').addClass('buka');
if ($('#sortings').attr('class').includes('buka')) {
$('#sortings').removeClass('buka');
$('#sortings').addClass('tutup');
$('#sortings').css('animation', 'close_filter 1s linear 1');
}
$('#filters').css('animation', 'open_filter 1s linear 1');
});
$('#sorting_click').click(function () {
$('#sortings').removeClass('tutup');
$('#sortings').addClass('buka');
if ($('#filters').attr('class').includes('buka')) {
$('#filters').removeClass('buka');
$('#filters').addClass('tutup');
$('#filters').css('animation', 'close_filter 1s linear 1');
}
$('#sortings').css('animation', 'open_filter 1s linear 1');
});
$('#selesai_filters').on('click', function () {
$('#filters').css('animation', 'close_filter 1s linear 1');
$('#filters').removeClass('buka');
$('#filters').addClass('tutup');
});
$('#selesai_sortings').on('click', function () {
$('#sortings').css('animation', 'close_filter 1s linear 1');
$('#sortings').removeClass('buka');
$('#sortings').addClass('tutup');
});
document.getElementById('filters_close').addEventListener('touchstart', handleTouchStart, false);
document.getElementById('filters_close').addEventListener('touchmove', handleTouchMove, false);
document.getElementById('sortings_close').addEventListener('touchstart', handleTouchStart, false);
document.getElementById('sortings_close').addEventListener('touchmove', handleTouchMove2, false);
var xDown = null;
var yDown = null;
function getTouches(evt) {
return (
evt.touches || // browser API
evt.originalEvent.touches
); // jQuery
}
function handleTouchStart(evt) {
const firstTouch = getTouches(evt)[0];
xDown = firstTouch.clientX;
yDown = firstTouch.clientY;
}
function handleTouchMove(evt) {
if (!xDown || !yDown) {
return;
}
var xUp = evt.touches[0].clientX;
var yUp = evt.touches[0].clientY;
var xDiff = xDown - xUp;
var yDiff = yDown - yUp;
if (Math.abs(xDiff) > Math.abs(yDiff)) {
/*most significant*/
if (xDiff > 0) {
/* left swipe */
} else {
/* right swipe */
}
} else {
if (yDiff > 0) {
/* up swipe */
} else {
/* down swipe */
$('#filters').css('animation', 'close_filter 1s linear 1');
$('#filters').removeClass('buka');
$('#filters').addClass('tutup');
}
}
/* reset values */
xDown = null;
yDown = null;
}
function handleTouchMove2(evt) {
if (!xDown || !yDown) {
return;
}
var xUp = evt.touches[0].clientX;
var yUp = evt.touches[0].clientY;
var xDiff = xDown - xUp;
var yDiff = yDown - yUp;
if (Math.abs(xDiff) > Math.abs(yDiff)) {
/*most significant*/
if (xDiff > 0) {
/* left swipe */
} else {
/* right swipe */
}
} else {
if (yDiff > 0) {
/* up swipe */
} else {
$('#sortings').css('animation', 'close_filter 1s linear 1');
$('#sortings').removeClass('buka');
$('#sortings').addClass('tutup');
}
}
/* reset values */
xDown = null;
yDown = null;
}
$('.sorts_option').click(function () {
var kelas_list = $(this).attr('class');
if (kelas_list.includes('aktif')) {
} else {
$('.sorts_option').removeClass('aktif');
$(this).addClass('aktif');
}
load_cicilan_items_mobile();
});
$('.sorts_option2').click(function () {
var kelas_list = $(this).attr('class');
if (kelas_list.includes('aktif')) {
} else {
$('.sorts_option2').removeClass('aktif');
$('#filter_desktop').html($(this).html() + " <img src='https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/Cicilan%20Revamp%202021/arrowdown_icon.svg'>");
$(this).addClass('aktif');
}
load_cicilan_items();
});
//in
$('#filter_desktop,#filter_desktop_content').mouseenter(function () {
$('#filter_desktop_content').removeClass('tutup');
$('#filter_desktop_content').addClass('buka');
});
$('#filter_desktop,#filter_desktop_content').mouseleave(function () {
$('#filter_desktop_content').removeClass('buka');
$('#filter_desktop_content').addClass('tutup');
});
/*=============================== */
(function () {
var supportTouch = $.support.touch,
scrollEvent = 'touchmove scroll',
touchStartEvent = supportTouch ? 'touchstart' : 'mousedown',
touchStopEvent = supportTouch ? 'touchend' : 'mouseup',
touchMoveEvent = supportTouch ? 'touchmove' : 'mousemove';
$.event.special.swipeupdown = {
setup: function () {
var thisObject = this;
var $this = $(thisObject);
$this.bind(touchStartEvent, function (event) {
var data = event.originalEvent.touches ? event.originalEvent.touches[0] : event,
start = {
time: new Date().getTime(),
coords: [data.pageX, data.pageY],
origin: $(event.target),
},
stop;
function moveHandler(event) {
if (!start) {
return;
}
var data = event.originalEvent.touches ? event.originalEvent.touches[0] : event;
stop = {
time: new Date().getTime(),
coords: [data.pageX, data.pageY],
};
// prevent scrolling
if (Math.abs(start.coords[1] - stop.coords[1]) > 10) {
event.preventDefault();
}
}
$this.bind(touchMoveEvent, moveHandler).one(touchStopEvent, function (event) {
$this.unbind(touchMoveEvent, moveHandler);
if (start && stop) {
if (stop.time - start.time < 1000 && Math.abs(start.coords[1] - stop.coords[1]) > 30 && Math.abs(start.coords[0] - stop.coords[0]) < 75) {
start.origin.trigger('swipeupdown').trigger(start.coords[1] > stop.coords[1] ? 'swipeup' : 'swipedown');
}
}
start = stop = undefined;
});
});
},
};
$.each(
{
swipedown: 'swipeupdown',
swipeup: 'swipeupdown',
},
function (event, sourceEvent) {
$.event.special[event] = {
setup: function () {
$(this).bind(sourceEvent, $.noop);
},
};
}
);
})();
function filterSelection(c) {
var x, i;
var filterValue = document.getElementById('filter').value;
var countShow = 0;
var noDataElement = document.getElementsByClassName('no-data');
var dataPromoElement = document.getElementById('data_promo');
var paginationArea = document.getElementById('pagination-area');
//console.log(filterValue);
x = document.getElementsByClassName('promo__item');
if (c === 'semua') {
c = '';
}
for (i = 0; i < x.length; i++) {
//console.log(x[i]);
promoRemoveClass(x[i], 'show');
if (x[i].className.indexOf(c) > -1) {
promoAddClass(x[i], 'show');
countShow++;
if (filterValue) {
//console.log(true);
if (x[i].getAttribute('data-type') !== filterValue) {
promoRemoveClass(x[i], 'show');
//promoAddClass(x[i], "show");
countShow--;
}
} else {
//console.log(true);
}
}
}
if (countShow === 0) {
// if no data show
// hide data_promo
dataPromoElement.classList.add('d-none');
paginationArea.classList.add('d-none');
// show no data
noDataElement[0].classList.add('d-block');
} else {
// show data_promo
dataPromoElement.classList.remove('d-none');
paginationArea.classList.remove('d-none');
// hide no data
noDataElement[0].classList.remove('d-block');
}
//console.log('data yang ditampilkan: ' + countShow);
// init pagination
initPagination();
}
// show filtered elements
function promoAddClass(element, name) {
var i, arr1, arr2;
arr1 = element.className.split(' ');
arr2 = name.split(' ');
for (i = 0; i < arr2.length; i++) {
if (arr1.indexOf(arr2[i]) === -1) {
element.className += ' ' + arr2[i];
}
}
}
// hide elements that are not selected
function promoRemoveClass(element, name) {
var i, arr1, arr2;
arr1 = element.className.split(' ');
arr2 = name.split(' ');
for (i = 0; i < arr2.length; i++) {
while (arr1.indexOf(arr2[i]) > -1) {
arr1.splice(arr1.indexOf(arr2[i]), 1);
}
}
element.className = arr1.join(' ');
}
function resetFilterDropDown() {
document.getElementById('filter').selectedIndex = 0;
//document.getElementById('filter').value = null;
}
function initPagination() {
const container = $('#pagination');
var promo__item = document.querySelectorAll('.promo__item');
var promo__itemShow = document.querySelectorAll('.promo__item.show');
//console.log(promo__item);
var countPromo__item = 0;
if (promo__item.length) {
for (var idx = 0, max = promo__item.length; idx < max; idx++) {
promo__item[idx].style.display = 'none';
if (promo__item[idx].classList.contains('show')) {
countPromo__item++;
//console.log('promo__itemShow: ' + promo__itemShow[idx]);
}
}
//console.log(countPromo__item);
}
var sources = (function () {
var result = [];
for (var i = 0; i < countPromo__item; i++) {
result.push(i);
}
return result;
})();
//console.log(sources);
var options = {
dataSource: sources,
callback: function (response, pagination) {
//window.console && console.log(response, pagination);
if (promo__itemShow.length) {
for (var idx = 0, max = promo__itemShow.length; idx < max; idx++) {
promo__itemShow[idx].style.display = 'none';
}
}
$.each(response, function (item, index) {
promo__itemShow[index].style.display = 'block';
});
},
pageSize: 9,
prevText: 'Sebelumnya',
nextText: 'Selanjutnya',
prevTextTitle: 'Halaman sebelumnya',
nextTextTitle: 'Halaman selanjutnya',
classPrefix: ' paginationjs',
pageLinkClass: '',
customLinkClass: '',
customActiveClass: '',
customPageLinkActiveClass: 'bg-custom-orange border-custom-orange',
//ulClassName: 'pagination m-0',
};
container.addHook('beforeInit', function () {
// window.console && console.log('beforeInit...');
});
//$.pagination(container, options);
container.pagination(options);
container.addHook('beforePageOnClick', function () {
// window.console && console.log('beforePageOnClick...');
//return false
});
}
// if page show data_promo class
if (document.getElementById('data_promo')) {
filterSelection('semua');
}
document.onreadystatechange = function () {
if (document.readyState === 'complete') {
// document ready
//console.log('javascript ready');
// if page show data_promo class
if (document.getElementById('data_promo')) {
var btnContainer = document.getElementById('myBtnContainer');
var btns = btnContainer.getElementsByClassName('btn');
var current = btnContainer.getElementsByClassName('active');
// add active class to the current button (highlight it)
if (btns.length) {
for (var i = 0; i < btns.length; i++) {
btns[i].addEventListener('click', function () {
// reset select option to default
resetFilterDropDown();
current[0].classList.remove('active');
filterSelection(this.getAttribute('data-value'));
this.classList.add('active');
});
}
}
document.getElementById('filter').addEventListener('change', function () {
if (btns.length) {
if (current[0].classList.contains('active')) {
filterSelection(current[0].getAttribute('data-value'));
}
}
});
}
}
};
</script>
<script>
function close_the_filter(checkbox_class, the_val, img_class, icon_class, which_check) {
$(checkbox_class + "[value='" + the_val + "']").prop('checked', false);
$(checkbox_class + ':checked').length > 0 ? ($(img_class).show(), $(icon_class).hide()) : ($(img_class).hide(), $(icon_class).show());
count_selected(which_check, checkbox_class);
load_cicilan_items();
}
//cek apakah terpilih semua atau tidak. mengatur tulisan button (pilih semua atau hapus semua)
function count_selected(which_check, checkbox_class) {
var check = $(checkbox_class + ':checked').length;
var semua = $(checkbox_class).length;
if (check == 0) {
$(which_check).html('Pilih Semua');
} else if (check < semua) {
$(which_check).html('Pilih Semua');
} else {
$(which_check).html('Hapus Semua');
}
}
function load_cicilan_items() {
var item_cicilan = [];
var count_item = $('.promo__item').length;
for (var x = 0; x < count_item; x++) {
var get_id = $('.promo__item[counter=' + x + ']').attr('counter');
var get_produk = $('.promo__item[counter=' + x + ']').attr('produk');
var get_cicilan = $('.promo__item[counter=' + x + ']').attr('cicilan');
var get_partner = $('.promo__item[counter=' + x + ']').attr('partner');
var get_kode = $('.promo__item[counter=' + x + ']').attr('kode');
var get_tgl_start = $('.promo__item[counter=' + x + ']').attr('tgl_start');
var obj = {
id: get_id,
produk: get_produk,
cicilan: get_cicilan,
partner: get_partner,
kode: get_kode,
tgl_start: get_tgl_start,
};
item_cicilan.push(obj);
$('.promo__item[counter=' + x + ']').attr('style', 'display: block !important;');
if (
$('.promo__item[counter=' + x + ']')
.attr('class')
.includes('none')
) {
$('.promo__item[counter=' + x + ']').removeClass('d-none');
$('.promo__item[counter=' + x + ']').addClass('d-block');
}
}
sorting_cicilan_items(item_cicilan);
//list produk yang ada
var produk_list = [];
$('.checkbox_class_produk').each(function () {
produk_list.push($(this).attr('value'));
});
//list cicilan yang ada
var cicilan_list = [];
$('.checkbox_class_cicilan').each(function () {
cicilan_list.push($(this).attr('value'));
});
//list partner yang ada
$('.checkbox_class_cicilan').each(function () {
cicilan_list.push($(this).attr('value'));
});
//menyimpan id/counter item cicilan yang masuk filtering
var produk_pilih = filter_cek_produk(); //array yang terpilih
var cicilan_pilih = filter_cek_cicilan();
var partner_pilih = filter_cek_partner();
//loop seluruh item cicilan
for (var y = 0; y < count_item; y++) {
var yes_produk = false;
var yes_cicilan = false;
var yes_partner = false;
//PRODUK
if (produk_pilih.length == 0) {
//belum dicentang produknya
yes_produk = true;
} else {
//sudah ada yang dicentang produknya
var prod_ini = item_cicilan[y]['produk'].split(' ');
for (var a = 0; a < prod_ini.length; a++) {
if (produk_pilih.includes(prod_ini[a])) {
yes_produk = true;
break;
}
}
}
if (!yes_produk) {
if ($(`[counter=${y}]`).attr('style').includes('block') || $(`[counter=${y}]`).attr('class').includes('d-block')) {
$(`[counter=${y}]`).removeClass('d-block');
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
} else {
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
}
continue;
}
//CICILAN
if (cicilan_pilih.length == 0) {
//belum dicentang cicilannya
yes_cicilan = true;
} else {
var cicilan_ini = item_cicilan[y]['cicilan'].split(' - ');
if (cicilan_ini.length == 2) {
var start_cicil = parseInt(cicilan_ini[0].replace('x', ''));
var end_cicil = parseInt(cicilan_ini[1].replace('x', ''));
for (var b = 0; b < cicilan_pilih.length; b++) {
var angka_cicil_pilih = parseInt(cicilan_pilih[b].replace('x', ''));
if (angka_cicil_pilih >= start_cicil && angka_cicil_pilih <= end_cicil) {
yes_cicilan = true;
}
}
} else {
for (var b = 0; b < cicilan_pilih.length; b++) {
if (cicilan_ini[0] == cicilan_pilih[b]) {
yes_cicilan = true;
}
}
}
}
if (!yes_cicilan) {
if ($(`[counter=${y}]`).attr('style').includes('block') || $(`[counter=${y}]`).attr('class').includes('d-block')) {
$(`[counter=${y}]`).removeClass('d-block');
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
} else {
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
}
continue;
}
//PARTNER
if (partner_pilih.length == 0) {
//belum dicentang partnernya
yes_partner = true;
} else {
var partner_ini = item_cicilan[y]['partner'];
for (var c = 0; c < partner_pilih.length; c++) {
if (partner_pilih[c] === partner_ini) {
yes_partner = true;
break;
}
}
}
if (!yes_partner) {
if ($(`[counter=${y}]`).attr('style').includes('block') || $(`[counter=${y}]`).attr('class').includes('d-block')) {
$(`[counter=${y}]`).removeClass('d-block');
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
} else {
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
}
continue;
}
}
//cicilan selection
initPagination();
check_kosong();
check_slick();
cek_all_hapus_semua();
}
function cek_all_hapus_semua() {
var checked_prod = $('.checkbox_class_produk:checked').length;
var checked_cicil = $('.checkbox_class_cicilan:checked').length;
var checked_partner = $('.checkbox_class_partner:checked').length;
var jumlah = checked_prod + checked_cicil + checked_partner;
if (jumlah == 0) {
$('.btn-hapus-semua').hide();
} else {
$('.btn-hapus-semua').show();
}
}
function sorting_cicilan_items(item_cicilan) {
var obj_cicilan = get_items(item_cicilan);
//var sort_pilih = $("#filter").val();
var sort_pilih = $('.sorts_option2.aktif').attr('value');
// $(".promo__group").html("");
var html_final = [];
if (sort_pilih == '') {
for (var d = 0; d < obj_cicilan.length; d++) {
html_final.push(obj_cicilan[d]);
}
} else {
var kodis = [];
var tgl_start = [];
for (var p = 0; p < item_cicilan.length; p++) {
kodis.push(item_cicilan[p]['kode']);
tgl_start.push(item_cicilan[p]['tgl_start']);
}
var id_sorted = [];
var kode_sorted = kodis.sort();
//get tanggal
var formated_tgl = [];
for (var m = 0; m < tgl_start.length; m++) {
var tanggal = tgl_start[m].split(' ');
var bulan = 0;
if (tanggal[1] == 'January') {
bulan = 1;
} else if (tanggal[1] == 'February') {
bulan = 2;
} else if (tanggal[1] == 'March') {
bulan = 3;
} else if (tanggal[1] == 'April') {
bulan = 4;
} else if (tanggal[1] == 'May') {
bulan = 5;
} else if (tanggal[1] == 'June') {
bulan = 6;
} else if (tanggal[1] == 'July') {
bulan = 7;
} else if (tanggal[1] == 'August') {
bulan = 8;
} else if (tanggal[1] == 'September') {
bulan = 9;
} else if (tanggal[1] == 'October') {
bulan = 10;
} else if (tanggal[1] == 'November') {
bulan = 11;
} else {
bulan = 12;
}
formated_tgl.push(tanggal[0] + '-' + bulan + '-' + tanggal[2]);
}
var tgl_sorted = formated_tgl.sort(sort_date);
var unformated_tgl = [];
for (var m = 0; m < tgl_sorted.length; m++) {
var tanggal = tgl_sorted[m].split('-');
var bulan = 0;
if (tanggal[1] == '1') {
bulan = 'January';
} else if (tanggal[1] == '2') {
bulan = 'February';
} else if (tanggal[1] == '3') {
bulan = 'March';
} else if (tanggal[1] == '4') {
bulan = 'April';
} else if (tanggal[1] == '5') {
bulan = 'May';
} else if (tanggal[1] == '6') {
bulan = 'June';
} else if (tanggal[1] == '7') {
bulan = 'July';
} else if (tanggal[1] == '8') {
bulan = 'August';
} else if (tanggal[1] == '9') {
bulan = 'September';
} else if (tanggal[1] == '10') {
bulan = 'October';
} else if (tanggal[1] == '11') {
bulan = 'November';
} else {
bulan = '';
}
unformated_tgl.push(tanggal[0] + ' ' + bulan + ' ' + tanggal[2]);
}
if (sort_pilih == 'az') {
for (var q = 0; q < item_cicilan.length; q++) {
var id_item = $('[kode=' + kode_sorted[q] + ']').attr('counter');
id_sorted.push(id_item);
}
} else if (sort_pilih == 'za') {
var balik_sorted = kode_sorted.reverse();
for (var q = 0; q < item_cicilan.length; q++) {
var id_item = $('[kode=' + balik_sorted[q] + ']').attr('counter');
id_sorted.push(id_item);
}
} else if (sort_pilih == 'terbaru') {
for (var q = 0; q < item_cicilan.length; q++) {
var id_item = $('[tgl_start="' + unformated_tgl[q] + '"]').attr('counter');
id_sorted.push(id_item);
}
} else {
var balik_sorted = unformated_tgl.reverse();
for (var q = 0; q < item_cicilan.length; q++) {
var id_item = $('[tgl_start="' + balik_sorted[q] + '"]').attr('counter');
id_sorted.push(id_item);
}
}
for (var d = 0; d < obj_cicilan.length; d++) {
html_final.push(obj_cicilan[id_sorted[d]]);
}
}
// add by ME
// console.log('maintenance');
// console.log(html_final);
// $(".promo__group").html(html_final);
}
function filter_cek_partner() {
partner_list = [];
if ($('.checkbox_class_partner:checked').length > 0) {
$('.checkbox_class_partner:checked').each(function () {
var partner = $(this).attr('value');
partner_list.push(partner);
});
}
return partner_list;
}
function filter_cek_cicilan() {
cicilan_list = [];
if ($('.checkbox_class_cicilan:checked').length > 0) {
$('.checkbox_class_cicilan:checked').each(function () {
var cicil = $(this).attr('value').replace('Cicilan_', '');
cicilan_list.push(cicil);
});
}
return cicilan_list;
}
function filter_cek_produk() {
var checked_produk = [];
if ($('.checkbox_class_produk:checked').length > 0) {
$('.checkbox_class_produk:checked').each(function () {
var produk_singkat = '';
if ($(this).attr('value') == 'ruangbelajar') {
produk_singkat = 'rb';
} else if ($(this).attr('value') == 'Brain_Academy_Offline') {
produk_singkat = 'ba';
} else if ($(this).attr('value') == 'Brain_Academy_Online') {
produk_singkat = 'bao';
} else {
//ea
produk_singkat = 'ea';
}
checked_produk.push(produk_singkat);
});
}
return checked_produk;
}
function close_the_filter_mobile() {
var parent = $(this).parent();
var chk_val = parent.attr('filtered-val');
$('[value=' + chk_val + ']').removeClass('active');
var jumlah_selected = parseInt($('#filter-jumlah').html());
if (jumlah_selected == 1) {
$('#filter-jumlah').html('0');
$('#filter-jumlah').hide();
$('#filter-ico').show();
} else {
jumlah_selected = jumlah_selected - 1;
$('#filter-jumlah').html(jumlah_selected);
$('#filter-jumlah').show();
$('#filter-ico').hide();
}
check_slick_mobile();
}
function myFunction(x) {
if (x.matches) {
$('#desktop_menu').remove();
load_cicilan_items_mobile();
$('.checkbox_class_produk').click(function () {
var kelas_list = $(this).attr('class');
var produk_val = $(this).attr('value');
var checkbox_class = '.checkbox_class_produk';
var kelompok = 'produk';
var which_check = '.check_all_produk';
if (kelas_list.includes('active')) {
$(this).removeClass('active');
var jumlah_selected = parseInt($('#filter-jumlah').html());
if (jumlah_selected == 1) {
$('#filter-jumlah').html('0');
$('#filter-jumlah').hide();
$('#filter-ico').show();
} else {
jumlah_selected = jumlah_selected - 1;
$('#filter-jumlah').html(jumlah_selected);
$('#filter-jumlah').show();
$('#filter-ico').hide();
}
$(".filtered-item[filtered-val='" + produk_val + "']").remove();
} else {
$(this).addClass('active');
var jumlah_selected = parseInt($('#filter-jumlah').html());
jumlah_selected = jumlah_selected + 1;
$('#filter-jumlah').html(jumlah_selected);
$('#filter-jumlah').show();
$('#filter-ico').hide();
var htmlnya = generate_html(which_check, kelompok, produk_val, checkbox_class);
$('.filtered-wrap').append(htmlnya);
}
load_cicilan_items_mobile();
});
$('.checkbox_class_cicilan').click(function () {
var kelas_list = $(this).attr('class');
var cicilan_val = $(this).attr('value');
var checkbox_class = '.checkbox_class_cicilan';
var kelompok = 'cicilan';
var which_check = '.check_all_cicilan';
if (kelas_list.includes('active')) {
$(this).removeClass('active');
var jumlah_selected = parseInt($('#filter-jumlah').html());
if (jumlah_selected == 1) {
$('#filter-jumlah').html('0');
$('#filter-jumlah').hide();
$('#filter-ico').show();
} else {
jumlah_selected = jumlah_selected - 1;
$('#filter-jumlah').html(jumlah_selected);
$('#filter-jumlah').show();
$('#filter-ico').hide();
}
$(".filtered-item[filtered-val='" + cicilan_val + "']").remove();
} else {
$(this).addClass('active');
var jumlah_selected = parseInt($('#filter-jumlah').html());
jumlah_selected = jumlah_selected + 1;
$('#filter-jumlah').html(jumlah_selected);
$('#filter-jumlah').show();
$('#filter-ico').hide();
var htmlnya = generate_html(which_check, kelompok, cicilan_val, checkbox_class);
$('.filtered-wrap').append(htmlnya);
}
load_cicilan_items_mobile();
});
$('.checkbox_class_partner').click(function () {
var kelas_list = $(this).attr('class');
var partner_val = $(this).attr('value');
var checkbox_class = '.checkbox_class_partner';
var kelompok = 'partner';
var which_check = '.check_all_partner';
if (kelas_list.includes('active')) {
$(this).removeClass('active');
var jumlah_selected = parseInt($('#filter-jumlah').html());
if (jumlah_selected == 1) {
$('#filter-jumlah').html('0');
$('#filter-jumlah').hide();
$('#filter-ico').show();
} else {
jumlah_selected = jumlah_selected - 1;
$('#filter-jumlah').html(jumlah_selected);
$('#filter-jumlah').show();
$('#filter-ico').hide();
}
$(".filtered-item[filtered-val='" + partner_val + "']").remove();
} else {
$(this).addClass('active');
var jumlah_selected = parseInt($('#filter-jumlah').html());
jumlah_selected = jumlah_selected + 1;
$('#filter-jumlah').html(jumlah_selected);
$('#filter-jumlah').show();
$('#filter-ico').hide();
var htmlnya = generate_html(which_check, kelompok, partner_val, checkbox_class);
$('.filtered-wrap').append(htmlnya);
}
load_cicilan_items_mobile();
});
//generate keterangan selected filter (HTML)
function generate_html(which_check, kelompok, the_val, checkbox_class) {
var coded_val = the_val.split('_').join(' ');
checkbox_class = checkbox_class.trim();
// var htmlnya = "<div kelompok='" + kelompok + "' class='filtered-item' filtered-val='" + the_val +
// "' checkbox_class='" + checkbox_class + "' which_check='" + which_check + "'>" + coded_val +
// " <img src='https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/Cicilan%20Revamp%202021/close_btn.svg' class='closebtn' onclick=\"close_the_filter('" +
// checkbox_class + "','" + the_val + "','" + which_check +
// "');$(this).parent().remove();\";></div>";
var htmlnya =
"<div kelompok='" +
kelompok +
"' class='filtered-item' filtered-val='" +
the_val +
"' checkbox_class='" +
checkbox_class +
"' which_check='" +
which_check +
"'>" +
coded_val +
" <img src='https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/Cicilan%20Revamp%202021/close_btn.svg' class='closebtn' onclick=\"$('" +
checkbox_class +
'[value=' +
the_val +
"]').removeClass('active');close_the_filter_mobile();$(this).parent().remove();\";></div>";
return htmlnya;
}
function load_cicilan_items_mobile() {
var item_cicilan = [];
var count_item = $('.promo__item').length;
for (var x = 0; x < count_item; x++) {
var get_id = $('.promo__item[counter=' + x + ']').attr('counter');
var get_produk = $('.promo__item[counter=' + x + ']').attr('produk');
var get_cicilan = $('.promo__item[counter=' + x + ']').attr('cicilan');
var get_partner = $('.promo__item[counter=' + x + ']').attr('partner');
var get_kode = $('.promo__item[counter=' + x + ']').attr('kode');
var get_tgl_start = $('.promo__item[counter=' + x + ']').attr('tgl_start');
var obj = {
id: get_id,
produk: get_produk,
cicilan: get_cicilan,
partner: get_partner,
kode: get_kode,
tgl_start: get_tgl_start,
};
item_cicilan.push(obj);
$('.promo__item[counter=' + x + ']').attr('style', 'display: block !important;');
if (
$('.promo__item[counter=' + x + ']')
.attr('class')
.includes('none')
) {
$('.promo__item[counter=' + x + ']').removeClass('d-none');
$('.promo__item[counter=' + x + ']').addClass('d-block');
}
}
sorting_cicilan_items_mobile(item_cicilan);
//list produk yang ada
var produk_list = [];
$('.checkbox_class_produk').each(function () {
produk_list.push($(this).attr('value'));
});
//list cicilan yang ada
var cicilan_list = [];
$('.checkbox_class_cicilan').each(function () {
cicilan_list.push($(this).attr('value'));
});
//list partner yang ada
$('.checkbox_class_cicilan').each(function () {
cicilan_list.push($(this).attr('value'));
});
//menyimpan id/counter item cicilan yang masuk filtering
var produk_pilih = filter_cek_produk_mobile(); //array yang terpilih
var cicilan_pilih = filter_cek_cicilan_mobile();
var partner_pilih = filter_cek_partner_mobile();
//loop seluruh item cicilan
for (var y = 0; y < count_item; y++) {
var yes_produk = false;
var yes_cicilan = false;
var yes_partner = false;
//PRODUK
if (produk_pilih.length == 0) {
//belum dicentang produknya
yes_produk = true;
} else {
//sudah ada yang dicentang produknya
var prod_ini = item_cicilan[y]['produk'].split(' ');
for (var a = 0; a < prod_ini.length; a++) {
if (produk_pilih.includes(prod_ini[a])) {
yes_produk = true;
break;
}
}
}
if (!yes_produk) {
if ($(`[counter=${y}]`).attr('style').includes('block') || $(`[counter=${y}]`).attr('class').includes('d-block')) {
$(`[counter=${y}]`).removeClass('d-block');
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
} else {
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
}
continue;
}
//CICILAN
if (cicilan_pilih.length == 0) {
//belum dicentang cicilannya
yes_cicilan = true;
} else {
var cicilan_ini = item_cicilan[y]['cicilan'].split(' - ');
if (cicilan_ini.length == 2) {
var start_cicil = parseInt(cicilan_ini[0].replace('x', ''));
var end_cicil = parseInt(cicilan_ini[1].replace('x', ''));
for (var b = 0; b < cicilan_pilih.length; b++) {
var angka_cicil_pilih = parseInt(cicilan_pilih[b].replace('x', ''));
if (angka_cicil_pilih >= start_cicil && angka_cicil_pilih <= end_cicil) {
yes_cicilan = true;
}
}
} else {
for (var b = 0; b < cicilan_pilih.length; b++) {
if (cicilan_ini[0] == cicilan_pilih[b]) {
yes_cicilan = true;
}
}
}
}
if (!yes_cicilan) {
if ($(`[counter=${y}]`).attr('style').includes('block') || $(`[counter=${y}]`).attr('class').includes('d-block')) {
$(`[counter=${y}]`).removeClass('d-block');
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
} else {
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
}
continue;
}
//PARTNER
if (partner_pilih.length == 0) {
//belum dicentang partnernya
yes_partner = true;
} else {
var partner_ini = item_cicilan[y]['partner'];
for (var c = 0; c < partner_pilih.length; c++) {
if (partner_pilih[c] === partner_ini) {
yes_partner = true;
break;
}
}
}
if (!yes_partner) {
if ($(`[counter=${y}]`).attr('style').includes('block') || $(`[counter=${y}]`).attr('class').includes('d-block')) {
$(`[counter=${y}]`).removeClass('d-block');
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
} else {
$(`[counter=${y}]`).addClass('d-none');
$(`[counter=${y}]`).attr('style', 'display:none !important');
}
continue;
}
}
initPagination();
check_kosong();
check_slick_mobile();
}
function filter_cek_partner_mobile() {
partner_list = [];
if ($('.checkbox_class_partner.active').length > 0) {
$('.checkbox_class_partner.active').each(function () {
var partner = $(this).attr('value');
partner_list.push(partner);
});
}
return partner_list;
}
function filter_cek_cicilan_mobile() {
cicilan_list = [];
if ($('.checkbox_class_cicilan.active').length > 0) {
$('.checkbox_class_cicilan.active').each(function () {
var cicil = $(this).attr('value').replace('Cicilan_', '');
cicilan_list.push(cicil);
});
}
return cicilan_list;
}
function filter_cek_produk_mobile() {
var checked_produk = [];
if ($('.checkbox_class_produk.active').length > 0) {
$('.checkbox_class_produk.active').each(function () {
var produk_singkat = '';
if ($(this).attr('value') == 'ruangbelajar') {
produk_singkat = 'rb';
} else if ($(this).attr('value') == 'Brain_Academy_Offline') {
produk_singkat = 'ba';
} else if ($(this).attr('value') == 'Brain_Academy_Online') {
produk_singkat = 'bao';
} else {
//ea
produk_singkat = 'ea';
}
checked_produk.push(produk_singkat);
});
}
return checked_produk;
}
function reset_filtering() {
$('.checkbox_class_produk.active').each(function () {
var kelas_list = $(this).attr('class');
var produk_val = $(this).attr('value');
var checkbox_class = '.checkbox_class_produk';
var kelompok = 'produk';
var which_check = '.check_all_produk';
if (kelas_list.includes('active')) {
$(this).removeClass('active');
var jumlah_selected = parseInt($('#filter-jumlah').html());
if (jumlah_selected == 1) {
$('#filter-jumlah').html('0');
$('#filter-jumlah').hide();
$('#filter-ico').show();
} else {
jumlah_selected = jumlah_selected - 1;
$('#filter-jumlah').html(jumlah_selected);
$('#filter-jumlah').show();
$('#filter-ico').hide();
}
$(".filtered-item[filtered-val='" + produk_val + "']").remove();
}
load_cicilan_items_mobile();
});
$('.checkbox_class_cicilan.active').each(function () {
var kelas_list = $(this).attr('class');
var cicilan_val = $(this).attr('value');
var checkbox_class = '.checkbox_class_cicilan';
var kelompok = 'cicilan';
var which_check = '.check_all_cicilan';
if (kelas_list.includes('active')) {
$(this).removeClass('active');
var jumlah_selected = parseInt($('#filter-jumlah').html());
if (jumlah_selected == 1) {
$('#filter-jumlah').html('0');
$('#filter-jumlah').hide();
$('#filter-ico').show();
} else {
jumlah_selected = jumlah_selected - 1;
$('#filter-jumlah').html(jumlah_selected);
$('#filter-jumlah').show();
$('#filter-ico').hide();
}
$(".filtered-item[filtered-val='" + cicilan_val + "']").remove();
}
load_cicilan_items_mobile();
});
$('.checkbox_class_partner.active').each(function () {
var kelas_list = $(this).attr('class');
var partner_val = $(this).attr('value');
var checkbox_class = '.checkbox_class_partner';
var kelompok = 'partner';
var which_check = '.check_all_partner';
if (kelas_list.includes('active')) {
$(this).removeClass('active');
var jumlah_selected = parseInt($('#filter-jumlah').html());
if (jumlah_selected == 1) {
$('#filter-jumlah').html('0');
$('#filter-jumlah').hide();
$('#filter-ico').show();
} else {
jumlah_selected = jumlah_selected - 1;
$('#filter-jumlah').html(jumlah_selected);
$('#filter-jumlah').show();
$('#filter-ico').hide();
}
$(".filtered-item[filtered-val='" + partner_val + "']").remove();
}
load_cicilan_items_mobile();
});
}
$('#reset_filter').click(function () {
reset_filtering();
});
function sorting_cicilan_items_mobile(item_cicilan) {
var obj_cicilan = get_items(item_cicilan);
var sort_pilih = $('.sorts_option.aktif').attr('value');
// $(".promo__group").html("");
var html_final = [];
if (sort_pilih == '') {
for (var d = 0; d < obj_cicilan.length; d++) {
html_final.push(obj_cicilan[d]);
}
} else {
var kodis = [];
var tgl_start = [];
for (var p = 0; p < item_cicilan.length; p++) {
kodis.push(item_cicilan[p]['kode']);
tgl_start.push(item_cicilan[p]['tgl_start']);
}
var id_sorted = [];
var kode_sorted = kodis.sort();
//get tanggal
var formated_tgl = [];
for (var m = 0; m < tgl_start.length; m++) {
var tanggal = tgl_start[m].split(' ');
var bulan = 0;
if (tanggal[1] == 'January') {
bulan = 1;
} else if (tanggal[1] == 'February') {
bulan = 2;
} else if (tanggal[1] == 'March') {
bulan = 3;
} else if (tanggal[1] == 'April') {
bulan = 4;
} else if (tanggal[1] == 'May') {
bulan = 5;
} else if (tanggal[1] == 'June') {
bulan = 6;
} else if (tanggal[1] == 'July') {
bulan = 7;
} else if (tanggal[1] == 'August') {
bulan = 8;
} else if (tanggal[1] == 'September') {
bulan = 9;
} else if (tanggal[1] == 'October') {
bulan = 10;
} else if (tanggal[1] == 'November') {
bulan = 11;
} else {
bulan = 12;
}
formated_tgl.push(tanggal[0] + '-' + bulan + '-' + tanggal[2]);
}
var tgl_sorted = formated_tgl.sort(sort_date);
var unformated_tgl = [];
for (var m = 0; m < tgl_sorted.length; m++) {
var tanggal = tgl_sorted[m].split('-');
var bulan = 0;
if (tanggal[1] == '1') {
bulan = 'January';
} else if (tanggal[1] == '2') {
bulan = 'February';
} else if (tanggal[1] == '3') {
bulan = 'March';
} else if (tanggal[1] == '4') {
bulan = 'April';
} else if (tanggal[1] == '5') {
bulan = 'May';
} else if (tanggal[1] == '6') {
bulan = 'June';
} else if (tanggal[1] == '7') {
bulan = 'July';
} else if (tanggal[1] == '8') {
bulan = 'August';
} else if (tanggal[1] == '9') {
bulan = 'September';
} else if (tanggal[1] == '10') {
bulan = 'October';
} else if (tanggal[1] == '11') {
bulan = 'November';
} else {
bulan = '';
}
unformated_tgl.push(tanggal[0] + ' ' + bulan + ' ' + tanggal[2]);
}
if (sort_pilih == 'az') {
for (var q = 0; q < item_cicilan.length; q++) {
var id_item = $('[kode=' + kode_sorted[q] + ']').attr('counter');
id_sorted.push(id_item);
}
} else if (sort_pilih == 'za') {
var balik_sorted = kode_sorted.reverse();
for (var q = 0; q < item_cicilan.length; q++) {
var id_item = $('[kode=' + balik_sorted[q] + ']').attr('counter');
id_sorted.push(id_item);
}
} else if (sort_pilih == 'terbaru') {
for (var q = 0; q < item_cicilan.length; q++) {
var id_item = $('[tgl_start="' + unformated_tgl[q] + '"]').attr('counter');
id_sorted.push(id_item);
}
} else {
var balik_sorted = unformated_tgl.reverse();
for (var q = 0; q < item_cicilan.length; q++) {
var id_item = $('[tgl_start="' + balik_sorted[q] + '"]').attr('counter');
id_sorted.push(id_item);
}
}
for (var d = 0; d < obj_cicilan.length; d++) {
html_final.push(obj_cicilan[id_sorted[d]]);
}
}
$('.promo__group').html(html_final);
}
} else {
$('#mobile_menu').remove();
load_cicilan_items();
//buka tutup dropdown
$('.filter-item').mouseenter(function () {
var navigasi = $(this).attr('nav-data');
var values = $("[value-data='" + navigasi + "']");
$('.filter-value.opened').addClass('closed');
$('.filter-value.opened.closed').removeClass('opened');
var val_class = values.attr('class');
if (val_class.indexOf('closed') >= 0) {
values.removeClass('closed');
values.addClass('opened');
}
});
$('.filter-item').mouseleave(function () {
var navigasi = $(this).attr('nav-data');
var values = $("[value-data='" + navigasi + "']");
values.removeClass('opened');
values.addClass('closed');
});
$('.filter-value').mouseout(function () {
var values = $(this).attr('value-data');
var navigasi = $("[nav-data='" + values + "']");
$(this).removeClass('opened');
$(this).addClass('closed');
});
//stay dan hide dropdown
$('.filter-value').mouseenter(function () {
var values = $(this).attr('value-data');
var navigasi = $("[nav-data='" + values + "']");
$(this).removeClass('opened');
$(this).addClass('closed');
});
//change icon centang biru
function check_all_checkbox(img_class, checkbox_class, icon_class) {
if ($(checkbox_class + ':checked').length > 0) {
$(img_class).show();
$(icon_class).hide();
} else {
$(img_class).hide();
$(icon_class).show();
}
}
//check dan uncheck semua filter (produk, cicilan, parther)
$('.checkbox_class_produk').change(function () {
var partner_val = $(this).val();
var img_class = '.checked-blue-produk';
var checkbox_class = '.checkbox_class_produk';
var icon_class = '.uncheck-blue-produk';
var kelompok = 'produk';
var which_check = '.check_all_produk';
var htmlnya = generate_html(which_check, kelompok, partner_val, img_class, checkbox_class, icon_class);
if ($(this).is(':checked')) {
$('.filtered-wrap').append(htmlnya);
check_all_checkbox('.checked-blue-produk', '.checkbox_class_produk', '.uncheck-blue-produk');
} else {
check_all_checkbox('.checked-blue-produk', '.checkbox_class_produk', '.uncheck-blue-produk');
$(".filtered-item[filtered-val='" + partner_val + "']").remove();
}
count_selected(which_check, checkbox_class);
load_cicilan_items();
});
$('.checkbox_class_cicilan').change(function () {
var cicilan_val = $(this).val();
var img_class = '.checked-blue-cicilan';
var checkbox_class = '.checkbox_class_cicilan';
var icon_class = '.uncheck-blue-cicilan';
var kelompok = 'cicilan';
var which_check = '.check_all_cicilan';
var htmlnya = generate_html(which_check, kelompok, cicilan_val, img_class, checkbox_class, icon_class);
if ($(this).is(':checked')) {
$('.filtered-wrap').append(htmlnya);
check_all_checkbox('.checked-blue-cicilan', '.checkbox_class_cicilan', '.uncheck-blue-cicilan');
} else {
check_all_checkbox('.checked-blue-cicilan', '.checkbox_class_cicilan', '.uncheck-blue-cicilan');
$(".filtered-item[filtered-val='" + cicilan_val + "']").remove();
}
count_selected(which_check, checkbox_class);
load_cicilan_items();
});
$('.checkbox_class_partner').change(function () {
var partner_val = $(this).val();
var img_class = '.checked-blue-partner';
var checkbox_class = '.checkbox_class_partner';
var icon_class = '.uncheck-blue-partner';
var kelompok = 'partner';
var which_check = '.check_all_partner';
var htmlnya = generate_html(which_check, kelompok, partner_val, img_class, checkbox_class, icon_class);
if ($(this).is(':checked')) {
$('.filtered-wrap').append(htmlnya);
check_all_checkbox('.checked-blue-partner', '.checkbox_class_partner', '.uncheck-blue-partner');
} else {
check_all_checkbox('.checked-blue-partner', '.checkbox_class_partner', '.uncheck-blue-partner');
$(".filtered-item[filtered-val='" + partner_val + "']").remove();
}
count_selected(which_check, checkbox_class);
load_cicilan_items();
});
//pilih semua dan hapus semua (produk, cicilan, partner)
$('.check_all_produk').click(function () {
var img_class = '.checked-blue-produk';
var checkbox_class = '.checkbox_class_produk';
var icon_class = '.uncheck-blue-produk';
var which_check = '.check_all_produk';
var kelompok = 'produk';
check_uncheck_checkbox(kelompok, which_check, img_class, checkbox_class, icon_class);
load_cicilan_items();
});
$('.check_all_cicilan').click(function () {
var img_class = '.checked-blue-cicilan';
var checkbox_class = '.checkbox_class_cicilan';
var icon_class = '.uncheck-blue-cicilan';
var which_check = '.check_all_cicilan';
var kelompok = 'cicilan';
check_uncheck_checkbox(kelompok, which_check, img_class, checkbox_class, icon_class);
load_cicilan_items();
});
$('.check_all_partner').click(function () {
var img_class = '.checked-blue-partner';
var checkbox_class = '.checkbox_class_partner';
var icon_class = '.uncheck-blue-partner';
var which_check = '.check_all_partner';
var kelompok = 'partner';
check_uncheck_checkbox(kelompok, which_check, img_class, checkbox_class, icon_class);
load_cicilan_items();
});
//untuk centang semua dan uncentang semua
function check_uncheck_checkbox(kelompok, which_check, img_class, checkbox_class, icon_class) {
//jika belum ada yang dicentang atau belum penuh centangannya
if ($(checkbox_class + ':checked').length == 0 || $(checkbox_class + ':checked').length < $(checkbox_class).length) {
$(checkbox_class).prop('checked', true);
check_all_checkbox(img_class, checkbox_class, icon_class);
$(which_check).html('Hapus Semua');
$(".filtered-item[kelompok='" + kelompok + "']").remove();
if (which_check == '.check_all_produk') {
//variabel untuk produk
var the_vals = ['ruangbelajar', 'Brain_Academy_Offline', 'Brain_Academy_Online', 'English_Academy'];
} else if (which_check == '.check_all_cicilan') {
//variabel untuk cicilan
var the_vals = ['Cicilan_1x', 'Cicilan_2x', 'Cicilan_3x', 'Cicilan_6x', 'Cicilan_12x'];
} else {
//variabel untuk partner
var the_vals = ['Kredivo'];
}
for (var x = 0; x < $(checkbox_class).length; x++) {
$('.filtered-wrap').append(generate_html(which_check, kelompok, the_vals[x], img_class, checkbox_class, icon_class));
}
} else {
//jika centangan sudah penuh
$(checkbox_class).prop('checked', false);
check_all_checkbox(img_class, checkbox_class, icon_class);
$(which_check).html('Pilih Semua');
$(".filtered-item[kelompok='" + kelompok + "']").remove();
}
}
$('#filter').change(function () {
load_cicilan_items();
});
//generate keterangan selected filter (HTML)
function generate_html(which_check, kelompok, the_val, img_class, checkbox_class, icon_class) {
var coded_val = the_val.split('_').join(' ');
checkbox_class = checkbox_class.trim();
var htmlnya =
"<div kelompok='" +
kelompok +
"' class='filtered-item' filtered-val='" +
the_val +
"' checkbox_class='" +
checkbox_class +
"' img_class='" +
img_class +
"' icon_class='" +
icon_class +
"' which_check='" +
which_check +
"'>" +
coded_val +
" <img src='https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/Cicilan%20Revamp%202021/close_btn.svg' class='closebtn' onclick=\"close_the_filter('" +
checkbox_class +
"','" +
the_val +
"','" +
img_class +
"','" +
icon_class +
"','" +
which_check +
'\');$(this).parent().remove();";></div>';
return htmlnya;
}
$('.btn-hapus-semua').click(function () {
$('.checkbox_class_produk:checked').each(function () {
$(this).prop('checked', false);
var partner_val = $(this).attr('value');
check_all_checkbox('.checked-blue-produk', '.checkbox_class_produk', '.uncheck-blue-produk');
$(".filtered-item[filtered-val='" + partner_val + "']").remove();
var img_class = '.checked-blue-produk';
var checkbox_class = '.checkbox_class_produk';
var icon_class = '.uncheck-blue-produk';
var which_check = '.check_all_produk';
var kelompok = 'produk';
count_selected(which_check, checkbox_class);
});
$('.checkbox_class_cicilan:checked').each(function () {
$(this).prop('checked', false);
var partner_val = $(this).attr('value');
check_all_checkbox('.checked-blue-cicilan', '.checkbox_class_cicilan', '.uncheck-blue-cicilan');
$(".filtered-item[filtered-val='" + partner_val + "']").remove();
var img_class = '.checked-blue-cicilan';
var checkbox_class = '.checkbox_class_cicilan';
var icon_class = '.uncheck-blue-cicilan';
var which_check = '.check_all_cicilan';
var kelompok = 'cicilan';
count_selected(which_check, checkbox_class);
});
$('.checkbox_class_partner:checked').each(function () {
$(this).prop('checked', false);
var partner_val = $(this).attr('value');
check_all_checkbox('.checked-blue-partner', '.checkbox_class_partner', '.uncheck-blue-partner');
$(".filtered-item[filtered-val='" + partner_val + "']").remove();
var img_class = '.checked-blue-partner';
var checkbox_class = '.checkbox_class_partner';
var icon_class = '.uncheck-blue-partner';
var which_check = '.check_all_partner';
var kelompok = 'partner';
count_selected(which_check, checkbox_class);
});
load_cicilan_items();
});
}
}
var x = window.matchMedia('(max-width: 875px)');
myFunction(x);
x.addListener(myFunction);
</script>
</div>
</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->
</div>
<!--end body -->
</div>
<!--end body wrapper -->
<style>.footer__year {
padding-top: 5rem;
}
.ic-new__img {
margin: auto 0;
display: flex;
}
.ic-new__img img {
width: fit-content;
}
.font-base-footer {
font-family: Inter, 'sans-serif';
font-weight: 400;
font-size: 14px !important;
font-style: normal;
letter-spacing: 0;
color: #0a2540;
margin-bottom: 0;
}
.font-bold {
font-weight: 700;
}
.font-white {
color: #fff !important;
}
.font-semi-bold {
font-weight: 600;
}
.center {
text-align: center;
}
.footer {
background: #0a2540 !important;
overflow: hidden;
font-family:
-apple-system,
BlinkMacSystemFont,
Segoe UI,
Roboto,
Helvetica Neue,
Arial,
Noto Sans,
sans-serif,
Apple Color Emoji,
Segoe UI Emoji,
Segoe UI Symbol,
Noto Color Emoji;
}
.contact__container {
display: grid;
grid-template-columns: 2fr 11fr;
gap: 0.625rem;
word-break: break-all;
}
.contact__container--text {
margin: auto 0;
}
.group-contact {
display: grid;
row-gap: 0.5rem;
}
.sec-follow__content--socmed {
display: inline-flex;
}
.sec-follow__content--socmed a {
padding-right: 0.25rem;
}
.ic-new {
display: inline-flex;
width: max-content;
gap: 0.25rem;
}
@media (min-width: 1025px) {
.sec-address__detail {
margin: 1rem 0 2rem;
padding-right: 2rem;
}
.sec-follow {
margin-top: -10rem;
}
.title {
font-size: 48px;
line-height: 64px;
}
.subtitle {
font-size: 32px;
line-height: 48px;
text-align: center;
}
.desc-hero {
font-size: 24px;
line-height: 36px;
margin-top: 20px;
}
.desc {
font-size: 16px;
line-height: 24px;
}
.footer {
padding: 5rem 0 1.5rem;
}
.footer__title {
font-size: 1rem;
margin-bottom: 1rem;
min-height: 1.25rem;
}
.footer__title--hq {
font-size: 1rem;
}
.footer__content--top {
display: grid;
grid-template-columns: 3fr 9fr;
}
.sec-menu {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
}
.sec-app__content {
display: grid;
gap: 0.75rem;
}
.footer__content--bottom {
display: grid;
grid-template-columns: 9.75fr 2.25fr;
}
}
@media (max-width: 1024px) {
.sec-address__detail {
margin: 1rem 0 2rem;
}
.sec-app {
margin-bottom: 2.625rem;
text-align: center;
}
.title {
font-size: 24px;
line-height: 36px;
}
.subtitle {
font-size: 20px;
line-height: 30px;
text-align: center;
}
.desc-hero {
font-size: 16px;
line-height: 24px;
margin-top: 1rem;
}
.desc {
font-size: 14px;
line-height: 27px;
}
.footer {
padding: 2rem 0;
}
.sec-app__content {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 0.5rem;
margin-top: 1rem;
}
.sec-menu {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
}
.sec-follow {
text-align: center;
}
.footer__title {
padding-bottom: 0.75rem;
}
}
ul.no-space {
padding: 0;
}
ul.no-space li {
margin-bottom: 0.25rem;
}
.contact__container--text a,
ul.no-space a {
text-decoration: none;
}
.contact__container--text a:hover,
ul.no-space a:hover {
color: #2eb5c0 !important;
}
div.sec-address__logo img,
div.ic-new__img img {
display: inline-block;
}
.sec-app__content img {
max-width: 100%;
}
</style>
<section class="footer " id="footer">
<div class="page-center">
<div class="footer__content">
<div class="footer__content--top">
<div class="sec-app">
<div class="sec-address">
<div class="sec-address__logo">
<a href="https://www.ruangguru.com/">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/OPTIMIZE/logo%20rg.svg" alt="Logo Ruangguru" loading="lazy" />
</a>
</div>
<div class="sec-address__detail">
<p class="font-base-footer font-white font-bold footer__title--hq">RUANGGURU HQ</p>
<p class="font-base-footer font-white footer-address">Gedung Sinarmas MSIG Tower Lt. 33. Jl. Jenderal Sudirman Kav. 21, Karet Kuningan, Setiabudi, Jakarta Selatan, Jakarta 12920</p>
</div>
</div>
<p class="font-base-footer font-white font-bold footer__title">Coba GRATIS Aplikasi Ruangguru</p>
<div class="sec-app__content">
<div class="sec-app__content--gplay">
<a target="_blank" rel="nofollow" href="https://play.google.com/store/apps/details?id=com.ruangguru.livestudents&hl=in">
<img
class="footer-socmed"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Optimize%20V2/btn_googleplay%20(1).svg"
loading="lazy"
alt="Button Google Play Footer "
/>
</a>
</div>
<div class="sec-app__content--appstore">
<a target="_blank" rel="nofollow" href="https://apps.apple.com/id/app/ruangguru-solusi-belajar/id1099742206?l=id">
<img
class="footer-socmed"
src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Optimize%20V2/btn_appstore%20(1).svg"
loading="lazy"
alt="Button App Store Footer "
/>
</a>
</div>
<div class="sec-app__content--huawei">
<a target="_blank" rel="nofollow" href="https://appgallery.huawei.com/#/app/C102352375">
<picture>
<source type="image/webp" srcset="https://roboguru-forum-cdn.ruangguru.com/image/e5df282a-3b96-4af4-8b3c-a4634b511680.png?convert=webp " />
<source type="image/png" srcset="https://roboguru-forum-cdn.ruangguru.com/image/e5df282a-3b96-4af4-8b3c-a4634b511680.png " />
<img class="footer-socmed" src="https://roboguru-forum-cdn.ruangguru.com/image/e5df282a-3b96-4af4-8b3c-a4634b511680.png" alt="Button AppGallery Footer" loading="lazy" width="156" />
</picture>
</a>
</div>
</div>
</div>
<div class="sec-menu">
<div class="sec-menu__rg">
<p class="font-base-footer font-white font-bold footer__title">Produk Ruangguru</p>
<ul type="none" class="no-space">
<li>
<a class="font-base-footer font-white" href="https://roboguru.ruangguru.com" target="_blank">Roboguru</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/roboguruplus">Roboguru Plus</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/dafa-lulu">Dafa dan Lulu</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/for-kids">Ruangguru for Kids</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/bisnis">Ruangguru for Business</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/ruanguji">Ruanguji</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/blog/">Ruangbaca</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/ruangkelas">Ruangkelas</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/ruangbelajar">Ruangbelajar</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://pengajar.ruangguru.com/">Ruangpengajar</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/privat">Ruangguru Privat</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangpeduli.org/" target="_blank">Ruangpeduli</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/airis">Airis</a>
</li>
</ul>
</div>
<div class="sec-menu__lainnya">
<p class="font-base-footer font-white font-bold footer__title">Produk Lainnya</p>
<ul type="none" class="no-space">
<li>
<a class="font-base-footer font-white" href="https://www.brainacademy.id/" target="_blank">Brain Academy</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.english-academy.id/" target="_blank">English Academy</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://skillacademy.com/" target="_blank">Skill Academy</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangkerja.id/" target="_blank">Ruangkerja</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.schoters.com/id/" target="_blank">Schoters</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.kalananti.id/" target="_blank">Kalananti</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/mathchamps/" target="_blank">Math Champs</a>
</li>
</ul>
</div>
<div class="sec-menu__bantuan">
<p class="font-base-footer font-white font-bold footer__title">Bantuan & Panduan</p>
<ul type="none" class="no-space">
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/company-credentials">Company Credentials</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/beasiswa">Beasiswa Ruangguru</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/cicilan">Cicilan Ruangguru</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/promo">Promo Ruangguru</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://ticketing.ruangguru.com/help?request_type_id=459" target="_blank">Vulnerability Report</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/bantuan#layanan">Layanan Pengaduan</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/terms-conditions">Syarat & Ketentuan</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/privacy-policy">Kebijakan Privasi</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/about-us">Tentang Kami</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/contact-us">Kontak Kami</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/press">Press Kit</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://www.ruangguru.com/bantuan">Bantuan</a>
</li>
<li>
<a class="font-base-footer font-white" href="https://career.ruangguru.com/">Karier</a>
</li>
</ul>
</div>
<div class="sec-menu__contact">
<p class="font-base-footer font-white font-bold footer__title">Hubungi Kami</p>
<div class="group-contact">
<div class="contact__container">
<div class="contact__container--img">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Optimize%20V2/ic-mail.svg" loading="lazy" alt="Logo Email Footer" />
</div>
<div class="contact__container--text">
<a class="font-base-footer font-white" href="mailto:info@ruangguru.com">info@ruangguru.com</a>
</div>
</div>
<div class="contact__container">
<div class="contact__container--img">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Optimize%20V2/ic-phone.svg" loading="lazy" alt="Logo Phone Footer" />
</div>
<div class="contact__container--text">
<a class="font-base-footer font-white" href="tel:02130930000">02130930000</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="footer__content--bottom">
<div></div>
<div class="sec-follow">
<p class="font-base-footer font-white font-bold footer__title">Ikuti Kami</p>
<div class="sec-follow__content">
<div class="sec-follow__content--socmed">
<a target="_blank" href="https://www.instagram.com/ruangguru/">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Optimize%20V2/ic-ig.svg?convert=webp" loading="lazy" alt="Logo Instagram Footer" />
</a>
<a target="_blank" href="https://www.facebook.com/ruanggurucom/">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Optimize%20V2/ic-fb.svg?convert=webp" loading="lazy" alt="Logo Facebook Footer" />
</a>
<a target="_blank" href="https://twitter.com/ruangguru/">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Optimize%20V2/ic-twitter.svg?convert=webp" loading="lazy" alt="Logo Twitter Footer" />
</a>
<a target="_blank" href="https://www.youtube.com/ruangguru">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Optimize%20V2/ic-youtube.svg?convert=webp" loading="lazy" alt="Logo Youtube Footer" />
</a>
<a target="_blank" href="https://www.linkedin.com/company/ruangguru-com">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Optimize%20V2/ic-linkedin.svg?convert=webp" loading="lazy" alt="Logo LinkedIn Footer" />
</a>
<a target="_blank" href="https://www.tiktok.com/@ruangguru">
<img src="https://cdn-web-2.ruangguru.com/landing-pages/assets/hs/1%20Homepage%20RG/Optimize%20V2/tiktok-ic-white-40.svg?convert=webp" loading="lazy" alt="Logo TikTok Footer" />
</a>
</div>
</div>
</div>
</div>
</div>
<div class="footer__year">
<p class="font-base-footer font-white font-bold center">
©
<span id="full-year"></span>
Ruangguru. All Rights Reserved PT. Ruang Raya Indonesia
</p>
</div>
</div>
</section>
<script src="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/module_assets/39227318886/1661845605588/module_39227318886_header-homepage-ruangguru-2021.min.js"></script>
<script src="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/template_assets/45749395482/1621933279844/A_Ruangguru_Projects/Revamp_Promo_Ruangguru/javascript_pagination_promo_ruangguru_2021.min.js"></script>
<script src="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/hs-fs/hub/2828691/hub_generated/template_assets/46653046962/1634005288041/A_Ruangguru_Projects/Project_Hofar/Javascript_Auto_Generate_Breadcrumb_-_V1_2.min.js"></script>
<!-- HubSpot Video embed loader -->
<script
async
data-hs-portal-id="2828691"
data-hs-ignore="true"
data-cookieconsent="ignore"
data-hs-page-id="24249069667"
data-lazy-inject="true"
src="https://static.hsappstatic.net/video-embed/ex/loader.js"
></script>
<!-- Start of HubSpot Analytics Code -->
<script type="text/javascript">
var _hsq = _hsq || [];
_hsq.push(['setContentType', 'landing-page']);
_hsq.push(['setCanonicalUrl', 'https:\/\/www.ruangguru.com\/cicilan\/kredivo']);
_hsq.push(['setPageId', 'hubdb-24249069667-5249353-97258257022']);
_hsq.push([
'setContentMetadata',
{
contentPageId: 'hubdb-24249069667-5249353-97258257022',
legacyPageId: 'hubdb-24249069667-5249353-97258257022',
contentFolderId: null,
contentGroupId: null,
abTestId: null,
languageVariantId: 24249069667,
languageCode: 'id',
},
]);
</script>
<script type="text/javascript">
var hsVars = {
render_id: 'ff80ee9d-22f9-4522-81ba-0e355d9ebb2a',
ticks: 1684991333458,
page_id: 24249069667,
dynamic_page_id: 'hubdb-24249069667-5249353-97258257022',
content_group_id: 0,
portal_id: 2828691,
app_hs_base_url: 'https://app.hubspot.com',
cp_hs_base_url: 'https://cp.hubspot.com',
language: 'id',
analytics_page_type: 'landing-page',
analytics_page_id: 'hubdb-24249069667-5249353-97258257022',
category_id: 1,
folder_id: 0,
is_hubspot_user: false,
};
</script>
<script src="https://unpkg.com/@dotlottie/player-component@latest/dist/dotlottie-player.mjs" type="module"></script>
<!-- Load CSS for all versions -->
<script>
// CSS loading function available for all versions
function loadFloatingCSS() {
// Check if CSS is already loaded
if (document.getElementById('fb-component-css')) {
return;
}
// Create and append CSS style block to head
const style = document.createElement('style');
style.id = 'fb-component-css';
style.textContent = `
.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;
}
`;
document.head.appendChild(style);
}
// Load CSS immediately
loadFloatingCSS();
</script>
<div id="bantuan-divs-container" style="position: relative" data-product="ruangguru" data-table=""></div>
<script>
class FloatingDivsComponent {
constructor(product = 'ruangguru', table = 'rg_promo_banner') {
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_promo_banner';
const queryParams =
'offset=0&limit=99999&sort=rankPosition&where=(type,eq,floating)~and(showIn,anyof,landingPage)~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 [];
}
// 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_promo_banner';
new FloatingDivsComponent(product, table);
});
// Export for use in other modules if needed
if (typeof module !== 'undefined' && module.exports) {
module.exports = FloatingDivsComponent;
}
</script>
<!-- Tracker -->
<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/dist/analytics-plugin-trackable.min.js"></script>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N8DPXH6" height="0" width="0" style="display: none; visibility: hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<script type="text/javascript" defer>
/* Initialize analytics */
var Analytics = _analytics.init({
app: 'brainAcademyLandingPage',
debug: false,
plugins: [analyticsTrackable()],
});
Analytics.ready(function () {
Analytics.page();
});
</script>
<style>
li.breadcrumb-item + li.breadcrumb-item::before {
color: #6c757d;
/* content: ">"; */
content: '\25BA';
font-family: auto;
font-size: 0.78rem !important;
display: flex;
align-items: center;
}
li.breadcrumb-item + li.breadcrumb-item {
/*padding-left: .5rem;*/
padding-left: 0rem;
}
li.breadcrumb-item {
padding-right: 0.5rem;
}
li.breadcrumb-item + li.breadcrumb-item::before,
li.breadcrumb-item > a,
li.breadcrumb-item.active {
font-size: 11px;
background: transparent;
}
li.breadcrumb-item > a {
color: #2eb5c0;
}
li.breadcrumb-item.active:after {
content: '' !important;
}
ol.breadcrumb {
margin-top: revert;
}
@media (min-width: 768px) {
li.breadcrumb-item + li.breadcrumb-item::before,
li.breadcrumb-item > a,
li.breadcrumb-item.active {
font-size: 1rem;
}
li.breadcrumb-item + li.breadcrumb-item::before {
line-height: 28px;
}
}
@media (max-width: 768px) {
li.breadcrumb-item + li.breadcrumb-item::before {
line-height: 18px;
}
}
.cta__promo--lihat-detail a {
white-space: nowrap;
margin-right: 1rem;
}
/* @media (min-width: 1250px) and (max-width:1439px){
.promo__item{
max-width:363px;
}
.cta__promo--langganan .hs-cta-wrapper a{
width: auto !important;
}
} */
.cta__promo--langganan .hs-embed-wrapper {
min-width: 0px !important;
}
</style>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js"
integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF"
crossorigin="anonymous"
></script>
<!-- Generated by the HubSpot Template Builder - template version 1.03 -->
</body>
</html>