Back to blog
Tools

Memahami Semantic Versioning (SemVer) di package.json npm

Pernahkah kamu penasaran apa arti tanda pangkat (^) atau simbol gelombang (~) di depan versi react: '^18.2.0' di file package.json milikmu?

super admin·18 Juni 2026·2 min read
Memahami Semantic Versioning (SemVer) di package.json npm
Article Content

Angka yang Mengatur Stabilitas Aplikasimu

Saat kamu meng-install *library* di Node.js (misalnya React atau Axios), file package.json milikmu akan otomatis menyimpan daftar nama *library* tersebut beserta sebuah angka versi. Contohnya: "react": "^18.2.0".

Format angka tiga tingkat yang dipisahkan oleh titik itu disebut Semantic Versioning (SemVer). Ini adalah janji (kontrak) dari pembuat *library* kepada kita (pengguna) tentang seberapa besar risiko *update* yang akan terjadi.

Membedah Tiga Angka: MAJOR.MINOR.PATCH

Mari kita bedah angka 18.2.0 dari kanan ke kiri:

  1. Angka Terakhir (Patch = 0): Angka ini naik (menjadi 18.2.1) JIKA pembuat *library* hanya memperbaiki bug tersembunyi (Bug Fixes). Tidak ada fitur baru. Jika kamu melakukan *update* *patch*, aplikasimu dijamin 100% aman dan tidak akan ada yang rusak (Backward Compatible).
  2. Angka Tengah (Minor = 2): Angka ini naik (menjadi 18.3.0) JIKA pembuat *library* menambahkan Fitur Baru yang keren, tapi mereka menjamin fitur lama tidak dihapus. Jadi, jika kamu *update*, kodemu masih berjalan normal, tapi kamu mendapat alat baru untuk dimainkan.
  3. Angka Depan (Major = 18): Ini yang berbahaya! Angka ini naik (menjadi 19.0.0) jika pembuat *library* merombak arsitektur dan menghapus/mengubah cara kerja kode lama (Breaking Changes). Jika kamu asal meng-*update* ke versi *Major* yang baru, website-mu dipastikan akan dipenuhi *error* merah dan tidak bisa di-*start*!

Misteri Simbol di Depan Angka

Saat kamu menjalankan perintah npm install (atau npm update), NPM akan melihat simbol di depan angka versimu untuk memutuskan *update* mana yang diizinkan untuk di-download secara otomatis ke laptopmu.

  • Tilde (~) ~18.2.0
    Artinya: "NPM, tolong otomatis downloadkan versi terbaru, tapi HANYA untuk update Patch saja ya." (NPM maksimal akan men-download versi 18.2.9).
  • Caret (^) ^18.2.0 (Ini Default bawaan NPM)
    Artinya: "NPM, tolong update-kan semua Patch dan fitur Minor yang baru, ASALKAN angka Major-nya (18) tidak berubah." (NPM berani meng-update ke 18.9.9). Ini adalah zona aman maksimal.
  • Tanpa Simbol 18.2.0 (Versi Terkunci)
    Artinya: "NPM, kunci mati di versi ini! Jangan berani-berani men-download versi yang lebih baru meskipun ada perbaikan bug!" (Biasanya digunakan di proyek Bank/Enterprise dengan validasi sangat ketat).

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates