Merge pull request 'feat: tambah isi konten keseluruhan' (#1) from feature/content into main

Reviewed-on: miaaurl/student-web-if-development-kit#1
Reviewed-by: Gladys23 <d1041231011@student.untan.ac.id>
This commit is contained in:
2026-06-04 13:33:21 +00:00
6 changed files with 3880 additions and 42 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

+824 -4
View File
@@ -4,6 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Group 01 &ndash; Jellyfish.Corp | Informatika UNTAN</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="../../assets/global/output.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@@ -1143,14 +1144,833 @@
<div class="container mx-auto px-4 lg:px-8 py-12">
<div class="mb-8 pb-8 border-b border-slate-200">
<span class="bg-untan-yellow text-slate-900 text-[10px] font-bold uppercase tracking-widest px-2 py-0.5 inline-block mb-3">Tugas Halaman Statis</span>
<h1 class="text-3xl lg:text-4xl font-bold text-slate-900 mb-2">Judul Halaman Group 01</h1>
<h1 class="text-3xl lg:text-4xl font-bold text-slate-900 mb-2">Sekilas Informatika UNTAN</h1>
<p class="text-slate-500 text-sm">Kelompok 01 &mdash; Jellyfish.Corp &nbsp;&middot;&nbsp; Informatika UNTAN 2026</p>
</div>
<div id="assignment-body" class="prose prose-slate max-w-none">
<!-- ================= START: BAGIAN YANG DIEDIT KELOMPOK ================= -->
<p>Tulis konten halaman kelompok di sini.</p>
<h3>Subjudul</h3>
<p>Gunakan paragraf, list, tabel, gambar, dan elemen konten lainnya.</p>
<!-- ===================== A. HERO ===================== -->
<section class="jf-hero-landing">
<div class="jf-hero-landing-bg"></div>
<div class="container jf-hero-landing-inner">
<div class="jf-hero-landing-content">
<h1 class="jf-hero-headline">Sekilas Informatika<br><span>Universitas Tanjungpura</span></h1>
<p class="jf-hero-sub">Mencetak talenta digital unggulan dari Kalimantan Barat untuk Indonesia dan
dunia. Bergabunglah bersama kami dalam perjalanan membangun masa depan teknologi.</p>
<div class="jf-hero-ctas">
<a href="#kontak" class="jf-hero-cta-primary">Daftar Sekarang</a>
<a href="#tentang" class="jf-hero-cta-secondary">Pelajari Lebih ↓</a>
</div>
<div class="jf-hero-stats">
<div class="jf-hs-item">
<span class="jf-hs-num">2004</span>
<span class="jf-hs-label">Tahun Berdirinya</span>
</div>
<div class="jf-hs-div"></div>
<div class="jf-hs-item">
<span class="jf-hs-num">512</span>
<span class="jf-hs-label">Mahasiswa Aktif</span>
</div>
<div class="jf-hs-div"></div>
</div>
</div>
</div>
</section>
<!-- ===== MAIN CONTENT ===== -->
<main id="assignment-body">
<!-- ===================== B. TENTANG PRODI ===================== -->
<section class="jf-section jf-section-white" id="tentang">
<div class="container">
<div class="jf-about-layout">
<div class="jf-about-left">
<span class="jf-badge">Tentang Prodi</span>
<h2 class="jf-section-title">Mengenal Program Studi Informatika UNTAN</h2>
<p class="jf-about-intro">Program Studi Informatika Universitas Tanjungpura hadir sejak
<strong>1993</strong> dan merupakan salah satu pusat pengembangan talenta digital di
Kalimantan Barat. Seiring berkembangnya era digital, kami terus berinovasi untuk menjadi
yang terdepan di bidang teknologi informasi yang terus maju.
</p>
<div class="jf-visi-misi-cards">
<div class="jf-vm-card jf-vm-visi">
<div class="jf-vm-label">🎯 Visi</div>
<p>Menjadi program studi unggul, inovatif, dan berdaya saing global, dengan fokus pada
informatika cerdas untuk mendukung keberlanjutan dan pemberdayaan masyarakat melalui
solusi teknologi berbasis kearifan lokal.</p>
</div>
</div>
<div class="jf-misi-section">
<div class="jf-misi-label">📋 Misi</div>
<div class="jf-misi-list">
<div class="jf-misi-item">
<div class="jf-misi-num">1</div>
<div>
<strong>Pendidikan OBE Unggul</strong>
<p>Menyelenggarakan pendidikan berbasis informatika cerdas yang unggul dan
inovatif melalui pendekatan OBE untuk menghasilkan lulusan yang kompeten,
adaptif, beretika, dan berdaya saing global.</p>
</div>
</div>
<div class="jf-misi-item">
<div class="jf-misi-num">2</div>
<div>
<strong>Penelitian untuk SDGs</strong>
<p>Mengembangkan penelitian unggul di bidang informatika cerdas yang mendukung
pencapaian Tujuan Pembangunan Berkelanjutan (SDGs) dan relevan dengan
tantangan lokal maupun global.</p>
</div>
</div>
<div class="jf-misi-item">
<div class="jf-misi-num">3</div>
<div>
<strong>Pengabdian Berbasis Kearifan Lokal</strong>
<p>Menerapkan dan mengembangkan solusi teknologi berbasis kearifan lokal dalam
kegiatan pengabdian kepada masyarakat untuk memberdayakan komunitas secara
inklusif dan berkelanjutan.</p>
</div>
</div>
<div class="jf-misi-item">
<div class="jf-misi-num">4</div>
<div>
<strong>Kemitraan Strategis</strong>
<p>Membangun kemitraan strategis dengan industri, pemerintah, dan institusi
akademik untuk memperkuat ekosistem riset, inovasi, dan penerapan
informatika cerdas yang memberikan dampak nyata.</p>
</div>
</div>
<div class="jf-misi-item">
<div class="jf-misi-num">5</div>
<div>
<strong>Budaya Akademik Beretika</strong>
<p>Menumbuhkan budaya akademik yang beretika, kolaboratif, kreatif, dan
berorientasi pada pembelajaran sepanjang hayat untuk mempersiapkan SDM
unggul menghadapi disrupsi teknologi.</p>
</div>
</div>
</div>
</div>
</div>
<div class="jf-about-right">
<div class="jf-timeline-card">
<div class="jf-timeline-title">Tonggak Sejarah</div>
<div class="jf-timeline-list">
<div class="jf-tl-item">
<div class="jf-tl-year">2004</div>
<div class="jf-tl-dot"></div>
<div class="jf-tl-content">
<strong>Pendirian Program Studi</strong>
<span>Penerimaan mahasiswa angkatan pertama diselenggarakan pada tanggal 18 Mei melalui mekanisme seleksi internal dan perpindahan studi dari Program Studi Teknik Elektro.</span>
</div>
</div>
<div class="jf-tl-item">
<div class="jf-tl-year">2005</div>
<div class="jf-tl-dot"></div>
<div class="jf-tl-content">
<strong>SNMPTN Pertama</strong>
<span>Penerimaan mahasiswa baru mulai diintegrasikan secara nasional melalui jalur Seleksi Nasional Masuk Perguruan Tinggi Negeri (SNMPTN).</span>
</div>
</div>
<div class="jf-tl-item">
<div class="jf-tl-year">2006</div>
<div class="jf-tl-dot"></div>
<div class="jf-tl-content">
<strong>Akreditasi C</strong>
<span>Program studi memperoleh peringkat Akreditasi C dari BAN-PT sebagai langkah awal penjaminan mutu akademik secara sistematis.</span>
</div>
</div>
<div class="jf-tl-item">
<div class="jf-tl-year">2008</div>
<div class="jf-tl-dot"></div>
<div class="jf-tl-content">
<strong>Kelas Malam & SPOTA</strong>
<span>Pembukaan program kelas sore/malam serta pengembangan SPOTA (Sistem Pendukung Outline Tugas Akhir) sebagai aplikasi inovatif perdana program studi.</span>
</div>
</div>
<div class="jf-tl-item">
<div class="jf-tl-year">2016</div>
<div class="jf-tl-dot"></div>
<div class="jf-tl-content">
<strong>Akreditasi B</strong>
<span>Peningkatan standar mutu akademik yang ditandai dengan pencapaian peringkat Akreditasi B dari BAN-PT.</span>
</div>
</div>
<div class="jf-tl-item">
<div class="jf-tl-year">2017</div>
<div class="jf-tl-dot"></div>
<div class="jf-tl-content">
<strong>Nama Resmi Berubah</strong>
<span>Perubahan nomenklatur program studi dari Teknik Informatika menjadi Informatika, serta penyesuaian gelar akademik lulusan dari Sarjana Teknik (S.T.) menjadi Sarjana Komputer (S.Kom.).</span>
</div>
</div>
<div class="jf-tl-item">
<div class="jf-tl-year">2019</div>
<div class="jf-tl-dot"></div>
<div class="jf-tl-content">
<strong>Angkatan PPAPK Terakhir</strong>
<span>Penyelenggaraan penerimaan mahasiswa jalur non-reguler (PPAPK) angkatan terakhir sebelum resmi dinonaktifkan.</span>
</div>
</div>
<div class="jf-tl-item">
<div class="jf-tl-year">2021</div>
<div class="jf-tl-dot"></div>
<div class="jf-tl-content">
<strong>EdoXid Lahir</strong>
<span>Peluncuran EdoXid, sistem informasi manajemen sidang tugas akhir berbasis digital guna memfasilitasi kebutuhan akademik selama masa pandemi.</span>
</div>
</div>
<div class="jf-tl-item">
<div class="jf-tl-year">2023</div>
<div class="jf-tl-dot"></div>
<div class="jf-tl-content">
<strong>Guru Besar Pertama</strong>
<span>Pengukuhan Guru Besar pertama Program Studi Informatika UNTAN, yaitu Prof. Dr. Herry Sujaini, S.T., M.T.</span>
</div>
</div>
<div class="jf-tl-item">
<div class="jf-tl-year">2025</div>
<div class="jf-tl-dot"></div>
<div class="jf-tl-content">
<strong>Kaprodi Ke-5</strong>
<span>Pelantikan Ibu Eva Faja Ripanti, S.Kom., M.M.S.I., Ph.D. sebagai Ketua Program Studi Informatika yang kelima.</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ===================== C. ANGKA ===================== -->
<section class="jf-section jf-section-light">
<div class="container">
<div class="jf-section-header jf-center">
<span class="jf-badge">Data &amp; Statistik</span>
<h2 class="jf-section-title">Informatika UNTAN dalam Angka</h2>
<p class="jf-section-sub">
<center>Bukan sekadar angka, ini adalah cerita nyata dari perjalanan panjang Informatika UNTAN.
</center>
</p>
</div>
<div class="jf-stats-grid">
<div class="jf-stat-card jf-stat-blue">
<div class="jf-stat-num">518</div>
<div class="jf-stat-label">Mahasiswa Aktif</div>
<div class="jf-stat-sub">Tahun Akademik 2024/2025</div>
</div>
<div class="jf-stat-card jf-stat-yellow">
<div class="jf-stat-num">213</div>
<div class="jf-stat-label">Total Alumni</div>
<div class="jf-stat-sub">Data sejak tahun 2022</div>
</div>
<div class="jf-stat-card jf-stat-green">
<div class="jf-stat-num"> 6 Bulan</div>
<div class="jf-stat-label">Waktu Tunggu Kerja</div>
<div class="jf-stat-sub">Rata-rata lulusan terserap</div>
</div>
</div>
<div class="jf-stats-row2">
<div class="jf-stat-row-card">
<div class="jf-stat-row-label">Dosen Tetap</div>
<div class="jf-stat-row-num" style="color:#005eb8;">33</div>
<p style="font-size:0.82rem;color:#475569;margin-top:0.4rem;">Berpengalaman dan bersertifikasi
di bidangnya masing-masing.</p>
</div>
<div class="jf-stat-row-card">
<div class="jf-stat-row-label">Jurnal Ilmiah</div>
<div class="jf-stat-row-num" style="color:#feb401;">400+ Jurnal</div>
<div style="margin-top:0.4rem; font-size:0.82rem; color:#475569;">
<div style="margin-bottom:0.2rem;">📄 JEPIN &nbsp;·&nbsp; JUSTIN</div>
<div>📄 JURISTY &nbsp;·&nbsp; JUARA</div>
</div>
</div>
<div class="jf-stat-row-card">
<div class="jf-stat-row-label">Guru Besar</div>
<div class="jf-stat-row-num" style="color:#10b981;">1 Guru Besar</div>
<p style="font-size:0.82rem;color:#475569;margin-top:0.4rem;">Prof. Dr. Herry Sujaini, S.T., M.T. — Guru Besar pertama
Informatika UNTAN (sejak 2023).</p>
</div>
</div>
<div style="text-align:center;margin-top:1.5rem;">
<div class="jf-stat-row-card" style="display:inline-block;padding:1rem 2.5rem;">
<div class="jf-stat-row-label">Rasio Dosen : Mahasiswa</div>
<div class="jf-stat-row-num" style="color:#7c3aed;font-size:2rem;">1 : 11</div>
<div style="font-size:0.75rem;color:#94a3b8;">Memenuhi standar BAN-PT</div>
</div>
</div>
</div>
</section>
<!-- ===================== D. PENCAPAIAN ===================== -->
<section class="jf-section jf-section-white">
<div class="container">
<div class="jf-section-header jf-center">
<span class="jf-badge">Prestasi</span>
<h2 class="jf-section-title">Pencapaian Membanggakan</h2>
<p class="jf-section-sub">
<center>Dari panggung nasional hingga kolaborasi internasional — Informatika UNTAN hadir,
bersaing, dan meninggalkan jejak.</center>
</p>
</div>
<div class="jf-filter-tabs">
<button class="jf-tab-btn jf-tab-active" data-filter="all">Semua</button>
<button class="jf-tab-btn" data-filter="kompetisi">Kompetisi</button>
<button class="jf-tab-btn" data-filter="publikasi">Publikasi &amp; Pengabdian</button>
<button class="jf-tab-btn" data-filter="aplikasi">Aplikasi Unggulan</button>
</div>
<div class="jf-prestasi-grid" id="prestasi-grid">
<div class="jf-prestasi-card" data-cat="kompetisi">
<span class="jf-prest-badge jf-prest-nasional">Kompetisi</span>
<h4>Finalis 10 Besar Competitive Programming Contest (COMPFEST) 17</h4>
<p>Berhasil meraih posisi 10 besar nasional pada COMPFEST 17, kompetisi pemrograman yang diselenggarakan oleh Universitas Indonesia (UI).</p>
<div class="jf-prest-meta"><span>📅 2025 </span><span>Finalis</span></div>
</div>
<div class="jf-prestasi-card" data-cat="kompetisi">
<span class="jf-prest-badge jf-prest-nasional">Kompetisi</span>
<h4>Tim Regional Terbaik GEMASTIK XVIII bidang Competitive Programming</h4>
<p>Berhasil menjadi Tim Regional Terbaik pada GEMASTIK XVIII oada bidang Competitive Programming </p>
<div class="jf-prest-meta"><span>📅 2025</span><span>Tim Regional Terbaik</span></div>
</div>
<div class="jf-prestasi-card" data-cat="kompetisi">
<span class="jf-prest-badge jf-prest-internasional">Kompetisi</span>
<h4>International Collegiate Programming Contest predikat Honor</h4>
<p>Tim competitive programming Informatika UNTAN berhasil lolos ke babak regional ICPC Asia Jakarta 2025.</p>
<div class="jf-prest-meta"><span>🌏Asia Jakarta Regional Contest 2025</span><span>Honor</span></div>
</div>
<div class="jf-prestasi-card" data-cat="kompetisi">
<span class="jf-prest-badge jf-prest-nasional"> GEMASTIK XVII</span>
<h4>Tim Regional Terbaik GEMASTIK XVII bidang Competitive Programming</h4>
<p>Berhasil menjadi Tim Regional Terbaik pada GEMASTIK XVII oada bidang Competitive Programming </p>
<div class="jf-prest-meta"><span>📅 2024</span><span>Tim Regional Terbaik</span></div>
</div>
<div class="jf-prestasi-card" data-cat="kompetisi">
<span class="jf-prest-badge jf-prest-nasional">Kompetisi</span>
<h4>LOMBA MTQ TINGKAT PROVINSI KALIMANTAN BARAT PESERTA CABANG TAHFIDZ HADITS GOLONGAN 100 HADIST DENGAN SANAD PUTRI</h4>
<p>Berpastisipasi pada MTQ tingkat provinsi Kalimantan Barat cabang Tahfidz Hadits 100 Hadits Bersanad Putri</p>
<div class="jf-prest-meta"><span>📅 2024</span><span>PESERTA</span></div>
</div>
<div class="jf-prestasi-card" data-cat="publikasi">
<span class="jf-prest-badge jf-prest-publikasi">Publikasi</span>
<h4>Customer Relationship Management (CRM) System pada Peningkatan Layanan Pengguna E-Learning</h4>
<p>Penulis: EF Ripanti, EE Pratama, F Asrin.
Penelitian ini mengkaji penerapan sistem CRM untuk meningkatkan kualitas layanan dan kepuasan pengguna pada platform e-learning.</p>
<div class="jf-prest-meta"><span>📅 2025</span></div>
</div>
<div class="jf-prestasi-card" data-cat="publikasi">
<span class="jf-prest-badge jf-prest-publikasi">Publikasi</span>
<h4>REKOMENDASI AREA PEMASARAN BAGI PEDAGANG SAYUR KELILING MENGGUNAKAN METODE DBSCAN DAN VISUALISASI HEATMAP</h4>
<p>Penulis: DA Nugraha, IY Sholva, EE Pratama.
Penelitian ini memanfaatkan metode BSCAN dan visualisasi heatmap untuk merekomendasikan area pemasaran yang potensial bagi pedagang sayur keliling.</p>
<div class="jf-prest-meta"><span>📅 2024</span></div>
</div>
<div class="jf-prestasi-card" data-cat="publikasi">
<span class="jf-prest-badge jf-prest-publikasi">Publikasi</span>
<h4>Data mining untuk pengelompokan saham pada sektor energi dengan metode k-means</h4>
<p>Penulis: AS Sukamto, W Setiawan, EE Pratama.
Penelitian ini menerapkan algoritma K-Means untuk mengelompokkan saham sektor energi berdasarkan karakteristik data yang serupa guna mendukung analisis investasi.</p>
<div class="jf-prest-meta"><span>📅 2023</span></div>
</div>
<div class="jf-prestasi-card" data-cat="publikasi">
<span class="jf-prest-badge jf-prest-penghargaan">Pengabdian Masyarakat</span>
<h4>KODINGMU PLATFORM BELAJAR COMPUTATIONAL THINKING BAGI SISWA SMAN 1 MEMPAWAH HILIR</h4>
<p>Kegiatan pengabdian yang bertujuan meningkatkan kemampuan berpikir komputasional dan pemecahan masalah siswa melalui pelatihan serta pemanfaatan platform pembelajaran Kodingmu berbasis aktivitas pemrograman yang interaktif dan menyenangkan.</p>
<div class="jf-prest-meta"><span>📅 2025</span></div>
</div>
<div class="jf-prestasi-card" data-cat="aplikasi">
<span class="jf-prest-badge" style="background:#e0f2fe;color:#0369a1;">Inovasi Aplikasi</span>
<h4>SPOTA (2008)</h4>
<p>Sistem Pendukung Outline Tugas Akhir — lahir dari ide dosen, dibangun mahasiswa, masih
digunakan hingga kini. Inovasi yang melampaui zamannya.</p>
<div class="jf-prest-meta"><span>📅 2008</span><span>💡 Masih aktif</span></div>
</div>
<div class="jf-prestasi-card" data-cat="aplikasi">
<span class="jf-prest-badge" style="background:#e0f2fe;color:#0369a1;">Inovasi Aplikasi</span>
<h4>EdoXid (2021)</h4>
<p>Sistem pengajuan sidang digital — hadir menjawab pandemi, kini naik kelas ke skala Fakultas
MIPA Universitas Tanjungpura.</p>
<div class="jf-prest-meta"><span>📅 2021</span><span>🚀 Skala Fakultas</span></div>
</div>
</div>
</div>
</section>
<!-- ===================== E. STUDY CLUB ===================== -->
<section class="jf-section jf-section-light">
<div class="container">
<div class="jf-section-header jf-center">
<span class="jf-badge">Komunitas</span>
<h2 class="jf-section-title">Study Club</h2>
<p class="jf-section-sub">
<center>Study Club hadir sebagai wadah pengembangan kompetensi mahasiswa melalui peminatan yang
terstruktur dan berbasis komunitas. Setiap study club dirancang untuk memperdalam keahlian
spesifik di bidang informatika.</center>
</p>
</div>
<div class="jf-sc-grid">
<div class="jf-sc-card">
<div class="jf-sc-icon" style="background:#eff6ff;">💻</div>
<div class="jf-sc-name">ARISE</div>
<div class="jf-sc-alias">&nbsp; Competitive Programming</div>
<p>Program kerja ini berfokus pada peminatan <em>competitive programming</em>. Mahasiswa dilatih
untuk mengasah kemampuan pemecahan masalah dan algoritma melalui kompetisi pemrograman
bergengsi tingkat nasional maupun internasional.</p>
</div>
<div class="jf-sc-card">
<div class="jf-sc-icon" style="background:#f0fdf4;">🛠️</div>
<div class="jf-sc-name">Software Development</div>
<div class="jf-sc-alias">&nbsp; Software Development </div>
<p>Berfokus pada peminatan software development. Materi yang diajarkan meliputi fundamental
dasar web, version control (GitHub), software development life cycle, Entity Relationship
Diagram, tech-stack, dan use case.</p>
</div>
<div class="jf-sc-card">
<div class="jf-sc-icon" style="background:#fefce8;">📊</div>
<div class="jf-sc-name">MINERVA</div>
<div class="jf-sc-alias">&nbsp; Data Mining</div>
<p>Berfokus pada peminatan data mining. Mahasiswa akan mendalami teknik penggalian data,
analisis statistik, dan penerapannya dalam berbagai domain industri untuk menghasilkan
insight yang bernilai.</p>
</div>
</div>
<div class="jf-sc-cta">
<div class="jf-sc-cta-left">
<strong>Bergabung dengan Study Club</strong>
<span>Study club ini terbuka bagi seluruh mahasiswa aktif Prodi Informatika UNTAN. Pilih
peminatan yang sesuai dengan minat dan tujuan karirmu.</span>
</div>
<a href="mailto:info@informatika.untan.ac.id" class="jf-cta-button">Info Lebih Lanjut →</a>
</div>
</div>
</section>
<!-- ===================== F. KARIR ===================== -->
<section class="jf-section jf-section-white">
<div class="container">
<div class="jf-karir-layout">
<div class="jf-karir-left">
<span class="jf-badge">Karir</span>
<h2 class="jf-section-title">Masa Depan Lulusan Informatika</h2>
<p class="jf-karir-headline-italic">Lulusan Informatika UNTAN bukan hanya pencari kerja — mereka
pencipta solusi.</p>
<p>Lulusan Prodi Informatika UNTAN diserap secara luas oleh industri teknologi, instansi
pemerintah, BUMN, dan startup. Dengan bekal kompetensi digital yang kuat, karir cemerlang
menanti di berbagai sektor strategis.</p>
<div class="jf-karir-other" style="margin-top:1.5rem;">
<strong>Bidang Karir Lainnya:</strong>
<div class="jf-chip-wrap" style="margin-top:0.5rem;">
<span class="jf-chip">IT Project Manager</span>
<span class="jf-chip">Database Admin</span>
<span class="jf-chip">Cloud Architect</span>
<span class="jf-chip">Game Developer</span>
<span class="jf-chip">Business Intelligence</span>
<span class="jf-chip">IoT Engineer</span>
<span class="jf-chip">Akademisi / Dosen</span>
</div>
</div>
</div>
<div class="jf-karir-right">
<div class="jf-karir-card jf-karir-navy">
<div class="jf-kc-title">Software Engineer</div>
<div class="jf-kc-chips">
<span>Backend</span><span>Frontend</span><span>Mobile Dev</span><span>DevOps</span>
</div>
<div class="jf-kc-company">Gojek, Tokopedia, Traveloka, Startup</div>
</div>
<div class="jf-karir-card jf-karir-purple">
<div class="jf-kc-title">Data &amp; AI Specialist</div>
<div class="jf-kc-chips">
<span>Data Scientist</span><span>ML Engineer</span><span>AI
Researcher</span><span>Business Analyst</span>
</div>
<div class="jf-kc-company">Bank, BUMN, Fintech</div>
</div>
<div class="jf-karir-card jf-karir-green">
<div class="jf-kc-title">Cybersecurity</div>
<div class="jf-kc-chips">
<span>Penetration Tester</span><span>Security Analyst</span><span>Network
Engineer</span>
</div>
<div class="jf-kc-company">BSSN, Kominfo, Perbankan</div>
</div>
<div class="jf-karir-card jf-karir-orange">
<div class="jf-kc-title">Wirausaha Digital</div>
<div class="jf-kc-chips">
<span>Founder Startup</span><span>Freelancer</span><span>Digital
Consultant</span><span>E-commerce</span>
</div>
<div class="jf-kc-company">Mandiri, Remote Work</div>
</div>
</div>
</div>
</div>
</section>
<!-- ===================== G. ALUMNI ===================== -->
<section class="jf-section jf-section-light">
<div class="container">
<div class="jf-section-header jf-center">
<span class="jf-badge">Alumni</span>
<h2 class="jf-section-title">Kisah Sukses Alumni</h2>
<p class="jf-section-sub">
<center>Mereka adalah bukti nyata bahwa Informatika UNTAN adalah batu loncatan menuju karir
gemilang — dari Pontianak, ke panggung dunia.</center>
</p>
</div>
<div class="jf-alumni-grid">
<div class="jf-alumni-card">
<div class="jf-alumni-header">
<div class="jf-alumni-avatar" style="background:linear-gradient(135deg,#005eb8,#00b5e2);">IF
</div>
<div>
<div class="jf-alumni-name">Izhan Fakhruzi</div>
<div class="jf-alumni-batch">Informatika, Angkatan 2005</div>
</div>
</div>
<div class="jf-alumni-photo-placeholder">
<div class="jf-alumni-photo-inner">
<img src="images\Izhan.jpg" alt="">
</div>
</div>
<div class="jf-alumni-roles">
<span>Dosen UM Pontianak</span>
<span>PhD Candidate Granada</span>
</div>
<p>Alumni Informatika UNTAN angkatan 2005 yang membangun fondasi kuat di bidang komputasi,
melanjutkan studi magister di Marmara University melalui beasiswa Türkiye Bursları,
berkarier sebagai dosen di Universitas Muhammadiyah Pontianak, dan kini menempuh doktoral di
Universidad de Granada dengan fokus pada kecerdasan buatan untuk sistem transportasi cerdas
dan informatika kesehatan.</p>
<div class="jf-alumni-divider"></div>
</div>
<div class="jf-alumni-card">
<div class="jf-alumni-header">
<div class="jf-alumni-avatar" style="background:linear-gradient(135deg,#7c3aed,#a855f7);">CD
</div>
<div>
<div class="jf-alumni-name">Charles Darwis Hariman</div>
<div class="jf-alumni-batch">Informatika, Angkatan 2018</div>
</div>
</div>
<div class="jf-alumni-photo-placeholder">
<div class="jf-alumni-photo-inner">
<img src="images\Charles.jpg" alt="">
</div>
</div>
<div class="jf-alumni-roles">
<span>Software Developer</span>
<span>FinTech Travixy Frankfurt</span>
</div>
<p>Alumni Informatika UNTAN dengan kemampuan kuat dalam pemrograman dan problem solving,
melanjutkan studi master di Saarland University Jerman dengan riset kecerdasan buatan
bertaraf internasional, lalu berkarier sebagai Software Developer di perusahaan FinTech
Travixy Frankfurt, mengembangkan platform pembiayaan yang menggerakkan transaksi bernilai
miliaran Euro.</p>
<div class="jf-alumni-divider"></div>
</div>
<div class="jf-alumni-card">
<div class="jf-alumni-header">
<div class="jf-alumni-avatar" style="background:linear-gradient(135deg,#059669,#10b981);">DP
</div>
<div>
<div class="jf-alumni-name">Dona Pramana Putra</div>
<div class="jf-alumni-batch">Informatika, Angkatan 2006</div>
</div>
</div>
<div class="jf-alumni-photo-placeholder">
<div class="jf-alumni-photo-inner">
<img src="images\Dona.jpg" alt="">
</div>
</div>
<div class="jf-alumni-roles">
<span>Product Team</span>
<span>AI Rudder</span>
</div>
<p>Alumni Informatika UNTAN angkatan 2006 yang kini berkarier sebagai Product Team di AI Rudder,
berbekal pengalaman pembelajaran berbasis proyek selama kuliah, melanjutkan studi S2 di
China melalui beasiswa, serta berkontribusi dalam industri kecerdasan buatan dengan
perspektif global.</p>
<div class="jf-alumni-divider"></div>
</div>
</div>
</div>
</section>
<!-- ===================== H. INFRASTRUKTUR ===================== -->
<section class="jf-section jf-section-dark">
<div class="container">
<div class="jf-section-header jf-center">
<span class="jf-badge">Infrastruktur</span>
<h2 class="jf-section-title" style="color:white;">Infrastruktur dan Fasilitas</h2>
<p class="jf-section-sub" style="color:white;">
<center style="color:rgba(255, 255, 255, 0.7);">Fasilitas lengkap dan modern untuk mendukung proses belajar, penelitian, dan inovasi
mahasiswa.</center>
</p>
<div class="jf-infra-line"></div>
</div>
<div class="jf-infra-grid">
<div class="jf-infra-card" style="background:linear-gradient(135deg,#0ea5e9,#0284c7);">
<div class="jf-infra-icon">🖥️</div>
<div class="jf-infra-name">8 Laboratorium</div>
<p>Lab Pemrograman, Jaringan, Multimedia, IoT, AI, Basis Data, Mobile Dev, dan Keamanan Siber —
ber-AC, High-Speed PC.</p>
<div class="jf-infra-stat"><span>8</span> Lab Aktif &amp; Berteknologi</div>
</div>
<div class="jf-infra-card" style="background:linear-gradient(135deg,#7c3aed,#6d28d9);">
<div class="jf-infra-icon">☁️</div>
<div class="jf-infra-name">Data Center</div>
<p>Server on-premise dengan infrastruktur cloud lokal berkapasitas tinggi untuk penelitian dan
deployment aplikasi.</p>
<div class="jf-infra-stat"><span>99.9%</span> Uptime · Redundant</div>
</div>
<div class="jf-infra-card" style="background:linear-gradient(135deg,#059669,#047857);">
<div class="jf-infra-icon">🚀</div>
<div class="jf-infra-name">IFUNTANHUB</div>
<p>Platform PaaS eksklusif mahasiswa untuk deploy aplikasi, hosting proyek, akses GPU computing,
dan kolaborasi tim.</p>
<div class="jf-infra-stat"><span>Gratis</span> · GPU Access</div>
</div>
<div class="jf-infra-card" style="background:linear-gradient(135deg,#d97706,#b45309);">
<div class="jf-infra-icon">📚</div>
<div class="jf-infra-name">E-Resources</div>
<p>Akses jurnal internasional Scopus, IEEE Xplore, ACM Digital Library, Springer, dan database
ilmiah lainnya.</p>
<div class="jf-infra-stat"><span>IEEE · Scopus · ACM</span></div>
</div>
</div>
<div class="jf-license-bar">
<span class="jf-lic-label">Lisensi Perangkat Lunak Tersedia:</span>
<div class="jf-lic-chips">
<span>Microsoft Office 365</span>
<span>JetBrains IDE</span>
<span>Adobe Creative Cloud</span>
<span>GitHub Enterprise</span>
<span>Figma Education</span>
<span>MATLAB</span>
<span>Cisco Packet Tracer</span>
<span>AWS Academy</span>
</div>
</div>
</div>
</section>
<!-- ===================== I. MITRA ===================== -->
<section class="jf-section jf-section-white">
<div class="container">
<div class="jf-section-header jf-center">
<span class="jf-badge">Kerjasama</span>
<h2 class="jf-section-title">Mitra Strategis Informatika UNTAN</h2>
<p class="jf-section-sub">
<center>Dibangun di atas kepercayaan dan kolaborasi dengan perusahaan teknologi, instansi
pemerintah, dan lembaga pendidikan terkemuka.</center>
</p>
</div>
<div class="jf-mitra-group-title">Industri &amp; Swasta</div>
<div class="jf-mitra-grid">
<div class="jf-mitra-card">
<div class="jf-mitra-logo"></div>
<div class="jf-mitra-name">PT. Indosat Ooredoo</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-logo"></div>
<div class="jf-mitra-name">PT. PLN Nusantara</div>
</div>
</div>
<div class="jf-mitra-group-title">Instansi Pemerintah</div>
<div class="jf-mitra-grid jf-mitra-grid-gov" style="grid-template-columns:repeat(6,1fr)">
<div class="jf-mitra-card">
<div class="jf-mitra-name">Diskominfo Kalbar</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">POLDA Kalbar</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">Bappeda Sambas</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">Bappeda Sintang</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">Bappeda Bengkayang</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">BKPSDM</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">BPBD Sintang</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">BKD Pontianak</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">Disperkim Singkawang</div>
</div>
</div>
<div class="jf-mitra-group-title">Perguruan Tinggi &amp; Lembaga Riset</div>
<div class="jf-mitra-grid" style="grid-template-columns:repeat(6,1fr);">
<div class="jf-mitra-card">
<div class="jf-mitra-name">UNIMAS Malaysia</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">UUM Malaysia</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">UCS Sarawak</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">UTEM Malaysia</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">IPB Indonesia</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">Polnep</div>
</div>
<div class="jf-mitra-card">
<div class="jf-mitra-name">Poltekkes Pontianak</div>
</div>
</div>
</div>
</section>
<!-- ===================== VIDEO PROFIL ===================== -->
<section class="jf-section jf-section-light">
<div class="container">
<div class="jf-section-header jf-center">
<span class="jf-badge">Video Profil</span>
<h2 class="jf-section-title">Profil Fakultas Teknik UNTAN</h2>
<p class="jf-section-sub">
<center>Kenali lebih dekat Fakultas Teknik Universitas Tanjungpura melalui video profil resmi
berikut.</center>
</p>
</div>
<div style="
display: flex;
justify-content: center;
margin-top: 2rem;
">
<a href="https://youtu.be/52Tn9e750aY?si=0_D7ZJMm1Yv8OQeh" target="_blank" rel="noopener noreferrer"
style="
display: block;
width: 100%;
max-width: 800px;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 8px 40px rgba(0,0,0,0.18);
aspect-ratio: 16/9;
position: relative;
text-decoration: none;
background: #000;
">
<!-- Thumbnail YouTube (maxresdefault / hqdefault) -->
<img src="https://img.youtube.com/vi/52Tn9e750aY/maxresdefault.jpg"
onerror="this.src='https://img.youtube.com/vi/52Tn9e750aY/hqdefault.jpg'"
alt="Profil Fakultas Teknik UNTAN" style="
width: 100%; height: 100%;
object-fit: cover;
display: block;
transition: opacity 0.3s;
" onmouseover="this.style.opacity='0.85'" onmouseout="this.style.opacity='1'" />
<!-- Overlay tombol play -->
<div style="
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 12px;
">
<div style="
width: 72px; height: 72px;
background: rgba(255,0,0,0.9);
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
box-shadow: 0 4px 20px rgba(0,0,0,0.4);
transition: transform 0.2s;
" onmouseover="this.style.transform='scale(1.1)'"
onmouseout="this.style.transform='scale(1)'">
<svg width="28" height="28" viewBox="0 0 24 24" fill="white">
<path d="M8 5v14l11-7z" />
</svg>
</div>
<span style="
color: #fff;
font-size: 15px;
font-weight: 600;
background: rgba(0,0,0,0.55);
padding: 5px 16px;
border-radius: 20px;
letter-spacing: 0.3px;
">Tonton di YouTube</span>
</div>
</a>
</div>
</div>
</section>
<!-- ===================== K. CTA / KONTAK ===================== -->
<section class="jf-section jf-cta-section" id="kontak">
<div class="container jf-cta-inner">
<div class="jf-cta-left">
<span class="jf-badge">Bergabung Bersama Kami</span>
<h2 class="jf-cta-title">Mulai Perjalanan Digital Anda <span class="jf-cta-highlight">Bersama
Kami</span></h2>
<p>Jadilah bagian dari komunitas informatika terbaik di Kalimantan Barat. Daftarkan diri Anda
sekarang dan wujudkan impian karir teknologi bersama Informatika UNTAN.</p>
<div class="jf-cta-btns">
<a href="#" class="jf-btn-yellow">Daftar Mahasiswa Baru</a>
<a href="https://wa.me/6285171655161" class="jf-btn-green">💬 Chat WhatsApp</a>
</div>
</div>
<div class="jf-cta-right">
<div class="jf-kontak-card">
<div class="jf-kontak-title">Informasi Kontak</div>
<div class="jf-kontak-list">
<div class="jf-kontak-item">
<div class="jf-kontak-icon">📍</div>
<div class="jf-kontak-info">
<div class="jf-kontak-label">Alamat</div>
<div class="jf-kontak-val">Jl. Prof. Dr. H. Hadari Nawawi, Bansir Laut, Kec.
Pontianak Tenggara, Kota Pontianak, Kalimantan Barat 78124</div>
</div>
</div>
<div class="jf-kontak-item">
<div class="jf-kontak-icon">✉️</div>
<div class="jf-kontak-info">
<div class="jf-kontak-label">Email</div>
<div class="jf-kontak-val">info@informatika.untan.ac.id</div>
</div>
</div>
<div class="jf-kontak-item">
<div class="jf-kontak-icon">💬</div>
<div class="jf-kontak-info">
<div class="jf-kontak-label">WhatsApp</div>
<div class="jf-kontak-val">+62 851-7165-5161<br><small>Senin Jumat, 08.00 16.00
WIB</small></div>
</div>
</div>
<div class="jf-kontak-item">
<div class="jf-kontak-icon">📞</div>
<div class="jf-kontak-info">
<div class="jf-kontak-label">Telepon / Fax</div>
<div class="jf-kontak-val">+62(561) 739637</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</main>
<!-- ================= END: BAGIAN YANG DIEDIT KELOMPOK ================= -->
</div>
</div>
+364
View File
@@ -0,0 +1,364 @@
// ===== LANGUAGE TOGGLE =====
let currentLang = 'id';
function setLangLabel(lang) {
const nextLang = lang === 'id' ? 'EN' : 'ID';
const labelDesktop = document.getElementById('lang-label');
const labelMobile = document.getElementById('lang-label-mobile');
if (labelDesktop) labelDesktop.textContent = nextLang;
if (labelMobile) labelMobile.textContent = nextLang;
}
function applyLang(lang) {
const pageBody = document.getElementById('page-body');
pageBody.classList.toggle('lang-id', lang === 'id');
pageBody.classList.toggle('lang-en', lang === 'en');
document.documentElement.lang = lang;
}
function toggleLang() {
currentLang = currentLang === 'id' ? 'en' : 'id';
applyLang(currentLang);
setLangLabel(currentLang);
}
document.getElementById('lang-toggle')?.addEventListener('click', toggleLang);
document.getElementById('lang-toggle-mobile')?.addEventListener('click', toggleLang);
// ===== SCROLL REVEAL =====
function initScrollReveal() {
const revealEls = document.querySelectorAll('.reveal');
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
observer.unobserve(entry.target);
}
});
}, { threshold: 0.1 });
revealEls.forEach(el => observer.observe(el));
}
initScrollReveal();
// ===== BACK TO TOP =====
function initBackToTop() {
const btn = document.getElementById('back-to-top');
if (!btn) return;
btn.addEventListener('click', () => window.scrollTo({ top: 0, behavior: 'smooth' }));
window.addEventListener('scroll', () => {
const isPastThreshold = window.scrollY > 400;
btn.classList.toggle('hidden', !isPastThreshold);
btn.classList.toggle('flex', isPastThreshold);
});
}
initBackToTop();
// ===== PRESTASI FILTER =====
function setActiveTabStyle(btn, isActive) {
btn.classList.toggle('bg-untan-navy', isActive);
btn.classList.toggle('text-white', isActive);
btn.classList.toggle('bg-white', !isActive);
btn.classList.toggle('text-slate-700', !isActive);
btn.classList.toggle('border', !isActive);
btn.classList.toggle('border-slate-200',!isActive);
}
function filterPrestasi(category) {
document.querySelectorAll('.prestasi-tab-btn').forEach(btn => {
setActiveTabStyle(btn, btn.dataset.tab === category);
});
document.querySelectorAll('#prestasi-grid .prestasi-card').forEach(card => {
card.style.display = (category === 'all' || card.dataset.category === category) ? '' : 'none';
});
}
function initPrestasiFilter() {
document.querySelectorAll('.prestasi-tab-btn').forEach(btn => {
btn.addEventListener('click', () => filterPrestasi(btn.dataset.tab));
});
}
initPrestasiFilter();
// ===== MEGA MENU =====
(function initMegaMenu() {
const menuItems = document.querySelectorAll('[data-menu]');
if (!menuItems.length) return;
let activeMenuId = null;
function closeAllMenus() {
document.querySelectorAll('.mega-panel').forEach(p => p.classList.remove('active'));
updateButtonStates(null);
activeMenuId = null;
}
function updateButtonStates(openMenuId) {
menuItems.forEach(item => {
const isActive = item.getAttribute('data-menu') === openMenuId;
const btn = item.querySelector('.nav-menu-btn');
const chevron = item.querySelector('.fa-chevron-down');
if (btn) {
btn.classList.toggle('active', isActive);
btn.setAttribute('aria-expanded', isActive ? 'true' : 'false');
}
if (chevron) chevron.style.transform = isActive ? 'rotate(180deg)' : '';
});
}
menuItems.forEach(item => {
const menuId = item.getAttribute('data-menu');
const btn = item.querySelector('.nav-menu-btn');
if (!btn) return;
btn.addEventListener('click', (e) => {
e.preventDefault();
e.stopPropagation();
if (activeMenuId === menuId) {
closeAllMenus();
} else {
closeAllMenus();
updateButtonStates(menuId);
activeMenuId = menuId;
}
});
});
document.addEventListener('keydown', e => { if (e.key === 'Escape') closeAllMenus(); });
document.addEventListener('click', e => { if (!e.target.closest('#main-nav') && activeMenuId) closeAllMenus(); });
})();
// ===== MOBILE MENU =====
function initMobileMenu() {
const menuBtn = document.getElementById('mobile-menu-btn');
const menu = document.getElementById('mobile-menu');
const closeBtn = document.getElementById('close-mobile-menu');
if (menuBtn && menu) {
menuBtn.addEventListener('click', () => {
const isOpen = menu.classList.toggle('-translate-x-full') === false;
menuBtn.setAttribute('aria-expanded', String(isOpen));
});
}
if (closeBtn && menu) {
closeBtn.addEventListener('click', () => menu.classList.add('-translate-x-full'));
}
}
initMobileMenu();
// ===== LUCO CHATBOT BUBBLE =====
function initLucoBubble() {
const bubble = document.getElementById('luco-bubble');
const closeBtn = document.getElementById('luco-bubble-close');
if (!bubble) return;
setTimeout(() => bubble.classList.remove('hidden'), 3000);
closeBtn?.addEventListener('click', (e) => {
e.stopPropagation();
bubble.classList.add('hidden');
});
}
initLucoBubble();
// ===== #ASSIGNMENT-BODY ENHANCEMENTS =====
(function initAssignmentBody() {
const body = document.getElementById('assignment-body');
if (!body) return;
// --- 1. Scroll-reveal untuk setiap child langsung ---
const revealTargets = body.querySelectorAll('h3, h4, p, ul, table, figure');
const revealObserver = new IntersectionObserver((entries) => {
entries.forEach((entry, i) => {
if (entry.isIntersecting) {
setTimeout(() => entry.target.classList.add('visible'), i * 60);
revealObserver.unobserve(entry.target);
}
});
}, { threshold: 0.08 });
revealTargets.forEach(el => {
el.classList.add('ab-reveal');
revealObserver.observe(el);
});
// --- 2. Collapsible: Alumni & Mitra (sections yang panjang) ---
// Wrap konten setelah h3 "Kisah Sukses Alumni" dalam collapsible
const allH3 = [...body.querySelectorAll('h3')];
const collapsibleTitles = ['Kisah Sukses Alumni', 'Mitra Strategis', 'Fasilitas Akademik'];
allH3.forEach(h3 => {
if (!collapsibleTitles.includes(h3.textContent.trim())) return;
// Kumpulkan sibling sampai h3 berikutnya
const siblings = [];
let next = h3.nextElementSibling;
while (next && next.tagName !== 'H3') {
siblings.push(next);
next = next.nextElementSibling;
}
if (!siblings.length) return;
// Buat wrapper collapsible
const wrapper = document.createElement('div');
wrapper.className = 'ab-collapsible';
h3.parentNode.insertBefore(wrapper, siblings[0]);
siblings.forEach(s => wrapper.appendChild(s));
// Buat tombol toggle
const btn = document.createElement('button');
btn.className = 'ab-readmore-btn';
btn.innerHTML = 'Lihat Detail <span class="arrow">▼</span>';
btn.setAttribute('aria-expanded', 'false');
h3.insertAdjacentElement('afterend', btn);
btn.addEventListener('click', () => {
const isOpen = wrapper.classList.toggle('open');
btn.classList.toggle('open', isOpen);
btn.innerHTML = isOpen
? 'Sembunyikan <span class="arrow">▼</span>'
: 'Lihat Detail <span class="arrow">▼</span>';
btn.setAttribute('aria-expanded', String(isOpen));
});
});
// --- 3. Table row highlight on click ---
body.querySelectorAll('tbody tr').forEach(row => {
row.style.cursor = 'pointer';
row.addEventListener('click', () => {
body.querySelectorAll('tbody tr.selected').forEach(r => r.classList.remove('selected'));
row.classList.add('selected');
row.style.background = '#dbeafe';
row.style.fontWeight = '600';
setTimeout(() => {
row.style.background = '';
row.style.fontWeight = '';
row.classList.remove('selected');
}, 1800);
});
});
// --- 4. Callout block: inject setelah paragraf karir ---
const pEls = [...body.querySelectorAll('p')];
const kariPara = pEls.find(p => p.textContent.includes('Rp 512 Juta'));
if (kariPara) {
const callout = document.createElement('div');
callout.className = 'ab-callout ab-reveal';
callout.textContent = '87% lulusan bekerja di bidang IT sesuai kompetensi, dengan rata-rata waktu tunggu kerja kurang dari 3 bulan.';
kariPara.insertAdjacentElement('afterend', callout);
revealObserver.observe(callout);
}
// --- 5. Tambahkan section label di atas setiap h3 ---
const sectionMap = {
'Mengenal Program Studi': 'Tentang Prodi',
'Visi': 'Identitas',
'Misi': 'Identitas',
'Tonggak Sejarah': 'Sejarah',
'dalam Angka': 'Data & Statistik',
'Pencapaian': 'Prestasi',
'Study Club': 'Komunitas',
'Prospek Karir': 'Karir',
'Kisah Sukses': 'Alumni',
'Fasilitas': 'Infrastruktur',
'Mitra Strategis': 'Kerjasama',
'Informasi Kontak': 'Kontak',
};
allH3.forEach(h3 => {
const key = Object.keys(sectionMap).find(k => h3.textContent.includes(k));
if (!key) return;
const label = document.createElement('div');
label.className = 'ab-section-label';
label.textContent = sectionMap[key];
h3.insertAdjacentElement('beforebegin', label);
});
})();
// =====================================================
// JELLYFISH.CORP — MOCKUP SCRIPTS
// =====================================================
// ===== PRESTASI FILTER (new jf-* classes) =====
(function initPrestasiFilterJF() {
const tabs = document.querySelectorAll('.jf-tab-btn');
const cards = document.querySelectorAll('#prestasi-grid .jf-prestasi-card');
if (!tabs.length) return;
tabs.forEach(tab => {
tab.addEventListener('click', () => {
tabs.forEach(t => t.classList.remove('jf-tab-active'));
tab.classList.add('jf-tab-active');
const filter = tab.dataset.filter;
cards.forEach(card => {
const show = filter === 'all' || card.dataset.cat === filter;
card.style.display = show ? '' : 'none';
if (show) {
card.style.animation = 'jfFadeIn 0.35s ease forwards';
}
});
});
});
})();
// ===== SCROLL REVEAL for jf-* cards =====
(function initJFScrollReveal() {
const targets = document.querySelectorAll(
'.jf-stat-card, .jf-stat-row-card, .jf-prestasi-card, ' +
'.jf-sc-card, .jf-karir-card, .jf-alumni-card, ' +
'.jf-infra-card, .jf-mitra-card, .jf-life-card, ' +
'.jf-tl-item, .jf-visi-card, .jf-kontak-item'
);
targets.forEach(el => {
el.style.opacity = '0';
el.style.transform = 'translateY(24px)';
el.style.transition = 'opacity 0.55s ease, transform 0.55s ease';
});
const obs = new IntersectionObserver((entries) => {
entries.forEach((entry, i) => {
if (entry.isIntersecting) {
setTimeout(() => {
entry.target.style.opacity = '1';
entry.target.style.transform = 'translateY(0)';
}, i * 70);
obs.unobserve(entry.target);
}
});
}, { threshold: 0.08 });
targets.forEach(el => obs.observe(el));
})();
// ===== ANIMATED COUNTER for jf-stat-num =====
(function initJFCounters() {
const nums = document.querySelectorAll('.jf-stat-num');
const obs = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (!entry.isIntersecting) return;
const el = entry.target;
const raw = el.textContent.trim();
const num = parseFloat(raw.replace(/[^0-9.]/g, ''));
if (isNaN(num) || num === 0) return;
const suffix = raw.replace(/[0-9.,]/g, '');
const prefix = raw.startsWith('<') ? '<' : '';
const cleanSuffix = prefix ? suffix : suffix;
let start = 0;
const duration = 1400;
const step = 16;
const increment = num / (duration / step);
const timer = setInterval(() => {
start += increment;
if (start >= num) { start = num; clearInterval(timer); }
const display = num % 1 === 0
? Math.floor(start).toLocaleString('id-ID')
: start.toFixed(0);
el.textContent = prefix + display + cleanSuffix;
}, step);
obs.unobserve(el);
});
}, { threshold: 0.5 });
nums.forEach(el => obs.observe(el));
})();
File diff suppressed because it is too large Load Diff