Cara Membuat Carousel Gambar Dinamis di Bootstrap

By | 14 November 2025

Cara membuat carousel gambar dinamis di Bootstrap adalah salah satu kebutuhan umum ketika mengembangkan website yang membutuhkan slider otomatis, seperti website portofolio, toko online, perusahaan, maupun landing page. Dengan carousel dinamis, Anda tidak perlu mengedit HTML setiap kali ingin menambah atau mengubah gambar—semua bisa diambil langsung dari database atau struktur data lain seperti array. Tutorial ini akan membahas langkah demi langkah tentang bagaimana membuat carousel Bootstrap yang fleksibel, mudah dikelola, dan tetap responsif.

Mengenal Carousel di Bootstrap

Carousel adalah komponen Bootstrap yang berfungsi menampilkan beberapa gambar atau konten dalam bentuk slider otomatis maupun manual. Carousel ini sudah dilengkapi dengan navigasi, indikator slide, animasi transisi, dan opsi autoplay.

Bootstrap menyediakan struktur dasar carousel berupa:

  • container div.carousel

  • elemen slide pada carousel-item

  • tombol navigasi (prev/next)

  • indikator (bullets)

Namun, struktur ini biasanya ditulis secara statis. Untuk kebutuhan skala besar, tentu Anda perlu membuatnya dinamis.

Kapan Perlu Carousel Dinamis?

Carousel gambar dinamis ideal digunakan untuk:

  • Website dengan banner promosi yang berubah setiap minggu/bulan.

  • Galeri portofolio yang bisa diperbarui tanpa coding manual.

  • Sistem manajemen konten (CMS) seperti WordPress custom, Laravel, atau PHP native.

  • Toko online dengan banner dinamis untuk promo produk.

Dengan sistem dinamis, admin cukup mengunggah gambar melalui backend, dan carousel akan menampilkan gambar secara otomatis.

Struktur Dasar Carousel Bootstrap

Berikut dasar HTML carousel Bootstrap 5:

<div id="myCarousel" class="carousel slide" data-bs-ride="carousel">
  <div class="carousel-indicators">
    <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="0" class="active"></button>
    <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="1"></button>
    <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="2"></button>
  </div>

  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="img1.jpg" class="d-block w-100" alt="">
    </div>
    <div class="carousel-item">
      <img src="img2.jpg" class="d-block w-100" alt="">
    </div>
  </div>
  
  <button class="carousel-control-prev" type="button"
    data-bs-target="#myCarousel" data-bs-slide="prev">
    <span class="carousel-control-prev-icon"></span>
  </button>

  <button class="carousel-control-next" type="button"
    data-bs-target="#myCarousel" data-bs-slide="next">
    <span class="carousel-control-next-icon"></span>
  </button>
</div>

Selanjutnya, kita akan menjadikannya dinamis.

Membuat Carousel Dinamis Menggunakan Array (Dasar untuk Belajar)

Jika Anda belum terhubung ke database, Anda bisa mencoba membuat carousel dinamis menggunakan array PHP sebagai simulasi data.

Contoh array gambar

$images = [
    "banner1.jpg",
    "banner2.jpg",
    "banner3.jpg"
];

Generate indikator dan item secara otomatis

<div id="myCarousel" class="carousel slide" data-bs-ride="carousel">

  <div class="carousel-indicators">
    <?php foreach ($images as $index => $img): ?>
      <button type="button" data-bs-target="#myCarousel"
              data-bs-slide-to="<?= $index; ?>"
              class="<?= $index == 0 ? 'active' : '' ?>"></button>
    <?php endforeach; ?>
  </div>

  <div class="carousel-inner">
    <?php foreach ($images as $index => $img): ?>
      <div class="carousel-item <?= $index == 0 ? 'active' : '' ?>">
        <img src="uploads/<?= $img ?>" class="d-block w-100" alt="">
      </div>
    <?php endforeach; ?>
  </div>

  <button class="carousel-control-prev" type="button"
    data-bs-target="#myCarousel" data-bs-slide="prev">
    <span class="carousel-control-prev-icon"></span>
  </button>

  <button class="carousel-control-next" type="button"
    data-bs-target="#myCarousel" data-bs-slide="next">
    <span class="carousel-control-next-icon"></span>
  </button>

</div>

Membuat Carousel Dinamis Menggunakan Data dari Database (PHP MySQLi)

Untuk implementasi real-world, gambar biasanya tersimpan di database.

Contoh struktur tabel

table: sliders

id image title description
1 slide1.jpg Promo 1 Diskon 50%
2 slide2.jpg Promo 2 Cashback 25%
3 slide3.jpg Promo 3 Gratis Ongkir

Query ambil data

$result = $conn->query("SELECT * FROM sliders ORDER BY id ASC");
$images = [];
while ($row = $result->fetch_assoc()) {
    $images[] = $row;
}

Generate carousel dari database

<div id="myCarousel" class="carousel slide" data-bs-ride="carousel">

  <div class="carousel-indicators">
    <?php foreach ($images as $i => $row): ?>
      <button type="button" data-bs-target="#myCarousel"
              data-bs-slide-to="<?= $i; ?>"
              class="<?= $i == 0 ? 'active' : '' ?>"></button>
    <?php endforeach; ?>
  </div>

  <div class="carousel-inner">
    <?php foreach ($images as $i => $row): ?>
      <div class="carousel-item <?= $i == 0 ? 'active' : '' ?>">
        <img src="uploads/<?= $row['image'] ?>" class="d-block w-100" alt="">
        <?php if ($row['title']): ?>
        <div class="carousel-caption d-none d-md-block">
          <h5><?= $row['title']; ?></h5>
          <p><?= $row['description']; ?></p>
        </div>
        <?php endif; ?>
      </div>
    <?php endforeach; ?>
  </div>

  <button class="carousel-control-prev" type="button"
    data-bs-target="#myCarousel" data-bs-slide="prev">
    <span class="carousel-control-prev-icon"></span>
  </button>

  <button class="carousel-control-next" type="button"
    data-bs-target="#myCarousel" data-bs-slide="next">
    <span class="carousel-control-next-icon"></span>
  </button>

</div>

Dengan struktur ini, Anda hanya perlu input gambar dari dashboard admin—carousel akan otomatis ter-update.

Tips Penting Agar Carousel Dinamis Lebih Optimal

✔ Kompres Gambar

Gunakan TinyPNG, imagick, atau library kompresi otomatis agar slider tidak membebani website.

✔ Gunakan Resolusi Seragam

Meminimalkan distorsi atau perubahan ukuran saat slide berjalan.

✔ Aktifkan Lazy Loading

Sangat penting untuk performa, terutama jika gambar banyak.

<img loading="lazy" src="...">

✔ Simpan Data Dalam Folder Khusus

Agar mudah dikelola, buat folder seperti:

/uploads/sliders/

✔ Tambahkan Tombol CTA (Opsional)

Misalnya untuk banner promo toko online.

Kelebihan Carousel Dinamis Dibanding Statis

Carousel Statis Carousel Dinamis
Harus edit HTML manual Tidak perlu utak-atik HTML
Sulit digunakan admin Bisa dikelola dari dashboard
Tidak fleksibel Mudah diganti kapan saja
Risiko error lebih besar Lebih konsisten dan otomatis

Carousel dinamis sangat cocok untuk website profesional.

Kesimpulan

Membuat carousel gambar dinamis di Bootstrap sangat mudah jika Anda memahami struktur komponen dan cara menghasilkan elemen HTML secara otomatis menggunakan PHP atau data array. Dengan cara ini, Anda bisa membuat slider yang lebih fleksibel, mudah diperbarui, dan ramah bagi admin non-teknis. Baik untuk website bisnis, portofolio, hingga toko online, carousel dinamis memberi Anda kontrol penuh tanpa harus menyentuh kode setiap kali ingin mengganti gambar.