css grid | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: css grid

Thursday, April 16, 2026

css grid

✦ SERI BELAJAR CSS — ARTIKEL 7 DARI 13

CSS Grid — Layout Dua Dimensi
untuk Tampilan yang Lebih Kompleks

Bosan layout-mu berantakan? Sudah saatnya kamu kuasai CSS grid layout dua dimensi — senjata rahasia desainer web modern yang bisa mengatur baris dan kolom sekaligus.

#CSS #CSSGrid #WebDesign #Tutorial #Frontend
⏱️
Estimasi Baca
9 Menit
🎯
Level
Pemula — Menengah
📅
Tahun
2026

Pernah nggak kamu coba bikin layout dua kolom, lalu hasilnya malah amburadul? Kolom kanan jatuh ke bawah, gambar melenceng, dan kamu udah rebahan sambil ngerasa "kok susah banget sih jadi web developer?" — Tenang, kamu nggak sendirian. Jutaan pemula merasakan hal yang sama sebelum akhirnya ketemu satu fitur CSS yang mengubah segalanya.

Namanya CSS grid layout dua dimensi — dan di artikel ke-7 dari Seri Belajar CSS ini, kita akan bongkar habis bagaimana cara kerjanya. Bukan sekadar teori, tapi langsung praktik dengan kode nyata yang bisa kamu coba sekarang juga.

Definisi Utama

Apa Itu CSS Grid?

CSS Grid adalah sistem layout dua dimensi di CSS yang memungkinkan kamu mengatur elemen secara bersamaan dalam dua arah — baris (row) dan kolom (column) — dalam satu waktu. Berbeda dengan Flexbox yang bekerja satu dimensi (baris ATAU kolom), Grid memberimu kendali penuh atas keseluruhan "peta" halaman webmu.

🏙️ CSS Grid Layout Dua Dimensi itu Seperti... Denah Kota

Bayangkan kamu lagi ngedesain denah kota. Ada blok-blok bangunan yang tersusun rapi dalam baris dan kolom. Nah, CSS Grid bekerja persis seperti itu — kamu yang menentukan "berapa baris, berapa kolom, dan setiap elemen ada di koordinat mana."

Kalau artikel sebelumnya tentang Flexbox itu ibarat mengatur kursi di satu baris bioskop (satu arah aja), maka CSS Grid ibarat merancang seluruh gedung bioskop — kamu atur baris, kolom, dan bahkan bisa "menggabungkan" kursi-kursi tertentu jadi satu kotak VIP yang lebih besar.

/* Ilustrasi CSS Grid 3x3 */
┌──────────┬──────────┬──────────┐
│  Header  │  Header  │  Header  │  ← Row 1
├──────────┼──────────┼──────────┤
│ Sidebar  │  Content │  Content │  ← Row 2
├──────────┼──────────┼──────────┤
│  Footer  │  Footer  │  Footer  │  ← Row 3
└──────────┴──────────┴──────────┘
  Column 1   Column 2   Column 3
  
🔥 Fakta Menarik

CSS Grid pertama kali diimplementasikan secara resmi di browser pada 2017 — dan kini didukung oleh 99%+ browser modern di seluruh dunia. Jadi nggak ada alasan untuk nggak pakai Grid!

📐 Konsep Dasar CSS Grid yang Wajib Kamu Tahu

Sebelum nulis kode, ada beberapa istilah yang perlu kamu pahami dulu. Jangan skip bagian ini — ini fondasi yang akan bikin segalanya lebih masuk akal!

Istilah Penjelasan Singkat Analogi
Grid Container Elemen induk yang mengaktifkan Grid Papan catur
Grid Item Elemen anak langsung dari container Bidak catur
Grid Line Garis pembatas baris dan kolom Garis kotak-kotak pada papan
Grid Track Ruang antara dua grid line Satu jalur (baris/kolom)
Grid Cell Satu kotak terkecil di grid Satu petak di papan catur
Grid Area Gabungan beberapa cell sekaligus Blok bangunan yang menempati beberapa petak
💡 Tips

Gunakan Firefox DevTools untuk debug CSS Grid — Firefox punya visualisasi grid terbaik di antara semua browser! Cukup klik ikon grid kecil di sebelah display: grid di panel CSS.

🛠️ Cara Membuat CSS Grid Layout Dua Dimensi dari Nol

Oke, sekarang saatnya kita masuk ke bagian yang paling seru — nulis kode! Ikuti langkah-langkah berikut secara urut, dan kamu akan punya layout CSS grid layout dua dimensi yang berfungsi sempurna dalam hitungan menit.

1

Buat HTML Structure-nya Dulu

Kita butuh satu elemen induk sebagai container, dan beberapa elemen anak sebagai item grid.

/* HTML */
<div class="grid-container">
  <div class="item-1">Header</div>
  <div class="item-2">Sidebar</div>
  <div class="item-3">Konten Utama</div>
  <div class="item-4">Footer</div>
</div>
2

Aktifkan Grid pada Container

Tambahkan display: grid pada elemen induk. Ini "menyalakan" mode Grid.

/* CSS */
.grid-container {
  display: grid;
}
3

Tentukan Kolom dengan grid-template-columns

Properti ini menentukan berapa kolom yang kamu mau dan seberapa lebar masing-masingnya. Unit fr (fraction) membagi sisa ruang secara proporsional.

.grid-container {
  display: grid;
  /* 3 kolom: sidebar kecil, konten besar, sidebar kecil */
  grid-template-columns: 1fr 3fr 1fr;
  gap: 20px; /* jarak antar sel */
}
4

Tentukan Baris dengan grid-template-rows

Sama seperti kolom, tapi untuk mengatur tinggi baris. Kamu bisa pakai pixel, fr, atau auto.

.grid-container {
  display: grid;
  grid-template-columns: 1fr 3fr;
  grid-template-rows: 80px auto 60px;
  /* baris 1: header 80px, baris 2: otomatis, baris 3: footer 60px */
  gap: 16px;
}
5

Atur Posisi Item dengan grid-column dan grid-row

Inilah saat Grid benar-benar bersinar — kamu bisa memerintahkan satu item untuk membentang melewati beberapa kolom atau baris sekaligus!

/* Header membentang dari kolom 1 sampai akhir */
.item-1 {
  grid-column: 1 / -1; /* -1 = kolom terakhir */
}

/* Footer juga membentang full width */
.item-4 {
  grid-column: 1 / -1;
}

/* Sidebar ada di baris 2, kolom 1 */
.item-2 {
  grid-column: 1 / 2;
  grid-row: 2 / 3;
}
⚡ Insight Penting

Nilai 1 / -1 pada grid-column berarti "mulai dari grid line pertama sampai grid line terakhir". Ini cara paling elegan untuk membuat elemen full-width tanpa perlu tahu berapa kolom yang ada!

🗺️ Level Up: Mendesain Layout dengan grid-template-areas

Kalau kamu sudah nyaman dengan langkah-langkah di atas, ada satu fitur CSS grid layout dua dimensi yang bakal bikin kamu terkesima — grid-template-areas. Fitur ini memungkinkan kamu mendesain layout seperti menggambar sketsa denah, langsung di dalam kode CSS!

/* CSS dengan grid-template-areas */
.grid-container {
  display: grid;
  grid-template-columns: 200px 1fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
  gap: 16px;
  min-height: 100vh;
}

/* Assign nama area ke setiap item */
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }
💡 Tips: Fungsi repeat() dan minmax()

Daripada nulis 1fr 1fr 1fr, gunakan shortcut:

grid-template-columns: repeat(3, 1fr); /* 3 kolom sama lebar */
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); /* responsif otomatis! */
⚠️ Perhatian

Jangan lupakan bahwa grid-area pada item harus menggunakan nama yang sama persis dengan yang kamu tulis di grid-template-areas — termasuk huruf besar/kecilnya!

⚖️ CSS Grid vs Flexbox — Kapan Pakai Yang Mana?

Pertanyaan ini sering banget muncul dari pemula. Jawabannya simpel: keduanya tidak saling menggantikan, tapi saling melengkapi. Ini panduannya:

📊 Analisis Perbandingan: Grid vs Flexbox

⊞ Gunakan CSS GRID saat...
  • Layout 2D (baris dan kolom)
  • Membuat kerangka halaman utama
  • Elemen perlu membentang beberapa sel
  • Kamu tahu struktur layoutnya dari awal
  • Membuat gallery foto / card grid
⟷ Gunakan FLEXBOX saat...
  • Layout 1D (baris ATAU kolom saja)
  • Mengatur item dalam navigasi/menu
  • Menyejajarkan elemen dalam satu baris
  • Konten yang jumlahnya dinamis/tidak pasti
  • Centering elemen secara vertikal

💎 Pro tip: Dalam satu halaman web yang kompleks, biasanya kamu akan pakai KEDUANYA — Grid untuk kerangka besar, Flexbox untuk komponen kecil di dalamnya.

🎯 Contoh Nyata: Layout Blog dengan CSS Grid Layout Dua Dimensi

Mari kita praktikkan semuanya dengan membuat layout blog yang nyata dan lengkap — header, sidebar, konten utama, dan footer — dalam satu blok kode yang bisa langsung kamu coba.

/* ── CSS ── */
.blog-layout {
  display: grid;
  grid-template-columns: 250px 1fr;
  grid-template-rows: 70px 1fr 60px;
  grid-template-areas:
    "nav nav"
    "aside article"
    "footer footer";
  gap: 20px;
  min-height: 100vh;
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
}

nav { grid-area: nav; background: #1e1b4b; }
aside { grid-area: aside; background: #f8faff; }
article { grid-area: article; background: #ffffff; }
footer { grid-area: footer; background: #1e1b4b; }

/* ── HTML ── */
<div class="blog-layout">
  <nav>Logo & Menu</nav>
  <aside>Sidebar: Kategori & Widget</aside>
  <article>Konten Blog Utama</article>
  <footer>Copyright & Links</footer>
</div>

🏁 Kesimpulan: CSS Grid, Senjata Layout-mu yang Sesungguhnya

Di artikel ini, kamu sudah belajar bahwa CSS grid layout dua dimensi bukan sekedar fitur tambahan — ini adalah fondasi dari hampir semua layout web modern yang kamu lihat setiap hari.

Kita sudah membahas: konsep dasar Grid (container, item, line, cell, area), cara membuat kolom dan baris, mengatur posisi item, sampai teknik tingkat lanjut seperti grid-template-areas yang membuatmu bisa "menggambar" layout langsung di CSS.

Ingat — Grid dan Flexbox bukan saingan. Grid untuk layout besar dua dimensi, Flexbox untuk komponen kecil satu dimensi. Pakai keduanya, dan layout-mu akan sempurna.

✅ display: grid ✅ grid-template-columns ✅ grid-template-rows ✅ grid-template-areas ✅ grid-column & grid-row ✅ repeat() & minmax()

🏷️ Tags

#CSSGrid #CSS #HTML #WebDesign #Tutorial #BelajarCSS #Frontend #LayoutDuaDimensi
📚
Seri Lengkap

CSS from Zero to Zorro

Artikel ini bagian dari seri 13 artikel lengkap belajar CSS dari nol. Akses semua artikel di halaman utama seri.

1. Pengenalan CSS & Cara Kerja Selector
2. Box Model: Padding, Border, Margin
3. Typography & Warna di CSS
4. Positioning: Static, Relative, Absolute
5. Display & Visibility
6. Flexbox — Layout Satu Dimensi
▶ 7. CSS Grid — Layout Dua Dimensi ← Kamu di sini
8. Responsive Web Design & Media Query
9. CSS Transitions & Animations
10. Pseudo-Class & Pseudo-Element
11. CSS Variables (Custom Properties)
12. CSS Preprocessor: Intro Sass/SCSS
13. Project Akhir: Halaman Web dari Nol
📖 Lihat Semua 13 Artikel →
← Artikel Sebelumnya
Artikel 6 dari 13

Flexbox — Cara Modern Mengatur Layout Satu Dimensi

Baca Artikel ←
Artikel Selanjutnya →
Artikel 8 dari 13

Responsive Web Design — Media Query dan Desain Mobile-First

Baca Artikel →

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux