Aturan identifier pada Chapter sebelumnya hanya memisahkan nama yang sah dari yang ditolak compiler. Di antara jutaan nama yang sah, komunitas Java menyepakati gaya penamaan yang jauh lebih sempit — dan kesepakatan ini yang membuat kode Java terasa seragam di mana pun dibaca. Nama yang mengikuti konvensi dapat ditebak: pembaca mengetahui sesuatu itu class, konstanta, atau method hanya dari bentuk namanya, bahkan sebelum melihat deklarasinya. Pada Chapter ini kita pelajari empat konvensi utama Java dan melatihnya dalam satu program utuh.
Empat Konvensi Utama #
Konvensi Java memetakan setiap jenis elemen kode ke satu gaya penulisan:
| Elemen | Gaya | Contoh |
|---|---|---|
| Class, interface, enum, record | PascalCase | RincianBelanja, AplikasiNilai |
| Method dan variabel | camelCase | hitungTotal(), namaPengguna |
Konstanta (static final) | UPPER_SNAKE_CASE | HARGA_ASLI, BATAS_STOK |
| Package | semua huruf kecil | com.sekolah.aplikasi |
PascalCase dan camelCase sama-sama menyatukan kata tanpa spasi, dibedakan oleh huruf pertama: kapital untuk nama tipe, kecil untuk nama variabel dan method. UPPER_SNAKE_CASE memakai huruf kapital semua dengan garis bawah sebagai pemisah — sinyal visual bahwa nilainya tetap dan tidak berubah selama program berjalan. Sementara package selalu huruf kecil agar seragam di semua sistem operasi, karena Java peka huruf besar-kecil sedangkan sebagian sistem berkas tidak.
Konvensi dalam Satu Program #
Program berikut memakai keempat konvensi sekaligus dalam konteks pengelolaan stok:
public class KonvensiPenamaan {
// Konstanta: UPPER_SNAKE_CASE
private static final int BATAS_STOK = 50;
private static final String NAMA_TOKO = "Toko Sederhana";
public static void main(String[] args) {
// Variabel: camelCase
int stokSaatIni = 12;
boolean perluRestok = stokSaatIni < BATAS_STOK;
System.out.println(NAMA_TOKO);
System.out.println("Stok saat ini: " + stokSaatIni);
System.out.println("Perlu restok : " + perluRestok);
System.out.println("Saran beli : " + hitungSaranBeli(stokSaatIni) + " unit");
}
// Method: camelCase, diawali kata kerja
static int hitungSaranBeli(int stokSaatIni) {
return BATAS_STOK - stokSaatIni;
}
}Output yang Dihasilkan:
Toko Sederhana
Stok saat ini: 12
Perlu restok : true
Saran beli : 38 unitMari kita bedah peran setiap nama:
- Baris 4-5 (
BATAS_STOKdanNAMA_TOKO): konstanta bertulisan kapital berteriak bahwa nilainya tetap. Berkat gaya ini, baris 14 yang membandingkanstokSaatIni < BATAS_STOKlangsung terbaca sebagai perbandingan dengan nilai tetap. - Baris 10-11 (
stokSaatIni,perluRestok): variabel camelCase berfungsi sebagai kata benda yang hidup — nilainya berubah seiring program berjalan. NamaperluRestokberjenis boolean sehingga kalimatstokSaatIni < BATAS_STOKberartitrueterasa wajar. - Baris 17 (
hitungSaranBeli): method camelCase diawali kata kerjahitungkarena method adalah aksi. ParameterstokSaatInisengaja senada dengan variabel dimainagar maksud pemanggilan mudah diikuti. - Baris 1 (
KonvensiPenamaan): nama class PascalCase berupa kata benda — class adalah wadah, bukan aksi.
Mengapa Konvensi Penting #
Konvensi bukan hiasan; konvensi mempercepat tiga hal nyata. Pertama, kecepatan membaca: BATAS_STOK terlihat sebagai konstanta tanpa perlu mencari deklarasinya, dan hitungSaranBeli terlihat sebagai method tanpa perlu membuka isi classnya. Kedua, prediktabilitas API: seluruh pustaka standar Java mengikuti konvensi yang sama — String punya method length(), toUpperCase(), dan substring() — sehingga method yang belum pernah kita pakai pun bisa ditebak bentuk namanya. Ketiga, kerja tim: satu basis kode dengan gaya seragam menghapus perdebatan dan mengurangi kekeliruan membaca kode orang lain.
Konvensi juga menutup celah kekeliruan yang dibuka oleh case-sensitivity. Variabel nama dan Nama boleh hidup berdampingan menurut compiler, tetapi konvensi camelCase untuk semua variabel membuat pasangan semacam itu terlihat mencurigakan dan cepat dibersihkan saat peninjauan kode.
Nama yang Komunikatif #
Gaya kapitalisasi hanya satu sisi; sisi lain adalah pemilihan kata. Bandingkan dua versi deklarasi berikut:
// Versi kurang komunikatif
int x = 4500;
double d = 0.1;
int proses(int a, int b) { return a - b; }
// Versi komunikatif
int hargaSatuan = 4500;
double rasioDiskon = 0.1;
int hitungSelisih(int harga, int dibayar) { return harga - dibayar; }Kedua versi sama-sama sah bagi compiler dan menghasilkan perilaku identik. Bedanya muncul saat kode dibaca kembali: versi pertama memaksa pembaca menelusuri seluruh program untuk tahu arti x dan d, sedangkan versi kedua menjelaskan dirinya sendiri di setiap baris. Aturan praktisnya sederhana — nama variabel berupa kata benda yang menjelaskan isinya, nama method berupa kata kerja yang menjelaskan aksinya, dan singkatan hanya dipakai bila sudah umum seperti id atau url.
Konvensi penamaan melengkapi fondasi sintaks yang telah kita bangun: struktur program, class dan method, komentar, statement, identifier. Satu topik penutup masih tersisa di Section ini, dan topik tersebut mengubah cara kita memandang kesalahan: kapan kesalahan tertangkap saat kompilasi dan kapan kesalahan baru muncul saat program berjalan. Chapter berikutnya membedah garis batas compile time dan runtime.
Referensi #
Berkas Sumber
Berkas pendukung halaman ini dapat diunduh dan dijalankan langsung sesuai penjelasan di atas.
KonvensiPenamaan.java
Unduh berkaspublic class KonvensiPenamaan {
// Konstanta: UPPER_SNAKE_CASE
private static final int BATAS_STOK = 50;
private static final String NAMA_TOKO = "Toko Sederhana";
public static void main(String[] args) {
// Variabel: camelCase
int stokSaatIni = 12;
boolean perluRestok = stokSaatIni < BATAS_STOK;
System.out.println(NAMA_TOKO);
System.out.println("Stok saat ini: " + stokSaatIni);
System.out.println("Perlu restok : " + perluRestok);
System.out.println("Saran beli : " + hitungSaranBeli(stokSaatIni) + " unit");
}
// Method: camelCase, diawali kata kerja
static int hitungSaranBeli(int stokSaatIni) {
return BATAS_STOK - stokSaatIni;
}
}