Pengantar
Di bagian ini kita bakal ngobrol santai soal kenapa CSS Grid dan Flexbox itu penting banget buat developer pemula. Banyak orang yang baru belajar web biasanya langsung loncat ke komponen atau framework, padahal dasar layout itu pondasinya. Jadi biar ga bingung nanti pas proyek beneran, kita bahas dari awal dulu walaupun penjelasannya tetep dibikin simple supaya gampang nyantol walau kadang ada kata yang kepelset dikit.
Apa Itu CSS Flexbox

Flexbox ini sebenernya cara gampang buat beresin layout satu arah, mau itu ke samping atau ke bawah. Jadi kalau kamu pengen naro beberapa elemen biar sejajar rapi tanpa harus mikir rumus aneh, ya Flexbox ini temennya. Biasanya kita pake buat hal-hal kayak navbar, deretan kartu, tombol-tombol yang harus di tengah, atau elemen kecil yang butuh penataan lebih fleksibel.
Flexbox punya properti kayak display: flex, justify-content, align-items, dan flex-direction. Nah kombinasi properti ini bikin elemen bisa ngikutin ruang yang tersedia tanpa kamu harus ngakalin pake trik lama. Yang paling enak dari Flexbox tuh alignment-nya otomatis banget, jadi kamu ga perlu ribut nyocokin posisi manual.
Kapan Menggunakan Flexbox?
Flexbox enaknya dipake kalau kebutuhan layout kamu masih simpel-simpel aja dan ga butuh struktur besar. Biasanya ini kepake buat hal-hal kayak:
- Nyusun item biar rapi ke samping di area header
- Bikin deretan kartu punya jarak otomatis tanpa ngatur satu-satu
- Naro tombol biar tetep nongol di tengah walau ruangnya berubah-ubah
- Bikin kolom yang bisa ngikutin ukuran layar kecil tanpa harus ngoding ulang
Intinya Flexbox itu fokus ngeberesin elemen dalam satu arah aja, entah itu baris atau kolom. Jadi kamu ga perlu mikirin struktur ribet kayak Grid, cukup pake Flexbox kalo kasusnya masih lurus-lurus aja.
Apa Itu CSS Grid

CSS Grid itu ibaratnya alat buat ngeatur layout yang lebih gede dan lebih kompleks. Bedanya sama Flexbox, Grid ini bisa ngatur dua arah sekaligus: baris dan kolom. Jadi kalau kamu lagi bikin tampilan yang punya banyak bagian—kayak dashboard, galeri foto, atau layout halaman utama—Grid ini cocok banget karena lebih terstruktur.
Dengan Grid, kamu bisa nentuin berapa kolom yang mau dipake, seberapa besar tiap kotaknya, jarak antar elemen, sampai ngatur template layout biar semuanya keliatan rapi dan konsisten. Intinya, Grid ngasih kamu kontrol penuh atas seluruh area halaman, jadi tampilannya ga berantakan walau isinya banyak.
Kapan Menggunakan Grid
Grid biasanya dipake pas kamu ngerjain layout yang punya pola jelas dan butuh susunan yang lebih teratur. Misalnya:
- Layout dashboard yang punya banyak bagian
- Galeri foto atau katalog produk biar tampilannya rapi
- Template halaman yang ada sidebar dan konten utamanya
- Struktur halaman dengan banyak kolom yang ga mungkin dirapihin pake cara manual
Pake Grid itu jauh lebih enak dibanding cara lama kayak tabel HTML atau float, karena semuanya lebih fleksibel dan gampang diatur tanpa bikin kepala mumet.
Perbedaan Utama Grid dan Flexbox

Walaupun Grid dan Flexbox sering dipake barengan, dua sistem ini tetep punya perbedaan yang lumayan kerasa kalau udah sering ngoding layout. Kurang lebih bedanya gini:
- Grid itu dua dimensi—bisa ngatur baris dan kolom sekaligus, sedangkan Flexbox cuma fokus satu dimensi
- Grid cocok buat layout besar, sementara Flexbox lebih pas buat ngatur elemen kecil biar posisinya rapi
- Grid punya template area, jadi kamu bisa nentuin slot-slot layout lebih jelas, sedangkan Flexbox lebih fleksibel arah geraknya
- Grid jarang berdiri sendiri, biasanya tetep ditemenin Flexbox di bagian-bagian kecil dalam komponennya
Kalau udah ngerti batasan dan kekuatan masing-masing, kamu bakal lebih gampang milih mana yang paling cocok dipake di kondisi tertentu, ga bingung lagi mau pake yang mana.
Contoh Dasar Flexbox
Sebelum masuk ke contoh kode, ada baiknya kita bahas dulu elemen-elemen penting yang sering muncul waktu pake Flexbox. Karena banyak pemula langsung pakai tanpa ngerti fungsinya, padahal ini dasar yang bikin layout gampang banget diatur.
Pertama kita kenalin dulu display: flex; yang dipake buat ngubah container jadi fleksibel. Setelah itu biasanya kita atur justify-content buat ngatur perataan elemen secara horizontal. Nilai yang sering dipake antara lain:
- flex-start posisi elemen di bagian kiri (ini default)
- flex-end posisi elemen di bagian kanan
- center semua elemen ditaruh di tengah
- space-between kasih jarak otomatis di antara elemen
- space-around kasih jarak rata dengan ruang di kiri kanan setiap elemen
- space-evenly kasih jarak yang sama persis antar elemen
Dengan ngerti nilai-nilai ini, kamu bakal jauh lebih gampang ngatur layout tanpa harus oprek ukuran manual. Berikut contoh implementasinya :
.container {
display: flex;
justify-content: space-between;
align-items: center;
padding: 24px;
}
.card {
background: #ffffff;
padding: 16px;
border-radius: 12px;
}
Kode ini ngebantu kamu naro beberapa card dalam satu baris sambil bikin jaraknya otomatis kebagi rapi. Jadi kamu ga perlu atur margin satu-satu. Teknik kayak gini bakal sering banget kamu temuin di kelas front-end atau pas ngerjain project beneran karena simpel tapi kepake terus. Berikut hasil implementasi dari code di atas:

<aside> 💡
Pro Tip: Coba ganti justify-content dengan nilai center, flex-start, atau flex-end untuk melihat perbedaan posisi elemen!
</aside>
Contoh Dasar CSS Grid
Contoh grid sederhana untuk layout galeri:
Sebelum lihat contohnya, kita bahas dulu elemen-elemen penting di Grid. Banyak yang kira Grid ini ribet, padahal kalau udah ngerti propertinya, semuanya justru lebih gampang diatur.
Beberapa properti dasar yang sering banget dipake di Grid:
- display: grid; ini wajib, karena tanpa ini grid-nya ga aktif
- grid-template-columns buat nentuin jumlah dan ukuran kolom
- grid-template-rows buat ngatur tinggi baris-baris tertentu
- gap buat ngasih jarak antar elemen tanpa harus set margin satu-satu
- place-items buat ngeatur posisi elemen di dalam setiap sel (gabungan align-items dan justify-items)
- grid-auto-rows / grid-auto-columns buat ngatur ukuran otomatis elemen yang jumlahnya lebih banyak dari template
Dengan ngerti properti-properti ini, kamu bisa bikin layout kompleks tanpa perlu trik aneh. Grid itu bener-bener enak kalau udah klik di kepala. Berikut contoh implementasinya :
.gallery {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.item {
background: #f4f7ff;
padding: 20px;
border-radius: 10px;
}
Grid model begini bikin developer gampang nyusun layout tanpa harus ngitung-ngitung ukuran kolom secara manual. Cukup tentuin aja mau berapa kolom pake repeat dan fr, nanti Grid yang ngatur sisanya. Jadi kamu tinggal fokus ke tampilannya tanpa pusing ukuran. Kalau masih bingung juga gapapa, soalnya begitu liat hasilnya biasanya langsung kebayang cara kerjanya. Berikut hasil implementasinya: bikin kolom otomatis tanpa hitung ukuran secara manual. Cukup atur repeat dan fr, sisanya jalan sendiri. Kalau masih bingung gapapa, nanti pas lihat hasilnya biasanya langsung paham, ini contoh implementasi dari code di atas :

<aside> 💡
Pro Tip: Coba ganti repeat(3, 1fr) menjadi repeat(4, 1fr) untuk membuat 4 kolom, atau repeat(2, 1fr) untuk 2 kolom!
</aside>
Menggabungkan Grid dan Flexbox
Dalam workflow modern, kita biasanya ga milih salah satu antara Grid atau Flexbox, karena dua-duanya punya peran masing-masing. Struktur besar halaman biasanya diatur pake Grid biar rapi, sedangkan bagian-bagian kecil di dalamnya—kayak tombol, teks, atau isi card—lebih enak diberesin pake Flexbox. Kurang lebih skenarionya kayak gini:
- Layout halaman utama → pake Grid
- Bagian header atau navbar → pake Flexbox
- Isi kartu produk biar elemennya rata → pake Flexbox
- Galeri foto atau katalog → pake Grid
Kalau dua teknik ini digabung, layout halaman jadi jauh lebih konsisten, gampang disesuaikan, dan tentu aja responsif tanpa perlu banyak trik tambahan.
Contoh Menggabungkan Grid dan Flexbox
Di workflow modern, dua teknik ini biasanya jalan barengan. Grid dipake buat ngebangun struktur besar halaman, sedangkan Flexbox bantu ngerapiin elemen-elemen kecil di dalamnya. Jadi kamu ga perlu bingung harus milih yang mana, tinggal kombinasikan aja sesuai kebutuhan. Hasilnya layout bakal lebih rapi, konsisten, dan tetap responsif tanpa banyak trik tambahan. Banyak pemula awalnya ngerasa ini sulit, tapi kalau udah dicoba pelan-pelan, ternyata gampang banget dipahami. Ini contohnya:
.grid-layout {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
padding: 40px;
background: #f8f9fb;
border-radius: 16px;
}
.card {
display: flex;
align-items: center;
justify-content: center;
background: #eef2ff;
border: 2px solid #4e6bff;
border-radius: 16px;
height: 140px;
font-size: 20px;
font-weight: 600;
color: #4e6bff;
}
Grid mengatur posisi card, Flexbox merapikan isi di tengah. Ini pola yang paling sering dipakai di kelas real project karena simpel tapi kuat. Kalau kamu udh coba, pasti kerasa gampang banget walau awalnya keliatan ribet. Berikut contoh hasil implementasi code di atas :

<aside> 💡
Best Practice: Ini adalah pola yang paling umum dipakai! Grid untuk struktur halaman, Flexbox untuk alignment komponen kecil. Dengan kombinasi ini, kamu bisa membuat layout yang fleksibel dan rapi tanpa ribet.
</aside>
Kenapa Developer Modern Wajib Menguasainya
Menguasai dua teknik ini bikin kerja makin cepat, kode lebih ringkas, tampilan konsisten, dan gampang diperbaiki. Selain itu semua framework modern tetap bergantung pada CSS untuk layout. Jadi mau ga mau kamu harus ngerti dua teknik ini agar siap masuk dunia kerja dan ga keteteran nanti.
Penutup
CSS Grid dan Flexbox itu dua dasar penting yang wajib dikuasai frontend developer modern. Bukan soal pilih salah satu, karena dua-duanya justru saling ngedukung. Grid bantu ngatur struktur besar, sementara Flexbox merapikan bagian-bagian kecilnya. Kalau kamu udah paham kapan pakai yang mana, proses bikin UI bakal terasa lebih ringan dan cepat.
Kalau mau lanjut belajar, coba gabungin dua teknik ini di proyek kecil dulu. Dari situ kamu bakal makin kebiasa dan lebih ngerti gimana perilakunya di berbagai ukuran layar.
Rekomendasi Course BuildWithAngga Belajar Grid dan Flexbox
- UI Grid System & Auto Layout : Bikin Landing Page dari Nol
- Kelas Online GratisUI Design : Grid System dengan Figma
- Kelas Online GratisBelajar Flexbox Untuk Front End Developer
- Kelas Online GratisElementor Container Flexbox 101
Created by Salman Rizky