REA AI Bootcamp
Waste Classification
AI-powered waste classification system menggunakan computer vision untuk mengidentifikasi dan mengkategorikan berbagai jenis sampah, mendukung upaya recycling dan pengelolaan limbah yang
berkelanjutan.
About This Project
Ecoscan adalah sistem klasifikasi sampah otomatis menggunakan Computer Vision dan Machine Learning. Project ini dapat mengidentifikasi berbagai jenis sampah seperti plastik, kertas,
logam, organik, dan lainnya.
Menggunakan deep learning untuk membantu masyarakat dalam memilah sampah dengan benar, mendukung program recycling dan pengelolaan limbah yang ramah lingkungan.
Python
Computer Vision
CNN
Image Classification
HuggingFace
Project Goal
Tujuan utama project ini adalah membantu masyarakat dalam memilah sampah dengan benar menggunakan teknologi AI, sehingga dapat meningkatkan efektivitas program recycling.
Sistem ini dapat diintegrasikan dengan tempat sampah pintar atau aplikasi mobile untuk memberikan edukasi real-time tentang jenis sampah dan cara pembuangannya yang tepat.
"Saya membuat Ecoscan karena masalah pengelolaan sampah di Indonesia sangat serius dan membutuhkan solusi teknologi. Dengan AI dan computer vision, kita bisa membantu masyarakat
memilah sampah dengan benar untuk mendukung program recycling."
<!doctype html>
<html lang="id" class="no-js">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Ecoscan - Waste Classification - Portfolio REA</title>
<meta name="author" content="Ruangguru Tech Team" />
<meta name="publisher" content="PT Ruang Raya Indonesia" />
<meta name="description" content="Ecoscan project by Arkhen Bassam Ayubi - AI system untuk klasifikasi sampah menggunakan computer vision dan machine learning untuk mendukung recycling." />
<link rel="canonical" href="https://www.ruangguru.com/rea/portfolio/ecoscan" />
<link rel="icon" type="image/jpg" href="https://cdn-web.ruangguru.com/file-uploader/d2d58a11-1905-4ae2-ab6a-809190e7cd48.jpg" />
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Quicksand:wght@300..700&display=swap');
:root {
--color-primary: #0f6ff2;
--color-secondary: #0dc7f1;
--color-accent-light: #ecf7ff;
--color-text-dark: #21272a;
--color-text-medium: #2c313a;
--color-text-light: #697077;
--color-white: #ffffff;
--color-background-light: #f9fcff;
--color-background-dark: #000000;
--color-border: #dde1e6;
}
html {
overflow-x: hidden;
scroll-behavior: smooth;
}
body {
margin: 0;
font-family: 'Inter', sans-serif;
background-color: var(--color-white);
color: var(--color-text-dark);
overflow-x: hidden;
line-height: 1.6;
}
.page-container {
max-width: 1440px;
margin-left: auto;
margin-right: auto;
position: relative;
}
.section-container {
padding: 80px;
}
.header {
background-color: var(--color-white);
border-bottom: 1px solid var(--color-border);
padding: 20px 0;
position: sticky;
top: 0;
z-index: 100;
}
.nav {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 24px;
font-weight: 700;
color: var(--color-primary);
text-decoration: none;
}
.nav-links {
display: flex;
gap: 32px;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: var(--color-text-medium);
text-decoration: none;
font-weight: 500;
transition: color 0.3s ease;
}
.nav-links a:hover {
color: var(--color-primary);
}
.breadcrumb {
padding: 20px 0;
background-color: var(--color-background-light);
}
.breadcrumb-container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
.breadcrumb-nav {
display: flex;
align-items: center;
gap: 8px;
font-size: 14px;
color: var(--color-text-light);
}
.breadcrumb-nav a {
color: var(--color-primary);
text-decoration: none;
transition: color 0.2s ease;
}
.breadcrumb-nav a:hover {
color: var(--color-secondary);
}
.breadcrumb-separator {
color: var(--color-text-light);
margin: 0 4px;
}
.hero {
background: linear-gradient(135deg, var(--color-background-light) 0%, var(--color-accent-light) 100%);
padding: 80px 0;
}
.hero-container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
}
.hero-content {
text-align: left;
}
.hero-image {
text-align: center;
}
.hero-image img {
max-width: 100%;
height: auto;
border-radius: 16px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}
.hero-badge {
display: inline-block;
background-color: var(--color-primary);
color: var(--color-white);
padding: 8px 16px;
border-radius: 50px;
font-size: 14px;
font-weight: 500;
margin-bottom: 24px;
}
.hero h1 {
font-size: 48px;
font-weight: 700;
color: var(--color-text-dark);
margin: 0 0 16px 0;
line-height: 1.2;
}
.hero-subtitle {
font-size: 20px;
color: var(--color-text-light);
margin: 0 auto 32px auto;
max-width: 600px;
line-height: 1.5;
}
.hero-actions {
display: flex;
gap: 16px;
flex-wrap: wrap;
}
.btn {
display: inline-flex;
justify-content: center;
align-items: center;
padding: 16px 32px;
border-radius: 100px;
text-decoration: none;
font-family: 'Inter', sans-serif;
font-weight: 500;
font-size: 16px;
line-height: 1;
border: none;
cursor: pointer;
transition: all 0.3s ease;
box-sizing: border-box;
}
.btn-primary {
background-color: var(--color-text-medium);
color: var(--color-white);
}
.btn-primary:hover {
opacity: 0.9;
transform: translateY(-2px);
}
.btn-secondary {
background-color: transparent;
color: var(--color-text-medium);
border: 2px solid var(--color-text-medium);
}
.btn-secondary:hover {
background-color: var(--color-text-medium);
color: var(--color-white);
}
.project-showcase {
padding: 80px 0;
}
.showcase-container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
.showcase-image {
background-color: var(--color-white);
border: 1px solid var(--color-border);
border-radius: 16px;
padding: 40px;
margin-bottom: 60px;
text-align: center;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}
.showcase-image img {
max-width: 100%;
height: auto;
border-radius: 12px;
}
.project-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
margin-top: 60px;
}
.content-section {
background-color: var(--color-white);
padding: 40px;
border-radius: 16px;
border: 1px solid var(--color-border);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}
.content-section h2 {
font-size: 24px;
font-weight: 700;
color: var(--color-text-dark);
margin: 0 0 16px 0;
}
.content-section p {
color: var(--color-text-light);
margin: 0 0 16px 0;
line-height: 1.6;
}
.tech-stack {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 24px;
}
.tech-tag {
background-color: var(--color-accent-light);
color: var(--color-primary);
padding: 6px 12px;
border-radius: 20px;
font-size: 14px;
font-weight: 500;
border: 1px solid rgba(15, 111, 242, 0.2);
}
.author-section {
background: var(--color-background-light);
padding: 60px 40px;
border-radius: 20px;
text-align: left;
margin: 60px 0;
position: relative;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
display: flex;
align-items: flex-start;
gap: 24px;
}
.author-section:hover {
transform: none;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
}
.author-section::before {
display: none;
}
.author-info {
display: flex;
flex-direction: column;
min-width: 140px;
align-items: flex-start;
}
.author-avatar {
width: 60px;
height: 60px;
border-radius: 50%;
margin: 0 0 16px 0;
background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
font-weight: 700;
color: var(--color-white);
flex-shrink: 0;
}
.author-name {
font-size: 18px;
font-weight: 700;
margin: 0 0 4px 0;
color: var(--color-text-dark);
}
.author-batch {
font-size: 14px;
color: var(--color-text-light);
font-weight: 500;
}
.quote {
background: transparent;
padding: 0;
border-radius: 0;
margin: 0;
border: none;
box-shadow: none;
position: relative;
overflow: visible;
flex: 1;
}
.quote::before {
content: '“';
position: absolute;
top: -8px;
left: -8px;
font-size: 32px;
color: var(--color-primary);
opacity: 0.4;
font-family: Georgia, serif;
line-height: 1;
}
.quote-text {
font-style: italic;
color: var(--color-text-medium);
font-size: 16px;
line-height: 1.6;
margin: 0;
font-weight: 400;
position: relative;
z-index: 2;
}
.footer {
background-color: var(--color-text-dark);
color: var(--color-white);
padding: 60px 0;
text-align: center;
margin-top: 80px;
}
.footer-container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
.footer-links {
display: flex;
justify-content: center;
gap: 32px;
margin-top: 20px;
flex-wrap: wrap;
}
.footer-links a {
color: rgba(255, 255, 255, 0.8);
text-decoration: none;
transition: color 0.3s ease;
}
.footer-links a:hover {
color: var(--color-white);
}
@media (max-width: 1024px) {
.section-container {
padding: 60px 40px;
}
.hero-container {
gap: 40px;
}
.project-content {
gap: 40px;
}
}
@media (max-width: 768px) {
.section-container {
padding: 40px 20px;
}
.hero-container {
grid-template-columns: 1fr;
gap: 40px;
}
.hero-content {
text-align: center;
}
.hero h1 {
font-size: 32px;
}
.hero-subtitle {
font-size: 18px;
}
.hero-actions {
justify-content: center;
}
.author-section {
flex-direction: column;
padding: 40px 24px;
margin: 60px 0 30px 0;
text-align: center;
gap: 20px;
}
.author-info {
align-items: center;
min-width: auto;
}
.author-name {
font-size: 16px;
}
.author-batch {
font-size: 13px;
}
.quote-text {
font-size: 15px;
}
.quote::before {
font-size: 24px;
top: -4px;
left: -4px;
}
.project-content {
grid-template-columns: 1fr;
gap: 32px;
}
.nav-links {
display: none;
}
.hero-actions {
flex-direction: column;
align-items: center;
}
.btn {
padding: 14px 20px;
font-size: 15px;
min-height: 48px;
}
}
/* ============================================================================
PROMO BANNER STYLES
============================================================================ */
.promo-banner-section {
background: linear-gradient(90deg, #ffffff 0%, #dceffd 100%);
border-bottom: 1px solid var(--color-border);
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
cursor: pointer;
overflow: hidden;
}
.promo-banner-container {
max-width: 1280px;
margin: 0 auto;
display: flex;
justify-content: center;
align-items: center;
gap: 16px;
padding: 12px 20px;
position: relative;
overflow: hidden;
}
.promo-text {
font-family: 'Inter', sans-serif;
font-size: 16px;
color: #333333;
margin: 0;
white-space: nowrap;
animation: marquee 20s linear infinite;
display: inline-block;
padding-left: 100%;
}
@keyframes marquee {
0% {
transform: translate3d(0, 0, 0);
}
100% {
transform: translate3d(-100%, 0, 0);
}
}
.promo-button {
font-family: 'Inter', sans-serif;
font-weight: 500;
font-size: 12px;
color: var(--color-primary);
text-decoration: none;
padding: 6px 12px;
border: 1px solid var(--color-primary);
border-radius: 100px;
transition: all 0.3s ease;
flex-shrink: 0;
white-space: nowrap;
background-color: transparent;
}
.promo-button:hover {
background-color: var(--color-primary);
color: var(--color-white);
}
/* ============================================================================
HEADER STYLES
============================================================================ */
.site-header {
background-color: var(--color-white);
border-bottom: 1px solid var(--color-border);
padding: 16px 80px;
position: relative;
}
.header-container {
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1280px;
margin: 0 auto;
}
.main-nav ul {
margin: 0;
padding: 0;
list-style: none;
display: flex;
align-items: center;
gap: 16px;
}
.main-nav a {
font-family: 'Inter', sans-serif;
font-weight: 500;
font-size: 16px;
color: var(--color-text-dark);
text-decoration: none;
padding: 12px 8px;
align-items: center;
gap: 4px;
}
.main-nav a:hover {
color: var(--color-primary);
}
/* Program Dropdown Styles */
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-toggle {
display: flex;
align-items: center;
gap: 4px;
cursor: pointer;
transition: all 0.3s ease;
font-family: 'Inter', sans-serif;
font-weight: 500;
font-size: 16px;
color: var(--color-text-dark);
text-decoration: none;
padding: 12px 8px;
}
.dropdown-toggle:hover {
color: var(--color-primary);
}
.dropdown-icon {
width: 16px;
height: 16px;
transition: transform 0.3s ease;
}
.dropdown.active .dropdown-icon {
transform: rotate(180deg);
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
background-color: var(--color-white);
border-radius: 12px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
padding: 16px;
min-width: 320px;
opacity: 0;
visibility: hidden;
transform: translateX(-50%) translateY(-10px);
transition: all 0.3s ease;
z-index: 1000;
border: 1px solid var(--color-border);
margin-top: 4px;
}
.dropdown.active .dropdown-menu {
opacity: 1;
visibility: visible;
transform: translateX(-50%) translateY(0);
}
.dropdown-item {
display: block;
padding: 16px;
text-decoration: none;
color: var(--color-text-dark);
border-radius: 8px;
transition: all 0.3s ease;
margin-bottom: 8px;
}
.dropdown-item:last-child {
margin-bottom: 0;
}
.dropdown-item:hover {
background-color: var(--color-background-light);
color: var(--color-primary);
}
.dropdown-item h4 {
font-family: 'Inter', sans-serif;
font-weight: 600;
font-size: 16px;
margin: 0 0 4px 0;
color: inherit;
}
.dropdown-item p {
font-family: 'Inter', sans-serif;
font-size: 14px;
color: var(--color-text-light);
margin: 0;
line-height: 1.4;
}
/* Mobile Dropdown in Mobile Nav */
.mobile-nav .dropdown-menu {
position: static;
visibility: visible;
opacity: 1;
transform: none;
box-shadow: none;
border: none;
border-radius: 0;
padding: 0;
min-width: auto;
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
margin-top: 0;
}
.mobile-nav .dropdown.active .dropdown-menu {
max-height: 300px;
}
.mobile-nav .dropdown-item {
padding: 16px 20px;
margin-bottom: 0;
border-radius: 0;
border-bottom: 1px solid var(--color-border);
display: block;
}
.mobile-nav .dropdown-item:last-child {
border-bottom: none;
}
.mobile-nav .dropdown-item h4 {
font-size: 15px;
margin-bottom: 4px;
font-weight: 600;
}
.mobile-nav .dropdown-item p {
font-size: 13px;
line-height: 1.4;
color: var(--color-text-light);
}
.mobile-nav .dropdown-toggle {
justify-content: space-between;
}
.mobile-nav .dropdown-icon {
width: 12px;
height: 12px;
}
.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(--color-text-dark);
transition: all 0.3s ease;
}
.mobile-nav {
position: absolute;
top: 100%;
left: 0;
right: 0;
background-color: var(--color-white);
border-bottom: 1px solid var(--color-border);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
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: 800px;
opacity: 1;
}
.mobile-nav ul {
list-style: none;
padding: 16px 20px;
margin: 0;
}
.mobile-nav a {
display: block;
padding: 16px 20px;
color: var(--color-text-dark);
text-decoration: none;
font-family: 'Inter', sans-serif;
font-weight: 500;
font-size: 16px;
transition: background-color 0.3s ease;
}
.mobile-nav a:hover,
.mobile-nav a:active {
background-color: var(--color-background-light);
color: var(--color-primary);
}
@media (max-width: 768px) {
.site-header {
padding: 16px 20px;
}
.main-nav {
display: none;
}
.hamburger-menu {
display: flex;
}
}
/* ============================================================================
FOOTER STYLES
============================================================================ */
.site-footer {
background-color: var(--color-background-dark);
color: var(--color-white);
padding: 48px 80px;
}
.footer-container {
max-width: 1280px;
margin: 0 auto;
display: flex;
flex-direction: column;
gap: 48px;
}
.footer-top {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 32px;
}
.footer-nav ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap;
gap: 16px;
}
.footer-nav a {
color: var(--color-white);
text-decoration: none;
font-family: 'Inter', sans-serif;
font-size: 16px;
}
.social-icons {
display: flex;
gap: 16px;
}
.footer-bottom {
text-align: center;
font-family: 'Inter', sans-serif;
font-size: 14px;
padding-top: 48px;
border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.footer-bottom p {
margin: 0;
}
/* ============================================================================
WHATSAPP CONSULTATION STYLES
============================================================================ */
@keyframes pulse {
0% {
box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7);
}
70% {
box-shadow: 0 0 0 10px rgba(37, 211, 102, 0);
}
100% {
box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
}
}
.whatsapp-consult {
position: fixed;
bottom: 20px;
right: 20px;
background: #25d366;
border-radius: 30px;
display: flex;
align-items: center;
gap: 12px;
padding: 16px 20px;
box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4);
z-index: 1001;
text-decoration: none;
transition: all 0.3s ease;
cursor: pointer;
animation: pulse 2s infinite;
}
.whatsapp-consult:hover {
transform: translateY(-3px) scale(1.05);
box-shadow: 0 8px 25px rgba(37, 211, 102, 0.5);
animation: none;
}
.whatsapp-consult svg {
width: 24px;
height: 24px;
fill: white;
flex-shrink: 0;
}
.whatsapp-consult-text {
color: white;
font-weight: 700;
font-size: 16px;
white-space: nowrap;
}
/* ============================================================================
STICKY CTA STYLES
============================================================================ */
.sticky-cta {
position: fixed;
display: none;
bottom: 0;
left: 0;
right: 0;
z-index: 1000;
background: white;
border-radius: 16px 16px 0 0;
box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
transition: transform 0.3s ease;
}
.sticky-cta-toggle {
position: absolute;
top: -20px;
left: 50%;
transform: translateX(-50%);
background: white;
border-radius: 20px;
width: 60px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
}
.toggle-icon {
width: 16px;
height: 16px;
transition: transform 0.3s ease;
}
.sticky-cta-collapsed {
padding: 16px 20px 20px 20px;
display: flex;
flex-direction: column;
gap: 12px;
}
.sticky-cta-expanded {
padding: 0 20px 16px 20px;
display: none;
flex-direction: column;
gap: 16px;
border-top: 1px solid #f0f0f0;
margin-top: 8px;
}
.urgency-info-collapsed {
display: flex;
gap: 12px;
justify-content: space-between;
}
.seats-filled {
background: #ff4444;
color: white;
padding: 8px 16px;
border-radius: 20px;
font-size: 14px;
font-weight: 600;
flex: 1;
text-align: center;
}
.limited-quota {
background: #f0f0f0;
color: var(--color-text-medium);
padding: 8px 16px;
border-radius: 20px;
font-size: 14px;
font-weight: 600;
flex: 1;
text-align: center;
}
.btn-whatsapp {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
background: #25d366;
color: white;
padding: 20px 32px;
border-radius: 50px;
text-decoration: none;
font-weight: 700;
font-size: 18px;
transition: all 0.3s ease;
width: 100%;
box-sizing: border-box;
animation: pulse 2s infinite;
}
.btn-whatsapp:hover {
background: #22c55e;
transform: translateY(-2px) scale(1.02);
box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4);
animation: none;
}
.whatsapp-icon {
font-size: 24px;
}
.pricing-info {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
margin-bottom: 8px;
}
.discount-badge {
background: #ff4444;
color: white;
padding: 4px 8px;
border-radius: 8px;
font-size: 14px;
font-weight: 600;
}
.price-container {
display: flex;
align-items: center;
gap: 8px;
}
.original-price {
text-decoration: line-through;
color: #999;
font-size: 16px;
}
.current-price {
font-size: 24px;
font-weight: 700;
color: var(--color-text-dark);
}
.payment-info {
background: #e8f4f8;
padding: 12px 16px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
}
.payment-option {
display: flex;
align-items: center;
gap: 8px;
font-size: 14px;
color: var(--color-text-medium);
}
.check-icon {
color: #4caf50;
font-weight: bold;
}
</style>
<script type="module" crossorigin src="https://cdn-web-2.ruangguru.com/landing-page-web/public/staticpages/www.ruangguru.com/rea/portfolio/ecoscan/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) -->
<!-- Header -->
<header id="header" class="site-header">
<div class="header-container">
<a href="https://www.ruangguru.com/rea" class="logo">
<img src="https://cdn-web.ruangguru.com/file-uploader/dd4a94a6-93fd-41d7-9cd8-8c5ce6e857f1.png" alt="REA Academy" style="height: 40px; width: auto" />
</a>
<nav class="main-nav">
<ul>
<li class="dropdown">
<a href="#" class="dropdown-toggle">
Program
<svg class="dropdown-icon" viewBox="0 0 24 24" fill="currentColor">
<path d="M7 10l5 5 5-5z" />
</svg>
</a>
<div class="dropdown-menu">
<a href="https://www.ruangguru.com/rea/ai-engineering" class="dropdown-item">
<h4>AI Engineering</h4>
<p>Bangun sistem AI end-to-end dengan teknologi terdepan</p>
</a>
<a href="https://www.ruangguru.com/rea/ai-python" class="dropdown-item">
<h4>AI Python</h4>
<p>Pelajari dasar-dasar pemrograman Python untuk AI</p>
</a>
</div>
</li>
<li><a href="https://www.ruangguru.com/rea/ai-engineering#syllabus">Silabus</a></li>
<li><a href="https://www.ruangguru.com/rea/ai-engineering#instructors">Instruktur</a></li>
<li><a href="https://www.ruangguru.com/rea/ai-engineering#alumni">Alumni</a></li>
<li><a href="https://cta.ruangguru.com/rea-ai-engineering-consult-sticky" target="_blank">Konsultasi</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 class="dropdown">
<a href="#" class="dropdown-toggle">
Program
<svg class="dropdown-icon" viewBox="0 0 24 24" fill="currentColor">
<path d="M7 10l5 5 5-5z" />
</svg>
</a>
<div class="dropdown-menu">
<a href="https://www.ruangguru.com/rea/ai-engineering" class="dropdown-item">
<h4>AI Engineering</h4>
<p>Bangun sistem AI end-to-end dengan teknologi terdepan</p>
</a>
<a href="https://www.ruangguru.com/rea/ai-python" class="dropdown-item">
<h4>AI Python</h4>
<p>Pelajari dasar-dasar pemrograman Python untuk AI</p>
</a>
</div>
</li>
<li><a href="https://www.ruangguru.com/rea/ai-engineering#syllabus">Silabus</a></li>
<li><a href="https://www.ruangguru.com/rea/ai-engineering#instructors">Instruktur</a></li>
<li><a href="https://www.ruangguru.com/rea/ai-engineering#alumni">Alumni</a></li>
<li><a href="https://cta.ruangguru.com/rea-ai-engineering-consult-sticky" target="_blank">Konsultasi</a></li>
</ul>
</nav>
</header>
<!-- Breadcrumb -->
<section class="breadcrumb">
<div class="breadcrumb-container">
<nav class="breadcrumb-nav" aria-label="Breadcrumb">
<a href="https://www.ruangguru.com/rea">Home</a>
<span class="breadcrumb-separator">></span>
<a href="https://www.ruangguru.com/rea/ai-engineering">AI Engineering</a>
<span class="breadcrumb-separator">></span>
<span>Ecoscan</span>
</nav>
</div>
</section>
<main>
<section class="hero">
<div class="hero-container">
<div class="hero-content">
<div class="hero-badge">REA AI Bootcamp</div>
<h1>Ecoscan</h1>
<h2 style="font-size: 24px; color: var(--color-text-light); font-weight: 400; margin: 8px 0 16px 0">Waste Classification</h2>
<p class="hero-subtitle">
AI-powered waste classification system menggunakan computer vision untuk mengidentifikasi dan mengkategorikan berbagai jenis sampah, mendukung upaya recycling dan pengelolaan limbah yang
berkelanjutan.
</p>
<div class="hero-actions">
<a href="https://huggingface.co/spaces/peshoet/wasteclassificationv2" class="btn btn-primary" target="_blank">Live Demo</a>
<a href="#about" class="btn btn-secondary">Learn More</a>
</div>
</div>
<div class="hero-image">
<img src="https://cdn-web.ruangguru.com/file-uploader/b1e48ffa-04c0-4b91-a06d-b91ccb5417cb.png" alt="Ecoscan Waste Classification Interface" />
</div>
</div>
</section>
<section class="project-showcase">
<div class="showcase-container">
<div class="project-content">
<div class="content-section" id="about">
<h2>About This Project</h2>
<p>
Ecoscan adalah sistem klasifikasi sampah otomatis menggunakan Computer Vision dan Machine Learning. Project ini dapat mengidentifikasi berbagai jenis sampah seperti plastik, kertas,
logam, organik, dan lainnya.
</p>
<p>Menggunakan deep learning untuk membantu masyarakat dalam memilah sampah dengan benar, mendukung program recycling dan pengelolaan limbah yang ramah lingkungan.</p>
<div class="tech-stack">
<span class="tech-tag">Python</span>
<span class="tech-tag">Computer Vision</span>
<span class="tech-tag">CNN</span>
<span class="tech-tag">Image Classification</span>
<span class="tech-tag">HuggingFace</span>
</div>
</div>
<div class="content-section">
<h2>Project Goal</h2>
<p>Tujuan utama project ini adalah membantu masyarakat dalam memilah sampah dengan benar menggunakan teknologi AI, sehingga dapat meningkatkan efektivitas program recycling.</p>
<p>Sistem ini dapat diintegrasikan dengan tempat sampah pintar atau aplikasi mobile untuk memberikan edukasi real-time tentang jenis sampah dan cara pembuangannya yang tepat.</p>
</div>
</div>
<div class="author-section">
<div class="author-info">
<img src="https://cdn-web.ruangguru.com/file-uploader/2bb4615e-5693-44d4-b2ef-43f999a0017a.jpg" alt="Arkhen Bassam Ayubi" class="author-avatar" style="object-fit: cover" />
<div class="author-name">Arkhen Bassam Ayubi</div>
<div class="author-batch">REA AI Bootcamp</div>
</div>
<div class="quote">
<p class="quote-text">
"Saya membuat Ecoscan karena masalah pengelolaan sampah di Indonesia sangat serius dan membutuhkan solusi teknologi. Dengan AI dan computer vision, kita bisa membantu masyarakat
memilah sampah dengan benar untuk mendukung program recycling."
</p>
</div>
</div>
</div>
</section>
</main>
<!-- Footer -->
<footer id="footer" class="site-footer">
<div class="footer-container">
<div class="footer-top">
<a href="https://www.ruangguru.com/rea" class="footer-logo">
<img src="https://cdn-web.ruangguru.com/file-uploader/2e4e9a95-6215-4b18-993d-b15ba7669189.png" alt="REA Academy" style="height: 32px; width: auto" />
</a>
<nav class="footer-nav">
<ul>
<li><a href="https://www.ruangguru.com/rea">Home</a></li>
<li><a href="https://www.ruangguru.com/rea/ai-engineering">AI Engineering</a></li>
<li><a href="https://www.ruangguru.com/rea/ai-python">AI Python</a></li>
<li><a href="https://cta.ruangguru.com/rea-ai-engineering-consult-sticky" target="_blank">Konsultasi</a></li>
</ul>
</nav>
<div class="social-icons"></div>
</div>
<div class="footer-bottom">
<p>© 2025 Ruangguru Engineering Academy. All rights reserved.</p>
</div>
</div>
</footer>
<!-- WhatsApp Consultation Container -->
<a href="https://cta.ruangguru.com/rea-ai-engineering-consult-sticky" 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>
<!-- Sticky CTA -->
<div class="sticky-cta" id="stickyCta">
<div class="sticky-cta-toggle" id="stickyCtaggle">
<img src="https://cdn-web.ruangguru.com/file-uploader/968b1f93-69ac-4b3a-be2e-d61802361fcc.svg" alt="Toggle" class="toggle-icon" />
</div>
<!-- Collapsed Content -->
<div class="sticky-cta-collapsed">
<div class="urgency-info-collapsed" id="urgency-info">
<div class="seats-filled" id="seats-filled"></div>
<div class="limited-quota" id="limited-quota"></div>
</div>
<div class="sticky-cta-button-collapsed">
<a href="#" class="btn-whatsapp" id="whatsapp-button">
<span class="whatsapp-icon" id="whatsapp-icon"></span>
<span id="whatsapp-text"></span>
</a>
</div>
</div>
<!-- Expanded Content -->
<div class="sticky-cta-expanded" id="stickyCtagontent">
<div class="pricing-info">
<div class="discount-badge" id="discount-badge"></div>
<div class="price-container">
<span class="original-price" id="original-price"></span>
<span class="current-price" id="current-price"></span>
</div>
</div>
<div class="payment-info">
<div class="payment-option">
<span class="check-icon">✓</span>
<span id="payment-info-text"></span>
</div>
</div>
</div>
</div>
<!-- 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 src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
<script>
// Dropdown functionality
document.addEventListener('DOMContentLoaded', function () {
const dropdowns = document.querySelectorAll('.dropdown');
dropdowns.forEach(dropdown => {
const toggle = dropdown.querySelector('.dropdown-toggle');
toggle.addEventListener('click', function (e) {
e.preventDefault();
dropdown.classList.toggle('active');
// Close other dropdowns
dropdowns.forEach(otherDropdown => {
if (otherDropdown !== dropdown) {
otherDropdown.classList.remove('active');
}
});
});
});
// Close dropdowns when clicking outside
document.addEventListener('click', function (e) {
if (!e.target.closest('.dropdown')) {
dropdowns.forEach(dropdown => {
dropdown.classList.remove('active');
});
}
});
// Mobile menu toggle
const hamburger = document.getElementById('hamburger-menu');
const mobileNav = document.getElementById('mobile-nav');
if (hamburger && mobileNav) {
hamburger.addEventListener('click', function () {
hamburger.classList.toggle('active');
mobileNav.classList.toggle('active');
});
}
});
</script>
</body>
</html>