Version Code: apa itu, pengidentifikasi numerik dan pembaruan

Penulis: IT Sectr Diterbitkan: 2026-04-17 Waktu membaca: 8 mnt

Version Code — adalah bilangan bulat positif dalam pengembangan Android yang secara unik mengidentifikasi setiap build baru aplikasi. Google Play dan sistem Android menggunakan Version Code untuk menentukan kebutuhan pembaruan: jika kode build baru lebih besar dari yang terinstal, proses pembaruan dimulai. Menurut Android Developer Documentation, Version Code tidak ditampilkan kepada pengguna dan hanya berfungsi untuk penomoran versi internal.

Poin Utama

  • Version Code — pengidentifikasi numerik build aplikasi Android untuk Google Play
  • Kenaikan — setiap build baru harus memiliki Version Code lebih besar dari sebelumnya
  • Version Name — versi teks untuk pengguna, tidak memengaruhi mekanisme pembaruan
  • Konfigurasi dilakukan di build.gradle melalui bidang versionCode
  • Batas — nilai maksimum Version Code adalah 2100000000

Apa itu Version Code di Android

Version Code — adalah bilangan bulat bertipe Integer yang diberikan kepada setiap build aplikasi Android. Berbeda dengan Version Name, Version Code tidak ditampilkan kepada pengguna dan hanya digunakan oleh sistem operasi dan Google Play untuk membandingkan versi saat menginstal pembaruan.

Format Version Code

Version Code harus berupa bilangan bulat positif dalam rentang 1 hingga 2100000000. Setiap build berikutnya harus memiliki Version Code yang benar-benar lebih besar dari sebelumnya. Jika pengembang telah merilis build dengan Version Code 5, publikasi berikutnya dapat menggunakan 6, 7, atau angka berapa pun yang lebih besar dari 5, tetapi bukan 4 dan bukan 5 lagi.

Sejarah kemunculan

Google memperkenalkan pemisahan antara Version Code dan Version Name bersamaan dengan rilis Android SDK pada tahun 2007. Version Code dirancang sebagai pengidentifikasi mesin untuk perbandingan versi otomatis, sementara Version Name — sebagai label yang dapat dibaca manusia. Pemisahan ini memungkinkan pengembang untuk memberi nama versi sesuka hati, sambil mempertahankan urutan pembaruan yang ketat melalui kode numerik.

ParameterVersion CodeVersion Name
Tipe dataIntegerString
Ditampilkan ke penggunaTidakYa
Perbandingan versiPerbandingan numerikTidak digunakan
Format1, 2, 3, 10, 1001.0.0, 2.3.1-rc
Rentang1 — 2100000000Tanpa batasan

Bagaimana cara kerja versioning melalui Version Code

Mekanisme perbandingan Version Code tertanam dalam sistem operasi Android dan toko Google Play. Pada setiap publikasi, Google Play memeriksa apakah Version Code build baru lebih besar dari kode versi yang terinstal. Jika kondisi tidak terpenuhi, publikasi ditolak dengan kesalahan.

Proses pemeriksaan pembaruan

Ketika perangkat menghubungi Google Play untuk memeriksa pembaruan, server membandingkan Version Code aplikasi yang terinstal dengan yang maksimum tersedia di toko. Jika kode di server lebih besar — pengunduhan dan instalasi pembaruan dimulai. Pengguna melihat Version Name yang ditentukan oleh pengembang, tetapi keputusan tentang pembaruan diambil berdasarkan Version Code.

Kenaikan Version Code

Pengembang menerapkan berbagai strategi untuk menaikkan Version Code. Yang paling sederhana adalah peningkatan sebesar 1 pada setiap build. Untuk pipeline CI/CD sering digunakan timestamp atau nomor build: 2026070301 (tahun-bulan-hari-nomor). Penting agar kode meningkat secara monoton dan tidak berulang di antara berbagai build dan track Google Play.

  • Kenaikan monoton — peningkatan sebesar 1 pada setiap commit ke cabang release
  • Format timestamp — 20260703 untuk build harian, 2026070301 untuk beberapa dalam sehari
  • SemVer dalam angka — 100010000 untuk versi 1.1.0 (major 1, minor 1, patch 0)
  • Nomor build — penggunaan BUILD_NUMBER dari sistem CI (Jenkins, GitHub Actions)

Perbedaan antara Version Code dan Version Name

Version Code dan Version Name — dua bidang independen di build.gradle yang menjalankan fungsi berbeda. Version Code adalah pengidentifikasi internal untuk sistem, Version Name adalah label pemasaran untuk pengguna. Keduanya dapat berubah secara independen satu sama lain.

Version Name untuk pengguna

Version Name — adalah string yang ditampilkan di pengaturan aplikasi, di Google Play, dan di dialog pembaruan. Pengembang dapat menentukan format apa pun: 1.0.0, 2.3.1-beta, 3.0-rc1. Untuk membandingkan versi teks, Version Name tidak digunakan — Google Play selalu mengandalkan Version Code.

Skenario perbedaan

Situasi mungkin terjadi ketika Version Code meningkat, tetapi Version Name tetap tidak berubah. Misalnya, jika pengembang memperbaiki bug kritis dalam build hotfix tanpa mengubah fungsionalitas. Version Name tetap 2.0.0, dan Version Code berubah dari 5 menjadi 6. Google Play akan menangani pembaruan semacam itu dengan benar.

groovy
// Contoh: version name tidak berubah, code meningkat
android {
    defaultConfig {
        versionCode 6  // Adalah 5 — hotfix tanpa fitur baru
        versionName "2.0.0"  // Tidak berubah
    }
}

// Pemeriksaan versi di runtime
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Kode: $code, Nama: $name")

Konfigurasi Version Code di build.gradle

Konfigurasi Version Code dilakukan dalam file build.gradle modul aplikasi. Bidang versionCode menerima bilangan bulat dan berada di blok defaultConfig. Untuk build flavour yang berbeda, nilai khusus dapat ditetapkan melalui bidang versionCode dalam konfigurasi produk.

Konfigurasi dasar

kotlin
// build.gradle.kts — Kotlin DSL
android {
    defaultConfig {
        applicationId "com.example.app"
        versionCode 15
        versionName "2.1.0"
    }

    flavorDimensions +"version"
    productFlavors {
        create("demo") {
            versionCode 1015
        }
        create("full") {
            versionCode 2015
        }
    }
}

Product flavors memungkinkan penggunaan Version Code yang berbeda untuk konfigurasi yang berbeda: versi demo, versi terpisah untuk tablet. Jika flavors digunakan dalam proyek, Version Code akhir terdiri dari angka dasar dan kenaikan khusus flavour. Google Play melacak setiap kombinasi secara independen.

Otomatisasi kenaikan melalui CI

Dalam pipeline CI/CD (GitHub Actions, GitLab CI, Jenkins) Version Code sering dihasilkan secara otomatis berdasarkan nomor build atau tanggal. Ini menghilangkan kesalahan manusia saat pembaruan manual. Skrip membaca Version Code saat ini dari build.gradle, menaikkannya, dan menulisnya kembali sebelum build dimulai.

kotlin
// Kenaikan otomatis Version Code
import java.util.Properties
import java.io.FileInputStream

val versionProps = Properties()
versionProps.load(FileInputStream("version.properties"))

val versionCode = versionProps.getProperty("VERSION_CODE").toInt() + 1
versionProps.setProperty("VERSION_CODE", versionCode.toString())

android {
    defaultConfig {
        versionCode = versionCode
    }
}

Aturan Version Code untuk publikasi di Google Play

Google Play memiliki aturan ketat untuk Version Code saat mempublikasikan dan memperbarui aplikasi. Pelanggaran aturan ini menyebabkan penolakan build atau ketidakmampuan untuk merilis pembaruan. Pengembang harus memahami batasan dan strategi manajemen kode di semua tahap siklus hidup.

Aturan kenaikan monoton

Google Play tidak mengizinkan mengunggah APK atau AAB yang Version Code-nya lebih kecil atau sama dengan yang telah dipublikasikan saat ini. Aturan ini berlaku untuk setiap track (production, beta, alpha) secara independen. Jika di production telah diunggah build dengan Version Code 10, dan di alpha — dengan kode 5, track alpha dapat diperbarui ke 6, 7, 8, atau 9, tetapi production tetap di 10.

Migrasi antar track

Saat mempromosikan build dari alpha ke beta, lalu ke production, Version Code harus meningkat di setiap tahap. Jika versi alpha memiliki kode 10, beta dapat menggunakan 11, dan production — 12. Tidak dapat merilis build dengan kode 10 ke production jika alpha sudah menggunakan 10, meskipun production belum melihatnya.

  • Monotonous increment — setiap build di track memiliki Version Code lebih besar dari sebelumnya di track yang sama
  • Cross-track awareness — saat promosi antar track, Version Code meningkat secara berurutan
  • Internal testing — track pengujian internal menggunakan aturan monotonisitas yang sama
  • Multiple APKs — format publikasi lama memerlukan Version Code unik untuk setiap APK

Kesalahan saat menentukan Version Code

Kesalahan paling umum — kecocokan Version Code di berbagai build yang diunggah ke satu track. Google Play mengembalikan kesalahan APK_VERSION_CODE_ALREADY_EXISTS. Kesalahan lain — melebihi nilai maksimum 2100000000, yang menyebabkan kesalahan kompilasi. Untuk menghindari konflik, gunakan pembuatan kode otomatis di sistem CI yang terhubung dengan nomor build atau tanggal build.

Pengembang juga sering melakukan kesalahan dengan tidak menaikkan Version Code saat build hotfix untuk track alternatif. Jika production memiliki kode 15, dan track alpha tetap di 14, saat mempromosikan alpha ke production Google Play akan menolak build karena kodenya lebih kecil dari production saat ini. Pantau monotonisitas kode di semua track secara bersamaan — untuk ini, gunakan satu file version.properties dari mana semua track membaca nilai saat ini.

Pertanyaan Umum

Bisakah saya merilis pembaruan dengan Version Code lebih kecil dari yang saat ini?

Tidak, Google Play tidak mengizinkan mengunggah build dengan Version Code lebih kecil atau sama dengan yang telah dipublikasikan saat ini di track yang sama. Sistem memeriksa kode saat mengunggah dan mengembalikan kesalahan jika aturan kenaikan monoton dilanggar. Untuk track alfa dan beta, prinsip yang sama berlaku secara independen.

Version Code apa yang harus ditentukan untuk publikasi pertama aplikasi?

Untuk publikasi pertama, Anda dapat menentukan Version Code 1. Google Play tidak menetapkan ambang minimum selain bilangan bulat positif. Disarankan untuk memulai dari 1 dan menaikkannya sebesar 1 pada setiap build berikutnya. Jika Anda menggunakan format timestamp, build pertama bisa 20260701.

Bagaimana hubungan Version Code dengan Version Name di Google Play?

Version Code — adalah pengidentifikasi mesin internal yang digunakan oleh sistem untuk perbandingan. Version Name — adalah label pengguna yang ditampilkan di Google Play dan di perangkat. Pengguna melihat Version Name (misalnya, 2.0.0), dan Google Play menggunakan Version Code untuk menentukan kebutuhan pembaruan.

Apa yang terjadi jika nilai maksimum Version Code terlampaui?

Nilai maksimum Version Code adalah 2100000000 (Integer.MAX_VALUE). Jika terlampaui, kompiler akan mengembalikan kesalahan karena bidang tersebut bertipe int. Untuk proyek dengan jumlah build yang besar (CI/CD dengan rilis harian) disarankan menggunakan format timestamp atau mereset penghitung dengan dimulainya versi major.

Bisakah Version Code digunakan untuk pengujian A/B?

Version Code tidak digunakan secara langsung untuk pengujian A/B, tetapi secara tidak langsung memengaruhinya. Google Play memungkinkan konfigurasi peluncuran bertahap (staged rollout) berdasarkan persentase pengguna untuk build tertentu. Version Code mengidentifikasi build, dan pengujian A/B dikonfigurasi melalui Firebase Remote Config atau layanan serupa.

Kesimpulan

  • Version Code — bilangan bulat yang secara unik mengidentifikasi setiap build aplikasi Android
  • Google Play menggunakan Version Code untuk menentukan kebutuhan pembaruan aplikasi
  • Aturan kenaikan — setiap build baru harus memiliki kode yang benar-benar lebih besar dari sebelumnya di track yang sama
  • Rentang nilai — dari 1 hingga 2100000000 (Integer.MAX_VALUE)
  • Version Name — label teks pengguna, tidak memengaruhi mekanisme pembaruan
  • Otomatisasi — sistem CI/CD dapat menghasilkan Version Code dari nomor build atau timestamp
  • Rekomendasi — pilih strategi kenaikan sebelum publikasi dan patuhi selama seluruh siklus hidup

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga