Back
Dec 27, 2025·4 min read

Conventional Commits

write cleaner, meaningful commit messages.

Pernahkah kamu merasa frustrasi saat membaca riwayat perubahan kode yang isinya hanya seperti hutan belantara tanpa petunjuk?

Coba bayangkan skenario ini: Kamu sedang menelusuri bug kritis di production jam 2 pagi. Mata sudah sepat, kopi sudah habis, dan saat membuka git log, yang kamu temukan adalah mahakarya abstrak seperti ini:

text
commit 3a1f9d2
Author: handikatriarlan <handikaarlan@gmail.com>
Date:   Fri Dec 27 23:55:00 2024

    fix bug lagi

commit 1b2c3d4
Author: handikatriarlan <handikaarlan@gmail.com>
Date:   Fri Dec 27 23:40:00 2024

    kayaknya udah bener

commit 9e8f7a6
Author: handikatriarlan <handikaarlan@gmail.com>
Date:   Fri Dec 27 23:30:00 2024

    final fix bismillah

Jika ini terasa familiar, tos dulu. Kita semua pernah ada di fase itu. Fase di mana commit message hanyalah formalitas agar bisa git push.

Tapi, sebagai seniman kode yang peduli dengan kesehatan mental rekan tim (dan diri sendiri di masa depan), sudah saatnya kita naik kelas. Mari berkenalan dengan Conventional Commits.


Apa Itu Conventional Commits?

Bayangkan jika setiap pesan commit memiliki struktur yang baku, mudah dibaca mesin, dan yang terpenting: mudah dipahami manusia. Itulah esensi dari Conventional Commits.

Format dasarnya sangat sederhana nan elegan:

<tipe>(<lingkup>): <deskripsi singkat yang bermakna>

Dengan format ini, kita tidak hanya menulis kode, tapi juga bercerita tentang apa yang terjadi pada kode tersebut.


Kamus Tipe Commit

Agar tidak bingung harus pakai tipe yang mana, berikut adalah panduan praktis yang bisa kamu jadikan contekan sehari-hari:

TipeMakna & KegunaanContoh Penggunaan
featMenambahkan fitur barufeat(auth): login dengan Google
fixMemperbaiki bugfix(cart): hitungan total belanja minus
docsPerubahan dokumentasidocs: update panduan instalasi
styleFormat (spasi, indentasi)style: rapikan indentasi file css
refactorPerbaikan kode tanpa ubah fungsirefactor(user): sederhanakan logika validasi
testMenambah/edit testingtest: tambah unit test pembayaran
choreTugas rutin (deps, config)chore: upgrade next.js ke v15

Mengapa Harus Repot-Repot?

Mungkin kamu bertanya, "Kenapa sih harus seribet ini? Kan yang penting kodenya jalan?"

Nah, di sinilah bedanya coder biasa dengan software engineer profesional. Menggunakan Conventional Commits memberikan superpower tersembunyi:

  1. Navigasi Secepat Kilat Saat mencari kapan bug diperbaiki atau fitur ditambahkan, kamu cukup filter berdasarkan tipenya. Sat set wat wet.

  2. Otomatisasi Changelog Malas nulis changelog manual rilis demi rilis? Alat bantu bisa otomatis men-generate daftar perubahan yang rapi hanya dengan membaca tipe commit kamu.

  3. Konteks yang Jelas Lingkup (scope) memberi tahu bagian mana yang berubah tanpa harus membuka file-nya. fix(api) jelas beda penanganannya dengan fix(ui).

"Code is read much more often than it is written." — Guido van Rossum

Pesan commit adalah bagian dari kode itu sendiri. Ia adalah dokumentasi hidup yang menjelaskan mengapa perubahan itu ada.


Mulai Langkah Kecil Hari Ini

Tidak perlu langsung sempurna. Mulailah dari hal kecil:

  • Ganti kebiasaan nulis fix doang dengan fix: perbaiki tombol yang tidak bisa diklik.
  • Ganti update dengan feat: tambahkan halaman profil user.

Percayalah, "Diri Kamu di Masa Depan" akan sangat berterima kasih pada "Diri Kamu Hari Ini" yang sudah mau menulis pesan commit dengan rapi.

Jadi, sudah siap untuk membuat riwayat Git kamu seindah puisi?