[{"data":1,"prerenderedAt":310},["ShallowReactive",2],{"\u002Fblog\u002Fsemantic-commit":3},{"id":4,"title":5,"body":6,"category":293,"cover":294,"date":295,"description":296,"extension":297,"meta":298,"navigation":299,"path":300,"readingTime":301,"seo":302,"sitemap":303,"stem":304,"tags":305,"__hash__":309},"blog\u002Fblog\u002F04.semantic-commit.md","Semantic Commit",{"type":7,"value":8,"toc":284},"minimark",[9,14,26,29,33,41,95,110,115,194,198,243,247,250,258,261,264,270,273,277,280],[10,11,13],"h2",{"id":12},"apa-itu-semantic-commit","Apa Itu Semantic Commit?",[15,16,17,20,21,25],"p",{},[18,19,5],"strong",{}," (sering disebut jg sbg ",[22,23,24],"em",{},"Conventional Commits",") adalah konvensi penulisan pesan commit di Git yg punya pola tertentu buat ngasih tau scr eksplisit tujuan dr perubahan kode yg dilakuin.",[15,27,28],{},"Bayangin pas kamu kerja dlm tim besar sm ratusan commit per minggu. Tanpa format yg jelas, riwayat commit bakal kacau dan susah ditelusuri. Semantic Commit berfungsi layaknya kamus terpadu biar seluruh anggota tim bisa langsung paham konteks perubahan cuma dr satu baris pesan commit 🧐.",[10,30,32],{"id":31},"format-sebenarnya-cuma-1-baris","Format Sebenarnya: Cuma 1 Baris!",[15,34,35,36,40],{},"Kenyataannya, ",[37,38,39],"u",{},"99% commit yg kita tulis sehari-hari itu ya cuma 1 baris",":",[42,43,48],"pre",{"className":44,"code":45,"language":46,"meta":47,"style":47},"language-bash shiki shiki-themes github-light github-dark","git commit -m \"feat(auth): tambah login google\"\ngit commit -m \"fix(ui): perbaiki tombol back meleset\"\ngit commit -m \"refactor(blog): ringkaskan heading artikel\"\n","bash","",[49,50,51,71,83],"code",{"__ignoreMap":47},[52,53,56,60,64,68],"span",{"class":54,"line":55},"line",1,[52,57,59],{"class":58},"sScJk","git",[52,61,63],{"class":62},"sZZnC"," commit",[52,65,67],{"class":66},"sj4cs"," -m",[52,69,70],{"class":62}," \"feat(auth): tambah login google\"\n",[52,72,74,76,78,80],{"class":54,"line":73},2,[52,75,59],{"class":58},[52,77,63],{"class":62},[52,79,67],{"class":66},[52,81,82],{"class":62}," \"fix(ui): perbaiki tombol back meleset\"\n",[52,84,86,88,90,92],{"class":54,"line":85},3,[52,87,59],{"class":58},[52,89,63],{"class":62},[52,91,67],{"class":66},[52,93,94],{"class":62}," \"refactor(blog): ringkaskan heading artikel\"\n",[15,96,97,98,101,102,105,106,109],{},"Kamu cukup milih ",[18,99,100],{},"tipe"," perubahannya, sebutin ",[18,103,104],{},"lingkup"," (opsional), lalu tulis ",[18,107,108],{},"penjelasan singkatnya",". Selesai!",[111,112,114],"h3",{"id":113},"jenis-tipe-commit","Jenis\" Tipe Commit",[116,117,118,131,142,153,164,175,186],"ul",{},[119,120,121,126,127,130],"li",{},[18,122,123],{},[49,124,125],{},"feat:"," Nambahin fitur baru (contoh: ",[49,128,129],{},"feat: buat halaman dashboard",").",[119,132,133,138,139,130],{},[18,134,135],{},[49,136,137],{},"fix:"," Benerin bug atau eror (contoh: ",[49,140,141],{},"fix: atasi layout hancur di mobile",[119,143,144,149,150,130],{},[18,145,146],{},[49,147,148],{},"docs:"," Update dokumentasi atau catatan (contoh: ",[49,151,152],{},"docs: update readme",[119,154,155,160,161,130],{},[18,156,157],{},[49,158,159],{},"refactor:"," Bersihin atau rombak struktur kode tanpa ngubah fungsi (contoh: ",[49,162,163],{},"refactor: pisah modal jd komponen mandiri",[119,165,166,171,172,130],{},[18,167,168],{},[49,169,170],{},"perf:"," Optimasi performa biar makin ngebut (contoh: ",[49,173,174],{},"perf: lazy load gambar gallery",[119,176,177,182,183,130],{},[18,178,179],{},[49,180,181],{},"chore:"," Urusan perintilan, dependensi, atau build config (contoh: ",[49,184,185],{},"chore: bump dependencies",[119,187,188,193],{},[18,189,190],{},[49,191,192],{},"style:"," Urusan format kode, spasi, atau titik koma yg ga ngaruh ke logika.",[10,195,197],{"id":196},"kenapa-harus-pakai-semantic-commit","Kenapa Harus Pakai Semantic Commit?",[199,200,201,215,233],"ol",{},[119,202,203,210,211,214],{},[18,204,205,206,209],{},"Gampang Telusuri Sejarah Kode (",[22,207,208],{},"Git Log",")",":\nPas nyari tau kapan suatu bug muncul atau kapan sebuah fitur diperkenalkan, ",[49,212,213],{},"git log --oneline"," jd sangat gampang dibaca.",[119,216,217,220,221,224,225,228,229,232],{},[18,218,219],{},"Automasi Changelog",":\nTool otomatis kayak standard-version atau release-please bisa baca commit bertipe ",[49,222,223],{},"feat"," dan ",[49,226,227],{},"fix"," buat scr otomatis nge-generate berkas ",[49,230,231],{},"CHANGELOG.md"," dan nentuin versi SemVer berikutnya.",[119,234,235,238,239,242],{},[18,236,237],{},"Ningkatin Kolaborasi Tim",":\n",[22,240,241],{},"Code review"," jd jauh lebih cepat krn reviewer langsung tau apakah PR itu berisi perbaikan bug, fitur baru, atau sekadar refactoring.",[10,244,246],{"id":245},"perbandingan-buruk-vs-rapi","Perbandingan: Buruk vs Rapi",[15,248,249],{},"Bayangin sebuah repo sm riwayat commit kayak gini:",[42,251,256],{"className":252,"code":254,"language":255,"meta":47},[253],"language-text","❌ update\n❌ upload gambar\n❌ fix bug\n❌ ganti button\n","text",[49,257,254],{"__ignoreMap":47},[15,259,260],{},"Pesan commit di atas ga informatif. Bug apa yg diperbaiki? Gambar apa yg diunggah?",[15,262,263],{},"Bandingin kl ditulis pakai Semantic Commit:",[42,265,268],{"className":266,"code":267,"language":255,"meta":47},[253],"✅ feat(navbar): implement responsive mobile drawer\n✅ fix(api): handle timeout exception on watchlist fetch\n✅ docs(readme): add installation command with bun\n✅ chore(deps): bump tailwindcss to v4.0.0\n",[49,269,267],{"__ignoreMap":47},[15,271,272],{},"Jauh lebih rapi, terstruktur, dan profesional! 👌",[10,274,276],{"id":275},"kesimpulan","Kesimpulan",[15,278,279],{},"Meskipun ga ada undang\" yg mewajibkan Semantic Commit buat proyek pribadi, biasain nulis commit yg rapi sejak awal bakal ngebentuk etos kerja developer yg disiplin, teliti, dan siap kerja dlm tim enterprise global.",[281,282,283],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":47,"searchDepth":73,"depth":73,"links":285},[286,287,290,291,292],{"id":12,"depth":73,"text":13},{"id":31,"depth":73,"text":32,"children":288},[289],{"id":113,"depth":85,"text":114},{"id":196,"depth":73,"text":197},{"id":245,"depth":73,"text":246},{"id":275,"depth":73,"text":276},"tech",null,"2023-12-01","Panduan nulis commit message yg terstruktur, rapi, dan gampang dipahami tim pake konvensi Semantic Commit.","md",{},true,"\u002Fblog\u002Fsemantic-commit","4 min read",{"title":5,"description":296},{"loc":300},"blog\u002F04.semantic-commit",[306,307,308,24],"Git","Workflow","Best Practice","5Vaf6rY7jrerru1yCqRvycbwhX4BcuRS7Bn7-6rI4bA",1788619562651]