Program Kelas Live
Tingkatkan Karier Teknologi Anda dengan Program
Bootcamp AI Intensif
untuk Masa Depan!
Dari pemula hingga siap kerja, Bootcamp AI Ruangguru Engineering Academy membantu Anda menguasai Python,
Machine Learning, dan AI Engineering. Belajar terstruktur, intensif,
bersertifikat, dan relevan dengan kebutuhan industri.
10 Juta
Pengguna Skill Academy
15 Ribu
Peserta Bimbel Skill Academy x REA
2x Lipat
Peningkatan Pemahaman Materi Bimbel.
94%
Tingkat Kepuasan Peserta Bimbel Skill Academy
Pilih Jalur Belajar
Program Unggulan
Kelas Live
Beginner Friendly
AI Python Bootcamp
Pelajari dasar-dasar pemrograman Python dengan aplikasi AI dan proyek dunia nyata. Cocok untuk pemula
yang ingin terjun ke dunia AI.
- ✓ Kurikulum: Python, Streamlit, NLP, Transformers, Deployment
- ✓ 2 fun projects + 1 final project
- ✓ Hands-on learning dengan mentorship dari praktisi industri
Kelas Live
Intermediate to Advanced
AI Engineering Bootcamp
Bangun karir di era AI dengan kurikulum intensif dan komprehensif. Kuasai teknologi terdepan untuk
membangun proyek AI profesional.
- ✓ Kurikulum: Machine Learning, LLM, RAG, Multimodal AI
- ✓ Proyek portofolio dan dukungan karir berkelanjutan
- ✓ Pembelajaran hands-on dengan mentorship dari praktisi industri
Cerita Alumni Setelah Bootcamp AI di Ruangguru Engineering Academy
Mohammad Dimas Noufal
Mobile Developer
PT. Hasta Prima Solusi
Mastering AI Batch 2
"Mengikuti Bootcamp AI Mastery by Ruangguru Batch 2 adalah pengalaman berharga. Materinya praktis dan
mudah dipahami, sangat membantu saya memahami AI dari dasar hingga penerapan
nyata. Mentor yang kompeten membuat proses belajar jadi menyenangkan. Program ini juga membuka banyak
peluang dan meningkatkan kesiapan saya untuk dunia kerja."
Ida Bagus Indrabudhi
Research Assistant
AILO
Mastering AI Batch 2
"Belajar di Mastering AI Bootcamp sangat menyenangkan. Materinya lengkap, mulai dari teori hingga
praktik langsung dengan panduan hands-on yang terstruktur. Instruktur juga aktif
membimbing di kelas. Selain membangun model AI, saya juga belajar topik penting seperti MLOps, NLP, dan
CV. Pengalaman ini sangat melengkapi ilmu dari perkuliahan."
Axel Fabianto
Frontend Developer
PT United Tractors Pandu Engineering
AI Python Batch 1
"Selama mengikuti program menurutku seru, materi mudah dipahami, mentor juga sabar dalam membimbing
peserta. Terutama membantu solving error yg dialami peserta, hal yang menurutku
sangat berbobot adalah ketika dalam mengerjakan tantangan dan project-project. Kita bener-benar langsung
disuru praktik. Tidak hanya belajar teori terus."
Felix Kho
Mahasiswa Teknik Sipil
Universitas Gadjah Mada
AI Python Batch 1
"Bootcamp ini sangat membantu saya memahami dasar Python dan penerapan AI. Materinya terstruktur dan
mudah dipahami, mentornya juga responsif dan sabar. Bagian paling berkesan saat
membuat fun project bisa langsung praktik dari ilmu yang dipelajari. Cocok banget untuk pemula yang baru
mulai belajar Python dan AI."
Kevin Adam
Recruitment Consultant
Business Edge Personnel Service
Mastering AI Batch 3
"Mengikuti Mastering AI Bootcamp jadi pengalaman berharga bagi saya. Awalnya saya hanya tahu AI secara
umum, tapi kini saya paham konsep hingga praktik membangun model. Pendekatannya
hands-on, mentornya suportif, dan diskusinya aktif. Bootcamp ini jadi pondasi kuat dan membuat saya
lebih percaya diri membuat proyek AI."
Abi Ulwan Shafi
Pelajar Kelas 12
SMA N 5 KOTA JAMBI
AI Python Batch 1
"Seru banget belajar di Python AI Batch 1! Aku belajar banyak hal. Dari coding, Streamlit, OOP, Python,
GitHub, Hugging Face, NLP, hingga Transformer. Setiap akhir minggu ada fun
project yang bikin kita bebas berkreasi tanpa batas. Menurutku ini cara belajar yang super asik dan
bikin makin semangat eksplor AI"
Learning Video Bootcamp AI
▶
Mastering AI: From Foundations to Applications
Pelajari dasar-dasar AI hingga aplikasi praktis dalam pengembangan software
modern
▶
Semantic Kernel: Unleashing GPT's Potential
Manfaatkan kekuatan GPT dengan Semantic Kernel untuk aplikasi AI yang lebih
powerful
▶
How to Stay Relevant in the Age of AI
Tips dan strategi untuk tetap relevan di era kecerdasan buatan
▶
Build Personal AI Assistant with GPT and Semantic Kernel
Cara membangun asisten AI personal menggunakan teknologi GPT
▶
Tutorial Training Emotion Recognition Model
Step-by-step tutorial untuk melatih model pengenalan emosi
▶
Kickstart Your Career as AI Engineer - How Machine Learning Works
Panduan lengkap memulai karier sebagai AI Engineer profesional
<!doctype html>
<html lang="id" class="no-js">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Kelas AI Bootcamp Online Indonesia | REA by Ruangguru</title>
<meta name="description"
content="Daftar kelas AI bootcamp online Indonesia di REA by Ruangguru. Cocok untuk pemula sampai advance. Bersertifikat + lebih hemat 40% dari lainnya." />
<link rel="canonical" href="https://www.ruangguru.com/rea" />
<link rel="icon" type="image/jpg"
href="https://cdn-web.ruangguru.com/file-uploader/d2d58a11-1905-4ae2-ab6a-809190e7cd48.jpg" />
<!-- 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 -->
<!-- Tracker -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://unpkg.com/analytics@0.8.1/dist/analytics.min.js"></script>
<script type="text/javascript"
src="https://unpkg.com/analytics-plugin-trackable/dist/analytics-plugin-trackable.min.js"></script>
<script type="text/javascript" defer>
$(document).on('click', '[data-tracking-event-type]', function (event) {
const eventType = $(this).data('tracking-event-type');
const context = $(this).data('tracking-context');
Analytics.track(eventType, context);
});
/* Initialize analytics */
var Analytics = _analytics.init({
app: 'REA',
debug: false,
plugins: [analyticsTrackable()],
});
Analytics.ready(function () {
Analytics.page();
});
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "CreativeWorkSeries",
"name": "Python AI Bootcamp",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "5",
"bestRating": "5",
"ratingCount": "15216"
}
}
</script>
<script type="text/javascript">
(function (c, l, a, r, i, t, y) {
c[a] =
c[a] ||
function () {
(c[a].q = c[a].q || []).push(arguments);
};
t = l.createElement(r);
t.async = 1;
t.src = 'https://www.clarity.ms/tag/' + i;
y = l.getElementsByTagName(r)[0];
y.parentNode.insertBefore(t, y);
})(window, document, 'clarity', 'script', 't0thbatvha');
</script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400..900&display=swap');
/* Typography */
:root {
/* Aligned with AI Engineering palette */
--bg: #ffffff;
--text: #21272a;
/* dark */
--text-medium: #2c313a;
--text-light: #697077;
--card: #ffffff;
--border: #dde1e6;
--primary: #0f6ff2;
--primary-2: #0dc7f1;
--accent-light: #ecf7ff;
--sky50: #f9fcff;
--sky100: #ecf7ff;
--sky600: #0f6ff2;
--sky700: #0f6ff2;
--shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
--radius: 16px;
--radius-lg: 22px;
--container: 1200px;
}
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
font-family:
'Inter',
ui-sans-serif,
system-ui,
-apple-system,
Segoe UI,
Roboto,
'Helvetica Neue',
Arial;
color: var(--text);
background: #fff;
line-height: 1.6;
/* improve default line-height */
letter-spacing: 0.01em;
}
p {
line-height: 1.7;
}
a {
color: inherit;
text-decoration: none;
}
.container {
max-width: var(--container);
margin: 0 auto;
padding: 0 20px;
}
.btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 14px 20px;
border-radius: 999px;
background: var(--text-medium);
color: #fff;
border: none;
font-weight: 600;
font-size: 15px;
transition: all 0.2s ease;
}
.btn:hover {
transform: translateY(-1px);
box-shadow: 0 6px 16px rgba(15, 111, 242, 0.15);
}
.btn-outline {
background: transparent;
color: var(--text-medium);
border: 2px solid var(--text-medium);
}
.btn-outline:hover {
background: var(--text-medium);
color: #fff;
}
header {
position: sticky;
top: 0;
z-index: 40;
background: #fff;
border-bottom: 1px solid var(--border);
}
.nav {
height: 64px;
display: flex;
align-items: center;
justify-content: space-between;
}
.brand {
display: flex;
align-items: center;
gap: 8px;
}
.brand .logo {
width: 32px;
height: 32px;
border-radius: 12px;
background: var(--primary);
}
nav a {
font-size: 15px;
margin-left: 20px;
opacity: 0.9;
transition:
color 0.2s ease,
opacity 0.2s ease;
}
nav a:hover {
color: var(--primary);
opacity: 1;
}
/* HERO */
.hero {
position: relative;
overflow: hidden;
background: linear-gradient(135deg, #ffffff 0%, #f8fbff 50%, #eef7ff 100%);
}
.hero-grid {
display: grid;
grid-template-columns: 1fr;
gap: 48px;
align-items: center;
}
.badge {
font-size: 12px;
font-weight: 600;
color: #fff;
display: inline-flex;
gap: 8px;
align-items: center;
background: linear-gradient(102deg, var(--primary-2) 0%, var(--primary) 116%);
padding: 6px 10px;
border-radius: 20px;
}
.h1 {
font-size: clamp(28px, 4vw, 44px);
line-height: 1.2;
margin: 12px 0 12px;
font-weight: 700;
letter-spacing: -0.02em;
}
.h1 span {
background: linear-gradient(102deg, var(--primary) 0%, var(--primary-2) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
display: block;
}
.lead {
margin-top: 16px;
max-width: 600px;
color: var(--text-light);
line-height: 1.7;
}
.stats {
margin-top: 32px;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
}
.card {
background: var(--card);
border: 1px solid var(--border);
border-radius: var(--radius);
box-shadow: var(--shadow);
transition:
transform 0.2s ease,
box-shadow 0.2s ease;
}
.card:hover {
transform: translateY(-2px);
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}
.card .p {
padding: 20px;
}
.dash {
border: 1px dashed #cbd5e1;
border-radius: 14px;
height: 100%;
display: grid;
place-items: center;
color: #94a3b8;
background: #fff;
}
.hero-media {
border-radius: var(--radius-lg);
padding: 12px;
background: linear-gradient(135deg, #fff, #f8fbff);
border: 1px solid var(--border);
box-shadow: var(--shadow);
}
.floating {
position: absolute;
right: -16px;
bottom: -16px;
display: none;
}
.floating .card {
border-radius: 16px;
}
@media (min-width: 1024px) {
.w-50 {
width: 50%;
text-align: center !important;
}
.hero-grid {
grid-template-columns: 1.3fr 1fr;
}
.stats {
grid-template-columns: repeat(4, 1fr);
}
.floating {
display: block;
}
}
/* SECTIONS */
section {
padding: 80px 0;
}
.section-title {
font-size: clamp(24px, 2.6vw, 32px);
font-weight: 700;
letter-spacing: -0.01em;
text-align: left;
}
.subtle {
color: var(--primary);
font-weight: 700;
font-size: 12px;
letter-spacing: 0.04em;
text-transform: uppercase;
}
/* PROGRAMS */
.grid-2 {
display: grid;
grid-template-columns: 1fr;
gap: 24px;
}
@media (min-width: 768px) {
.grid-2 {
grid-template-columns: 1fr 1fr;
}
}
.program-card header {
padding: 18px 18px 8px;
}
.program-card header .tag {
display: flex;
gap: 8px;
align-items: center;
font-size: 12px;
color: var(--sky700);
font-weight: 600;
}
.program-card header h3 {
margin: 8px 0 0;
font-size: 20px;
}
.program-card .body {
padding: 0 18px 18px;
color: var(--text-light);
}
.bullets li {
line-height: 1.55;
}
.bullets {
margin: 12px 0 0;
padding: 0;
list-style: none;
display: grid;
gap: 8px;
}
.price {
display: flex;
align-items: baseline;
gap: 8px;
margin-top: 10px;
}
.price s {
color: #94a3b8;
}
.chip {
font-size: 11px;
padding: 4px 8px;
border: 1px solid var(--sky100);
background: var(--sky50);
color: var(--primary);
border-radius: 999px;
font-weight: 700;
}
/* VIDEO SECTION */
.video-section {
background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #374151 100%);
color: white;
padding: 80px 0;
}
.video-section-title {
text-align: center;
font-size: 32px;
font-weight: 700;
margin-bottom: 48px;
color: white;
}
.video-grid {
display: grid;
grid-template-columns: 1fr;
gap: 24px;
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
@media (min-width: 768px) {
.video-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 1024px) {
.video-grid {
grid-template-columns: repeat(3, 1fr);
}
}
.video-card {
background: rgba(255, 255, 255, 0.1);
border-radius: 16px;
overflow: hidden;
transition: all 0.3s ease;
cursor: pointer;
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.2);
}
.video-card:hover {
transform: translateY(-4px);
background: rgba(255, 255, 255, 0.15);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}
.video-thumbnail {
position: relative;
aspect-ratio: 16/9;
background: linear-gradient(45deg, #0f172a, #1e293b);
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.video-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.3s ease;
}
.video-card:hover .video-thumbnail img {
transform: scale(1.05);
}
.video-play-button {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 60px;
height: 60px;
background: rgba(255, 255, 255, 0.9);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
color: var(--primary);
transition: all 0.3s ease;
z-index: 2;
}
.video-card:hover .video-play-button {
transform: translate(-50%, -50%) scale(1.1);
background: white;
}
.video-content {
padding: 20px;
}
.video-title {
font-size: 16px;
font-weight: 600;
line-height: 1.4;
margin-bottom: 8px;
color: white;
}
.video-description {
font-size: 14px;
color: rgba(255, 255, 255, 0.8);
line-height: 1.5;
}
.video-section-footer {
text-align: center;
margin-top: 48px;
}
.video-see-all-btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 14px 28px;
background: white;
color: var(--primary);
border-radius: 50px;
text-decoration: none;
font-weight: 600;
font-size: 15px;
transition: all 0.3s ease;
border: 2px solid white;
}
.video-see-all-btn:hover {
background: transparent;
color: white;
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}
/* TESTIMONIALS */
#testimoni {
background: #f5f7f9;
}
.testimonials-carousel-container {
position: relative;
margin-top: 24px;
overflow-x: auto;
}
.testimonials-slider {
display: flex;
gap: 16px;
transition: transform 0.3s ease;
min-width: fit-content;
}
.testimonials-slider.static-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
max-width: 1200px;
margin: 0 auto;
padding: 0;
transform: none !important;
min-width: auto;
}
@media (max-width: 1024px) {
.testimonials-carousel-container {
padding: 0 40px;
}
}
@media (max-width: 768px) {
.testimonials-carousel-container {
padding: 0 20px;
}
}
.testimonial-card {
flex: 0 0 320px;
background: var(--card);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 24px;
display: flex;
flex-direction: column;
gap: 16px;
box-shadow: var(--shadow);
transition:
transform 0.2s ease,
box-shadow 0.2s ease;
min-height: 300px;
position: relative;
overflow: visible;
}
.testimonial-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
border-radius: 12px 12px 0 0;
opacity: 0.5;
}
@media (max-width: 1024px) {
.testimonial-card {
flex: 0 0 280px;
}
}
@media (max-width: 768px) {
.testimonial-card {
flex: 0 0 250px;
}
}
.testimonial-card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}
.testimonial-author {
display: flex;
align-items: flex-start;
gap: 12px;
margin-bottom: 16px;
position: relative;
z-index: 1;
}
.testimonial-avatar {
width: 48px;
height: 48px;
border-radius: 50%;
object-fit: cover;
object-position: center;
border: 2px solid var(--border);
flex-shrink: 0;
}
.testimonial-info {
flex-grow: 1;
}
.testimonial-name {
font-weight: 700;
font-size: 16px;
color: var(--text);
margin: 0 0 4px 0;
}
.testimonial-content {
font-size: 14px;
line-height: 1.7;
color: var(--text-medium);
flex-grow: 1;
position: relative;
z-index: 1;
margin: 0;
}
.testimonial-linkedin {
margin-left: auto;
display: flex;
align-items: center;
text-decoration: none;
opacity: 0.7;
transition: all 0.3s ease;
}
.testimonial-linkedin:hover {
opacity: 1;
}
.testimonial-linkedin img {
width: 24px;
height: 24px;
border-radius: 0;
}
.testimonial-role {
font-size: 12px;
color: var(--text-light);
margin-bottom: 2px;
}
.testimonial-company {
font-size: 12px;
color: var(--text-light);
font-weight: 500;
}
.testimonial-batch {
font-size: 11px;
color: var(--primary);
background: var(--accent-light);
padding: 2px 8px;
border-radius: 12px;
font-weight: 600;
white-space: nowrap;
}
.slide-nav {
display: flex;
justify-content: center;
gap: 16px;
margin-top: 32px;
position: relative;
}
.slide-nav.hidden {
display: none;
}
.slide-nav-btn {
width: 48px;
height: 48px;
border: 2px solid var(--primary);
border-radius: 50%;
background: var(--card);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
color: var(--primary);
}
.slide-nav-btn:hover {
background: var(--primary);
color: white;
transform: scale(1.05);
box-shadow: 0 4px 12px rgba(15, 111, 242, 0.3);
}
.slide-nav-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
pointer-events: none;
}
.nav-arrow {
width: 20px;
height: 20px;
transition: filter 0.2s ease;
}
.prev-arrow {
transform: rotate(90deg);
}
.next-arrow {
transform: rotate(-90deg);
}
/* FAQ */
.faq {
max-width: 760px;
margin: 0 auto;
}
details {
border: 1px solid #f1f2f9;
border-radius: 16px;
background: #fff;
margin-bottom: 12px;
box-shadow: 0 1px 4px rgba(25, 33, 61, 0.06);
}
summary {
cursor: pointer;
padding: 20px 22px;
font-weight: 700;
color: #170f49;
line-height: 1.4;
}
details[open] summary {
border-bottom: 1px solid var(--border);
}
details .content {
padding: 16px 22px 22px;
color: var(--text-light);
line-height: 1.7;
}
/* CTA */
.cta {
border: 1px solid var(--sky100);
background: linear-gradient(116deg, #f9fcff 0%, #daeeff 114%);
border-radius: var(--radius-lg);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
}
.cta .inner {
display: flex;
gap: 24px;
flex-direction: column;
padding: 28px;
}
@media (min-width: 768px) {
.cta .inner {
flex-direction: row;
align-items: center;
justify-content: space-between;
}
}
/* FOOTER */
footer {
border-top: 1px solid var(--border);
padding: 40px 0;
font-size: 14px;
color: var(--text-light);
}
/* AI Engineering Header/Footer */
.site-header {
background-color: #ffffff;
border-bottom: 1px solid var(--border);
padding: 16px 0;
position: sticky;
top: 0;
z-index: 50;
}
.header-container {
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1280px;
margin: 0 auto;
padding: 0 20px;
}
.logo img {
width: 200px;
height: 36px;
display: block;
}
.main-nav ul {
margin: 0;
padding: 0;
list-style: none;
display: flex;
align-items: center;
gap: 16px;
}
.main-nav a {
font-weight: 500;
font-size: 15px;
color: var(--text);
text-decoration: none;
padding: 10px 8px;
}
.main-nav a:hover {
color: var(--primary);
}
.hamburger-menu {
display: none;
flex-direction: column;
justify-content: space-around;
width: 24px;
height: 24px;
background: none;
border: none;
cursor: pointer;
padding: 0;
z-index: 1001;
}
.hamburger-line {
width: 100%;
height: 2px;
background-color: var(--text);
transition: all 0.3s ease;
}
.hamburger-menu.active .hamburger-line:nth-child(1) {
transform: rotate(45deg) translate(6px, 6px);
}
.hamburger-menu.active .hamburger-line:nth-child(2) {
opacity: 0;
}
.hamburger-menu.active .hamburger-line:nth-child(3) {
transform: rotate(-45deg) translate(6px, -6px);
}
.mobile-nav {
position: absolute;
top: 100%;
left: 0;
right: 0;
background-color: #ffffff;
border-bottom: 1px solid var(--border);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
z-index: 9999;
max-height: 0;
overflow: hidden;
transition:
max-height 0.3s ease,
opacity 0.3s ease;
opacity: 0;
}
.mobile-nav.active {
max-height: 400px;
opacity: 1;
}
.mobile-nav ul {
list-style: none;
padding: 12px 20px;
margin: 0;
}
.mobile-nav a {
display: block;
padding: 14px 4px;
color: var(--text);
font-weight: 500;
font-size: 15px;
}
@media (max-width: 768px) {
.main-nav {
display: none;
}
.hamburger-menu {
display: flex;
}
}
.site-footer {
background-color: var(--color-background-dark, #000);
color: #ffffff;
padding: 48px 0;
border-top: none;
}
.footer-container {
max-width: 1280px;
margin: 0 auto;
display: flex;
flex-direction: column;
gap: 48px;
padding: 0 20px;
}
.footer-top {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 24px;
}
.footer-logo img {
width: 200px;
height: 36px;
}
.footer-nav ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap;
gap: 16px;
}
.footer-nav a {
color: #ffffff;
text-decoration: none;
font-size: 15px;
opacity: 0.9;
}
.footer-nav a:hover {
opacity: 1;
}
.social-icons {
display: flex;
gap: 16px;
}
.social-icons a {
color: #9ca3af;
text-decoration: none;
transition: color 0.2s ease;
}
.social-icons a:hover {
color: #ffffff;
}
.footer-bottom {
text-align: center;
font-size: 14px;
padding-top: 32px;
border-top: 1px solid rgba(255, 255, 255, 0.2);
}
/* WhatsApp Consultation Container */
.whatsapp-consult {
position: fixed;
bottom: 20px;
right: 20px;
background: #25d366;
border-radius: 25px;
display: flex;
align-items: center;
gap: 10px;
padding: 12px 16px;
box-shadow: 0 4px 12px rgba(37, 211, 102, 0.3);
z-index: 1001;
text-decoration: none;
transition: all 0.3s ease;
cursor: pointer;
}
.whatsapp-consult:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(37, 211, 102, 0.4);
}
.whatsapp-consult svg {
width: 20px;
height: 20px;
fill: white;
flex-shrink: 0;
}
.whatsapp-consult-text {
color: white;
font-weight: 600;
font-size: 14px;
white-space: nowrap;
}
</style>
<script type="module" crossorigin src="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/rea/assets/index-BDXVvFHL.js"></script>
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PVNLZFT" height="0" width="0"
style="display: none; visibility: hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- AI Engineering style Header -->
<header id="header" class="site-header">
<div class="header-container">
<a href="#" class="logo" aria-label="REA Home">
<img src="https://cdn-web.ruangguru.com/file-uploader/dd4a94a6-93fd-41d7-9cd8-8c5ce6e857f1.png"
alt="Ruangguru Engineering Academy" />
</a>
<nav class="main-nav">
<ul>
<li><a href="#program">Program</a></li>
<li><a href="#testimoni">Testimoni</a></li>
<li><a href="#video">Learning Video</a></li>
<li><a href="https://www.ruangguru.com/rea/kamus">Kamus</a></li>
</ul>
</nav>
<button class="hamburger-menu" id="hamburger-menu" aria-label="Toggle navigation">
<span class="hamburger-line"></span>
<span class="hamburger-line"></span>
<span class="hamburger-line"></span>
</button>
</div>
<nav class="mobile-nav" id="mobile-nav">
<ul>
<li><a href="#program">Program</a></li>
<li><a href="#testimoni">Testimoni</a></li>
<li><a href="#video">Video</a></li>
<li><a href="https://www.ruangguru.com/rea/kamus">Kamus</a></li>
</ul>
</nav>
</header>
<main>
<!-- HERO -->
<section class="hero">
<div class="container hero-grid">
<div>
<div class="badge">Program Kelas Live</div>
<h1 class="h1">
Tingkatkan Karier Teknologi Anda dengan Program
<span>Bootcamp AI Intensif</span>
untuk Masa Depan!
</h1>
<p class="lead">
Dari pemula hingga siap kerja, Bootcamp AI Ruangguru Engineering Academy membantu Anda menguasai Python,
Machine Learning, dan AI Engineering. Belajar terstruktur, intensif,
bersertifikat, dan relevan dengan kebutuhan industri.
</p>
<div style="margin-top: 16px; display: flex; gap: 10px; flex-wrap: wrap">
<a class="btn" href="#program">Lihat Detail Kelas</a>
<a class="btn btn-outline" href="#video">Lihat Video Belajar</a>
</div>
<div class="stats">
<div class="card">
<div class="p">
<div style="font-weight: 700; margin-bottom: 4px">10 Juta</div>
<div style="font-size: 12px; color: #64748b">Pengguna Skill Academy</div>
</div>
</div>
<div class="card">
<div class="p">
<div style="font-weight: 700; margin-bottom: 4px">15 Ribu</div>
<div style="font-size: 12px; color: #64748b">Peserta Bimbel Skill Academy x REA</div>
</div>
</div>
<div class="card">
<div class="p">
<div style="font-weight: 700; margin-bottom: 4px">2x Lipat</div>
<div style="font-size: 12px; color: #64748b">Peningkatan Pemahaman Materi Bimbel.</div>
</div>
</div>
<div class="card">
<div class="p">
<div style="font-weight: 700; margin-bottom: 4px">94%</div>
<div style="font-size: 12px; color: #64748b">Tingkat Kepuasan Peserta Bimbel Skill Academy</div>
</div>
</div>
</div>
</div>
<div class="hero-media">
<div style="aspect-ratio: 16/9; width: 100%; overflow: hidden; border-radius: 12px; background: #000">
<iframe src="https://www.youtube.com/embed/EBA8ykqHxBY?si=X-RvZxg8aVPP8VRX&autoplay=1&mute=1&playsinline=1"
title="YouTube video player" style="width: 100%; height: 100%; border: 0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
</div>
</div>
</section>
<!-- PROGRAMS -->
<section id="program">
<div class="container">
<div style="display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap">
<div>
<div class="subtle">Pilih Jalur Belajar</div>
<h2 class="section-title">Program Unggulan</h2>
</div>
</div>
<div class="grid-2" style="margin-top: 18px">
<!-- Program 1 -->
<article class="card program-card">
<header>
<div class="tag">
<span class="chip">Kelas Live</span>
<span class="chip">Beginner Friendly</span>
</div>
<h3>AI Python Bootcamp</h3>
</header>
<div class="body">
<p>Pelajari dasar-dasar pemrograman Python dengan aplikasi AI dan proyek dunia nyata. Cocok untuk pemula
yang ingin terjun ke dunia AI.</p>
<ul class="bullets">
<li>✓ Kurikulum: Python, Streamlit, NLP, Transformers, Deployment</li>
<li>✓ 2 fun projects + 1 final project</li>
<li>✓ Hands-on learning dengan mentorship dari praktisi industri</li>
</ul>
<div style="display: flex; align-items: flex-end; justify-content: space-between; margin-top: 16px">
<div>
<div style="color: #94a3b8"><s>Rp 2.500.000</s></div>
<div class="price">
<strong style="font-size: 20px">Rp 2.000.000</strong>
<span class="chip">20%</span>
</div>
</div>
<a class="btn" href="https://www.ruangguru.com/rea/ai-python" target="_blank" rel="noreferrer">Lihat
Detail Kelas</a>
</div>
</div>
</article>
<!-- Program 2 -->
<article class="card program-card">
<header>
<div class="tag">
<span class="chip">Kelas Live</span>
<span class="chip">Intermediate to Advanced</span>
</div>
<h3>AI Engineering Bootcamp</h3>
</header>
<div class="body">
<p>Bangun karir di era AI dengan kurikulum intensif dan komprehensif. Kuasai teknologi terdepan untuk
membangun proyek AI profesional.</p>
<ul class="bullets">
<li>✓ Kurikulum: Machine Learning, LLM, RAG, Multimodal AI</li>
<li>✓ Proyek portofolio dan dukungan karir berkelanjutan</li>
<li>✓ Pembelajaran hands-on dengan mentorship dari praktisi industri</li>
</ul>
<div style="display: flex; align-items: flex-end; justify-content: space-between; margin-top: 16px">
<div>
<div style="color: #94a3b8"><s>Rp 5.000.000</s></div>
<div class="price">
<strong style="font-size: 20px">Rp 4.750.000</strong>
<span class="chip">5%</span>
</div>
</div>
<a class="btn" href="https://www.ruangguru.com/rea/ai-engineering" target="_blank"
rel="noreferrer">Lihat Detail Kelas</a>
</div>
</div>
</article>
</div>
</div>
</section>
<!-- TESTIMONIALS -->
<!-- Testimonials Section - Cloned from AI Engineering -->
<section id="testimoni" class="testimonials-section section-container">
<div class="container">
<div
style="display: flex; align-items: flex-end; justify-content: center; text-align: center; gap: 16px; flex-wrap: wrap">
<h2 class="section-title w-50">Cerita Alumni Setelah Bootcamp AI di Ruangguru Engineering Academy</h2>
</div>
<div class="testimonials-carousel-container">
<div class="testimonials-slider" id="testimonials-slider">
<!-- AI Engineering Alumni -->
<article class="testimonial-card">
<div class="testimonial-author">
<img src="https://cdn-web.ruangguru.com/file-uploader/499919e1-0990-4e39-93db-f74aa1ba7828.jpg"
alt="Mohammad Dimas Noufal" class="testimonial-avatar" />
<div class="testimonial-info">
<h3 class="testimonial-name">Mohammad Dimas Noufal</h3>
<div class="testimonial-role">Mobile Developer</div>
<div class="testimonial-company">PT. Hasta Prima Solusi</div>
<span class="testimonial-batch">Mastering AI Batch 2</span>
</div>
<a href="https://www.linkedin.com/in/mohammad-dimas-noufal/" target="_blank" rel="noopener noreferrer"
class="testimonial-linkedin">
<img src="https://cdn-web.ruangguru.com/file-uploader/4594ce5d-350f-4eba-9adf-66a24b0e70ac.svg"
alt="LinkedIn" />
</a>
</div>
<p class="testimonial-content">
"Mengikuti Bootcamp AI Mastery by Ruangguru Batch 2 adalah pengalaman berharga. Materinya praktis dan
mudah dipahami, sangat membantu saya memahami AI dari dasar hingga penerapan
nyata. Mentor yang kompeten membuat proses belajar jadi menyenangkan. Program ini juga membuka banyak
peluang dan meningkatkan kesiapan saya untuk dunia kerja."
</p>
</article>
<article class="testimonial-card">
<div class="testimonial-author">
<img src="https://cdn-web.ruangguru.com/file-uploader/168475ae-d0cc-40c2-94ce-41aa9cb69f50.jpeg"
alt="Ida Bagus Indrabudhi Kusuma" class="testimonial-avatar" />
<div class="testimonial-info">
<h3 class="testimonial-name">Ida Bagus Indrabudhi</h3>
<div class="testimonial-role">Research Assistant</div>
<div class="testimonial-company">AILO</div>
<span class="testimonial-batch">Mastering AI Batch 2</span>
</div>
<a href="https://www.linkedin.com/in/indrabudhikusuma/" target="_blank" rel="noopener noreferrer"
class="testimonial-linkedin">
<img src="https://cdn-web.ruangguru.com/file-uploader/4594ce5d-350f-4eba-9adf-66a24b0e70ac.svg"
alt="LinkedIn" />
</a>
</div>
<p class="testimonial-content">
"Belajar di Mastering AI Bootcamp sangat menyenangkan. Materinya lengkap, mulai dari teori hingga
praktik langsung dengan panduan hands-on yang terstruktur. Instruktur juga aktif
membimbing di kelas. Selain membangun model AI, saya juga belajar topik penting seperti MLOps, NLP, dan
CV. Pengalaman ini sangat melengkapi ilmu dari perkuliahan."
</p>
</article>
<!-- AI Python Alumni -->
<article class="testimonial-card">
<div class="testimonial-author">
<img src="https://cdn-web.ruangguru.com/file-uploader/34203cd5-de0b-4cf6-bf05-08f868b9b5b7.jpeg"
alt="Axel Fabianto" class="testimonial-avatar" />
<div class="testimonial-info">
<h3 class="testimonial-name">Axel Fabianto</h3>
<div class="testimonial-role">Frontend Developer</div>
<div class="testimonial-company">PT United Tractors Pandu Engineering</div>
<span class="testimonial-batch">AI Python Batch 1</span>
</div>
<a href="https://www.linkedin.com/in/axel-fabianto/" target="_blank" rel="noopener noreferrer"
class="testimonial-linkedin">
<img src="https://cdn-web.ruangguru.com/file-uploader/4594ce5d-350f-4eba-9adf-66a24b0e70ac.svg"
alt="LinkedIn" />
</a>
</div>
<p class="testimonial-content">
"Selama mengikuti program menurutku seru, materi mudah dipahami, mentor juga sabar dalam membimbing
peserta. Terutama membantu solving error yg dialami peserta, hal yang menurutku
sangat berbobot adalah ketika dalam mengerjakan tantangan dan project-project. Kita bener-benar langsung
disuru praktik. Tidak hanya belajar teori terus."
</p>
</article>
<article class="testimonial-card">
<div class="testimonial-author">
<img src="https://cdn-web.ruangguru.com/file-uploader/4530909e-14a0-4ac2-99d5-1a6e583cdd94.jpg"
alt="Felix Kho" class="testimonial-avatar" />
<div class="testimonial-info">
<h3 class="testimonial-name">Felix Kho</h3>
<div class="testimonial-role">Mahasiswa Teknik Sipil</div>
<div class="testimonial-company">Universitas Gadjah Mada</div>
<span class="testimonial-batch">AI Python Batch 1</span>
</div>
<a href="http://linkedin.com/in/felixkho" target="_blank" rel="noopener noreferrer"
class="testimonial-linkedin">
<img src="https://cdn-web.ruangguru.com/file-uploader/4594ce5d-350f-4eba-9adf-66a24b0e70ac.svg"
alt="LinkedIn" />
</a>
</div>
<p class="testimonial-content">
"Bootcamp ini sangat membantu saya memahami dasar Python dan penerapan AI. Materinya terstruktur dan
mudah dipahami, mentornya juga responsif dan sabar. Bagian paling berkesan saat
membuat fun project bisa langsung praktik dari ilmu yang dipelajari. Cocok banget untuk pemula yang baru
mulai belajar Python dan AI."
</p>
</article>
<article class="testimonial-card">
<div class="testimonial-author">
<img src="https://cdn-web.ruangguru.com/file-uploader/872d62d3-db99-4367-8306-74cf6db7a20c.jpeg"
alt="Kevin Adam" class="testimonial-avatar" />
<div class="testimonial-info">
<h3 class="testimonial-name">Kevin Adam</h3>
<div class="testimonial-role">Recruitment Consultant</div>
<div class="testimonial-company">Business Edge Personnel Service</div>
<span class="testimonial-batch">Mastering AI Batch 3</span>
</div>
<a href="https://www.linkedin.com/in/kevin-adam-prasetya/" target="_blank" rel="noopener noreferrer"
class="testimonial-linkedin">
<img src="https://cdn-web.ruangguru.com/file-uploader/4594ce5d-350f-4eba-9adf-66a24b0e70ac.svg"
alt="LinkedIn" />
</a>
</div>
<p class="testimonial-content">
"Mengikuti Mastering AI Bootcamp jadi pengalaman berharga bagi saya. Awalnya saya hanya tahu AI secara
umum, tapi kini saya paham konsep hingga praktik membangun model. Pendekatannya
hands-on, mentornya suportif, dan diskusinya aktif. Bootcamp ini jadi pondasi kuat dan membuat saya
lebih percaya diri membuat proyek AI."
</p>
</article>
<article class="testimonial-card">
<div class="testimonial-author">
<img src="https://cdn-web.ruangguru.com/file-uploader/f9bf9299-476e-453e-bc9b-1066de1c21d2.jpeg"
alt="Abi Ulwan Shafi" class="testimonial-avatar" />
<div class="testimonial-info">
<h3 class="testimonial-name">Abi Ulwan Shafi</h3>
<div class="testimonial-role">Pelajar Kelas 12</div>
<div class="testimonial-company">SMA N 5 KOTA JAMBI</div>
<span class="testimonial-batch">AI Python Batch 1</span>
</div>
</div>
<p class="testimonial-content">
"Seru banget belajar di Python AI Batch 1! Aku belajar banyak hal. Dari coding, Streamlit, OOP, Python,
GitHub, Hugging Face, NLP, hingga Transformer. Setiap akhir minggu ada fun
project yang bikin kita bebas berkreasi tanpa batas. Menurutku ini cara belajar yang super asik dan
bikin makin semangat eksplor AI"
</p>
</article>
</div>
<div class="slide-nav">
<button class="slide-nav-btn prev-btn" id="prevTestimonial" aria-label="Previous testimonial">
<img src="https://cdn-web.ruangguru.com/file-uploader/968b1f93-69ac-4b3a-be2e-d61802361fcc.svg"
alt="Previous" class="nav-arrow prev-arrow" />
</button>
<button class="slide-nav-btn next-btn" id="nextTestimonial" aria-label="Next testimonial">
<img src="https://cdn-web.ruangguru.com/file-uploader/968b1f93-69ac-4b3a-be2e-d61802361fcc.svg" alt="Next"
class="nav-arrow next-arrow" />
</button>
</div>
</div>
</div>
</section>
<!-- LEARNING VIDEO -->
<section id="video" class="video-section">
<div class="container">
<h2 class="video-section-title">Learning Video Bootcamp AI</h2>
<div class="video-grid">
<div class="video-card"
onclick="window.open('https://www.youtube.com/watch?v=yxYXq59osAo&list=PLEbbTnIZa6ikLi8XeQduaX4BDRUPEeXGs', '_blank')">
<div class="video-thumbnail">
<img src="https://img.youtube.com/vi/yxYXq59osAo/maxresdefault.jpg"
alt="Mastering AI: From Foundations to Applications" />
<div class="video-play-button">▶</div>
</div>
<div class="video-content">
<h3 class="video-title">Mastering AI: From Foundations to Applications</h3>
<p class="video-description">Pelajari dasar-dasar AI hingga aplikasi praktis dalam pengembangan software
modern</p>
</div>
</div>
<div class="video-card"
onclick="window.open('https://www.youtube.com/watch?v=XYjOk_4tvAA&list=PLEbbTnIZa6ikLi8XeQduaX4BDRUPEeXGs', '_blank')">
<div class="video-thumbnail">
<img src="https://img.youtube.com/vi/XYjOk_4tvAA/maxresdefault.jpg"
alt="Semantic Kernel: Unleashing GPT's Potential" />
<div class="video-play-button">▶</div>
</div>
<div class="video-content">
<h3 class="video-title">Semantic Kernel: Unleashing GPT's Potential</h3>
<p class="video-description">Manfaatkan kekuatan GPT dengan Semantic Kernel untuk aplikasi AI yang lebih
powerful</p>
</div>
</div>
<div class="video-card"
onclick="window.open('https://www.youtube.com/watch?v=9g30aFgJ4Ck&list=PLEbbTnIZa6ikLi8XeQduaX4BDRUPEeXGs', '_blank')">
<div class="video-thumbnail">
<img src="https://img.youtube.com/vi/9g30aFgJ4Ck/maxresdefault.jpg"
alt="How to Stay Relevant in the Age of AI" />
<div class="video-play-button">▶</div>
</div>
<div class="video-content">
<h3 class="video-title">How to Stay Relevant in the Age of AI</h3>
<p class="video-description">Tips dan strategi untuk tetap relevan di era kecerdasan buatan</p>
</div>
</div>
<div class="video-card"
onclick="window.open('https://www.youtube.com/watch?v=8TUFh2xniWk&list=PLEbbTnIZa6ikLi8XeQduaX4BDRUPEeXGs', '_blank')">
<div class="video-thumbnail">
<img src="https://img.youtube.com/vi/8TUFh2xniWk/maxresdefault.jpg"
alt="Build Personal AI Assistant with GPT" />
<div class="video-play-button">▶</div>
</div>
<div class="video-content">
<h3 class="video-title">Build Personal AI Assistant with GPT and Semantic Kernel</h3>
<p class="video-description">Cara membangun asisten AI personal menggunakan teknologi GPT</p>
</div>
</div>
<div class="video-card"
onclick="window.open('https://www.youtube.com/watch?v=IwL8GpPj3E4&list=PLEbbTnIZa6ikLi8XeQduaX4BDRUPEeXGs', '_blank')">
<div class="video-thumbnail">
<img src="https://img.youtube.com/vi/IwL8GpPj3E4/maxresdefault.jpg"
alt="Tutorial Training Emotion Recognition Model" />
<div class="video-play-button">▶</div>
</div>
<div class="video-content">
<h3 class="video-title">Tutorial Training Emotion Recognition Model</h3>
<p class="video-description">Step-by-step tutorial untuk melatih model pengenalan emosi</p>
</div>
</div>
<div class="video-card"
onclick="window.open('https://www.youtube.com/watch?v=zUzZgBqYg3s&list=PLEbbTnIZa6ikLi8XeQduaX4BDRUPEeXGs', '_blank')">
<div class="video-thumbnail">
<img src="https://img.youtube.com/vi/zUzZgBqYg3s/maxresdefault.jpg"
alt="Kickstart Your Career as AI Engineer" />
<div class="video-play-button">▶</div>
</div>
<div class="video-content">
<h3 class="video-title">Kickstart Your Career as AI Engineer - How Machine Learning Works</h3>
<p class="video-description">Panduan lengkap memulai karier sebagai AI Engineer profesional</p>
</div>
</div>
</div>
<div class="video-section-footer">
<a href="https://www.youtube.com/@ruangguruengineeringacademy" target="_blank" rel="noopener noreferrer"
class="video-see-all-btn">
Lihat Semua Video
<span>→</span>
</a>
</div>
</div>
</section>
</main>
<!-- AI Engineering style Footer -->
<footer id="footer" class="site-footer">
<div class="footer-container">
<div class="footer-top">
<a href="#" class="footer-logo" aria-label="REA Home">
<img src="https://cdn-web.ruangguru.com/file-uploader/2e4e9a95-6215-4b18-993d-b15ba7669189.png"
alt="Ruangguru Engineering Academy" />
</a>
<nav class="footer-nav">
<ul>
<li><a href="#program">Program</a></li>
<li><a href="#testimoni">Testimoni</a></li>
<li><a href="#video">Learning Video</a></li>
</ul>
</nav>
<div class="social-icons">
<a href="https://www.youtube.com/@ruangguruengineeringacademy" target="_blank" rel="noopener noreferrer"
title="YouTube" style="color: #9ca3af; text-decoration: none; transition: color 0.3s ease"
onmouseover="this.style.color='#ffffff'" onmouseout="this.style.color='#9ca3af'">
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
<path
d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z" />
</svg>
</a>
<a href="https://www.instagram.com/belajarcodingai/" target="_blank" rel="noopener noreferrer"
title="Instagram" style="color: #9ca3af; text-decoration: none; transition: color 0.3s ease"
onmouseover="this.style.color='#ffffff'" onmouseout="this.style.color='#9ca3af'">
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z" />
</svg>
</a>
</div>
</div>
<div class="footer-bottom">
<p>
©
<span id="year"></span>
Ruangguru Engineering Academy. All rights reserved.
</p>
</div>
</div>
</footer>
<!-- WhatsApp Consultation Container -->
<a href="https://api.whatsapp.com/send?phone=6289603901853&text=Hai%2C%20aku%20tertarik%20ikut%20program%20AI%20Bootcamp.%20Bisa%20dibantu%20untuk%20informasi%20lengkapnya%3F"
target="_blank" rel="noopener noreferrer" class="whatsapp-consult" aria-label="Chat via WhatsApp">
<svg viewBox="0 0 24 24">
<path
d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893A11.821 11.821 0 0020.89 3.488" />
</svg>
<span class="whatsapp-consult-text">Konsultasi Sekarang</span>
</a>
<script>
// smooth scroll for internal links
document.querySelectorAll('a[href^="#"]').forEach(a => {
a.addEventListener('click', e => {
const id = a.getAttribute('href');
if (id.length > 1) {
const el = document.querySelector(id);
if (el) {
e.preventDefault();
el.scrollIntoView({ behavior: 'smooth', block: 'start' });
// close mobile nav on click
const burger = document.getElementById('hamburger-menu');
const mnav = document.getElementById('mobile-nav');
if (burger && mnav && mnav.classList.contains('active')) {
burger.classList.remove('active');
mnav.classList.remove('active');
}
}
}
});
});
// current year
const yearEls = document.querySelectorAll('#year');
yearEls.forEach(el => (el.textContent = new Date().getFullYear()));
// mobile nav toggle
(function () {
const burger = document.getElementById('hamburger-menu');
const mnav = document.getElementById('mobile-nav');
if (!burger || !mnav) return;
burger.addEventListener('click', e => {
e.preventDefault();
e.stopPropagation();
burger.classList.toggle('active');
mnav.classList.toggle('active');
});
document.addEventListener('click', e => {
if (!mnav.contains(e.target) && !burger.contains(e.target)) {
burger.classList.remove('active');
mnav.classList.remove('active');
}
});
})();
// testimonials slider functionality
(function () {
const slider = document.getElementById('testimonials-slider');
const prevBtn = document.getElementById('prevTestimonial');
const nextBtn = document.getElementById('nextTestimonial');
const slideNav = document.querySelector('.slide-nav');
if (!slider || !prevBtn || !nextBtn) return;
const cards = slider.querySelectorAll('.testimonial-card');
let currentTranslate = 0;
let cardWidth = 320;
let visibleCards = 3;
let maxTranslate = 0;
function calculateDimensions() {
const containerWidth = slider.parentElement.clientWidth - 120; // Account for padding
if (window.innerWidth >= 1200) {
cardWidth = 320;
visibleCards = Math.floor(containerWidth / (cardWidth + 24));
visibleCards = Math.min(visibleCards, 3);
} else if (window.innerWidth >= 768) {
cardWidth = 280;
visibleCards = Math.floor(containerWidth / (cardWidth + 24));
visibleCards = Math.min(visibleCards, 2);
} else {
cardWidth = 250;
visibleCards = 1;
}
maxTranslate = Math.max(0, (cards.length - visibleCards) * (cardWidth + 24));
}
function checkSliderMode() {
calculateDimensions();
// With 5 cards, we want slider mode on larger screens, grid on smaller
if (window.innerWidth >= 1024 && cards.length > 3) {
// Slider mode for larger screens with more than 3 cards
slider.classList.remove('static-grid');
slideNav.classList.remove('hidden');
updateSlider();
} else {
// Static grid mode
slider.classList.add('static-grid');
slideNav.classList.add('hidden');
slider.style.transform = 'none';
}
}
function updateSlider() {
if (slider.classList.contains('static-grid')) return;
currentTranslate = Math.max(0, Math.min(currentTranslate, maxTranslate));
slider.style.transform = `translateX(-${currentTranslate}px)`;
// Update button states
prevBtn.disabled = currentTranslate === 0;
nextBtn.disabled = currentTranslate >= maxTranslate;
}
function nextSlide() {
if (slider.classList.contains('static-grid')) return;
currentTranslate = Math.min(currentTranslate + (cardWidth + 24), maxTranslate);
updateSlider();
}
function prevSlide() {
if (slider.classList.contains('static-grid')) return;
currentTranslate = Math.max(currentTranslate - (cardWidth + 24), 0);
updateSlider();
}
// Event listeners
nextBtn.addEventListener('click', nextSlide);
prevBtn.addEventListener('click', prevSlide);
// Initialize and handle window resize
checkSliderMode();
window.addEventListener('resize', () => {
currentTranslate = 0; // Reset position on resize
checkSliderMode();
});
// Touch/swipe support for mobile
let startX = 0;
let isDragging = false;
slider.addEventListener('touchstart', e => {
startX = e.touches[0].clientX;
isDragging = true;
});
slider.addEventListener('touchmove', e => {
if (!isDragging) return;
e.preventDefault();
});
slider.addEventListener('touchend', e => {
if (!isDragging) return;
const endX = e.changedTouches[0].clientX;
const diff = startX - endX;
if (Math.abs(diff) > 50) {
// Minimum swipe distance
if (diff > 0) {
nextSlide();
} else {
prevSlide();
}
}
isDragging = false;
});
})();
</script>
</body>
</html>