Semantic Versioning: Arti Angka Versi pada Software
Apa arti angka 2.4.1? Panduan jelas Semantic Versioning: MAJOR, MINOR, PATCH, pre-release, rentang versi npm, dan tips memberi nomor versi pada aplikasimu.

Setiap pembaruan aplikasi, library, dan game selalu disertai angka seperti 1.0.0, 2.4.1, atau 3.0.0-beta.2. Angka-angka itu tidak dibuat asal. Sebagian besar software modern mengikuti Semantic Versioning, atau disingkat SemVer, yaitu seperangkat aturan sederhana yang memberi tahu pengguna seberapa berisiko sebuah pembaruan. Berikut cara kerjanya dan cara menerapkannya di proyekmu sendiri.
Format MAJOR.MINOR.PATCH
Menurut spesifikasi resmi Semantic Versioning 2.0.0, nomor versi terdiri dari tiga bagian:
MAJOR naik saat kamu membuat perubahan yang tidak kompatibel dan bisa merusak penggunaan yang sudah ada.
MINOR naik saat kamu menambah fitur baru tanpa merusak kompatibilitas.
PATCH naik saat kamu memperbaiki bug tanpa merusak kompatibilitas.
Jadi pada versi 2.4.1, angka 2 adalah versi major, 4 adalah versi minor, dan 1 adalah patch. Saat satu angka naik, angka di sebelah kanannya kembali ke nol. Fitur baru setelah 2.4.1 menghasilkan 2.5.0, sedangkan perubahan yang merusak kompatibilitas menghasilkan 3.0.0.
Fakta yang sering mengejutkan developer
Versi 0.x.y berarti "belum stabil"
SemVer menganggap versi major nol sebagai tahap pengembangan awal. Apa pun bisa berubah kapan saja, jadi pengguna sebaiknya tidak mengharapkan stabilitas sebelum versi 1.0.0 dirilis.
Pre-release datang sebelum versi final
Kamu bisa menambahkan label setelah tanda hubung, misalnya 1.0.0-alpha, 1.0.0-beta.2, atau 1.0.0-rc.1. Pre-release selalu memiliki urutan lebih rendah daripada versi normal, sehingga 1.0.0-rc.1 berada sebelum 1.0.0.
Metadata build tidak memengaruhi urutan
Teks setelah tanda plus, seperti 1.0.0+20261105, menjelaskan informasi build. Dua versi yang hanya berbeda di metadata build dianggap memiliki urutan yang sama.
Cara package manager membaca versi
Alat seperti npm memakai SemVer untuk menentukan pembaruan mana yang aman dipasang otomatis. Dokumentasi npm tentang semantic versioning menjelaskan simbol rentang yang umum dipakai:
^1.2.3(caret) mengizinkan pembaruan minor dan patch, sampai sebelum 2.0.0.~1.2.3(tilde) hanya mengizinkan pembaruan patch, sampai sebelum 1.3.0.1.2.3(eksak) mengunci dependensi pada satu versi.
Hati-hati dengan versi nol: ^0.2.3 hanya mengizinkan pembaruan di bawah 0.3.0, karena setiap perubahan minor di 0.x bisa merusak sesuatu. Kamu bisa menguji rentang versi lewat kalkulator SemVer npm yang interaktif.
Tips memberi nomor versi pada proyekmu
Tentukan API publikmu. SemVer hanya berguna jika kamu tahu apa yang tergolong perubahan yang merusak, entah itu fungsi, endpoint, format file simpanan, atau antarmuka mod.
Hubungkan commit dengan versi. Standar Conventional Commits memetakan
fix:ke patch,feat:ke rilis minor, danBREAKING CHANGEke rilis major. Padukan dengan panduan kami tentang menulis pesan commit Git yang rapi dan jelas.Buat changelog yang mudah dibaca manusia. Ikuti panduan Keep a Changelog dan kelompokkan perubahan menjadi Added, Changed, Fixed, dan Removed.
Jangan pernah mengubah versi yang sudah dirilis. Jika ada kesalahan, rilis versi baru alih-alih mengganti file di nomor versi lama.
Ingat aturan tiap platform. Di Android,
versionNameyang terlihat pengguna boleh mengikuti SemVer, tetapiversionCodeinternal harus berupa bilangan bulat yang selalu naik di setiap rilis, seperti dijelaskan dalam panduan versioning Android.
Kapan SemVer kurang cocok
Sebagian produk lebih mementingkan tanggal rilis daripada kompatibilitas. Ubuntu 24.04, misalnya, memakai calendar versioning, di mana angkanya menunjukkan tahun dan bulan. Jika penggunamu lebih sering bertanya "seberapa baru versi ini?", pertimbangkan CalVer. Untuk library, API, dan alat yang diandalkan developer lain, SemVer biasanya pilihan yang lebih jelas.
Nomor versi yang baik adalah sebuah janji. Ia memberi tahu pengguna apa yang akan terjadi sebelum mereka menekan tombol "perbarui".
Jelajahi lebih lanjut
Kualitas rilis juga bergantung pada kecepatan. Pelajari tiga angka Core Web Vitals yang menentukan secepat apa situsmu terasa, dan lihat aplikasi serta game yang kami rilis di Ryuartistry.