Konvensi Penamaan dalam Pemrograman — camelCase, snake_case, dan Selebihnya
Anda membuka basis kode untuk pertama kalinya dan melihat getUserName, get_user_name, dan GetUserName semua dalam file yang sama. Langsung Anda tahu ada yang salah. Konvensi penamaan adalah salah satu hal yang tampak sepele sampai Anda bekerja dalam tim — lalu menjadi esensial.
Penamaan yang konsisten bukan soal preferensi pribadi. Ini tentang membuat kode dapat dibaca oleh orang berikutnya yang menyentuhnya, yang sering kali adalah diri Anda sendiri enam bulan kemudian.
Mengapa Konvensi Penamaan Penting
Tiga hal rusak ketika proyek tidak memiliki penamaan yang konsisten:
- Keterbacaan menurun — Ketika gaya variabel berubah setiap beberapa baris, otak Anda membuang siklus untuk mengurai format alih-alih memahami logika
- Kolaborasi tim terpecah — Pull request menjadi medan pertempuran tentang gaya alih-alih substansi. Onboarding pengembang baru memakan waktu lebih lama karena tidak ada pola yang dapat diprediksi
- Alat berhenti bekerja dengan benar — Linter, auto-complete, generator kode, dan alat refactoring semuanya bergantung pada pola penamaan yang dapat diprediksi
Konvensi yang Anda pilih jauh lebih tidak penting daripada memilih satu dan mematuhinya. Basis kode dengan snake_case yang konsisten di mana-mana jauh lebih baik daripada yang mencampur tiga gaya berbeda.
Panduan Lengkap Konvensi Penamaan
camelCase
Kata pertama huruf kecil, dan setiap kata berikutnya dimulai dengan huruf besar. Tanpa pemisah.
// JavaScript / TypeScript
const userName = "Alice";
let itemCount = 42;
function getUserProfile(userId) {
return fetchData(`/users/${userId}`);
}
Di mana digunakan: JavaScript, TypeScript, dan Java menggunakan camelCase untuk variabel, nama fungsi, dan metode. Ini juga standar di Swift untuk variabel lokal dan parameter fungsi.
PascalCase
Setiap kata dimulai dengan huruf besar. Juga disebut UpperCamelCase.
// TypeScript / C#
class UserProfile {
firstName: string;
lastName: string;
}
interface DatabaseConnection {
host: string;
port: number;
}
// Komponen React
function NavigationBar({ items }: NavProps) {
return <nav>{/* ... */}</nav>;
}
Di mana digunakan: C# menggunakan PascalCase untuk hampir semua yang publik — kelas, metode, properti. TypeScript dan JavaScript menggunakannya untuk kelas, interface, alias tipe, dan enum. React mewajibkan PascalCase untuk nama komponen karena JSX perlu membedakan komponen dari elemen HTML.
Di Go, PascalCase memiliki arti khusus: setiap pengenal yang dimulai dengan huruf besar diekspor (publik).
snake_case
Semua kata huruf kecil, dipisahkan oleh underscore.
# Python
user_name = "Alice"
item_count = 42
def get_user_profile(user_id):
return fetch_data(f"/users/{user_id}")
class UserProfile:
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
Di mana digunakan: Python menggunakan snake_case untuk hampir semuanya kecuali nama kelas. Ruby mengikuti pola yang sama. Rust menggunakan snake_case untuk variabel, fungsi, dan modul. Skema database hampir secara universal menggunakan snake_case untuk nama tabel dan kolom.
SCREAMING_SNAKE_CASE
Semua huruf besar dengan underscore. Dicadangkan untuk konstanta dan nilai yang tidak boleh berubah.
// Konstanta di sebagian besar bahasa
const MAX_RETRY_COUNT = 3;
const API_BASE_URL = "https://api.example.com";
const DEFAULT_TIMEOUT_MS = 5000;
Di mana digunakan: Hampir setiap bahasa menggunakan SCREAMING_SNAKE_CASE untuk konstanta. Format huruf besar semua adalah sinyal universal yang mengatakan "jangan tetapkan ulang nilai ini".
kebab-case
Semua huruf kecil dengan tanda hubung sebagai pemisah.
/* Nama kelas CSS */
.navigation-bar {
background-color: #1a1a2e;
}
.user-profile-card {
border-radius: 8px;
}
# Flag CLI
npm install --save-dev eslint
git commit --no-verify
Di mana digunakan: CSS dan HTML sangat memilih kebab-case. Slug URL menggunakannya. Alat CLI dan flag baris perintah mengikutinya.
kebab-case tidak dapat digunakan untuk nama variabel di sebagian besar bahasa pemrograman karena tanda hubung diinterpretasikan sebagai operator pengurangan.
dot.case
Kata dipisahkan oleh titik.
// Nama paket Java
package com.example.userservice.controllers;
import org.springframework.boot.SpringApplication;
Di mana digunakan: Penamaan paket Java, ekstensi file, kunci properti konfigurasi di Spring Boot dan framework serupa.
Title Case
Setiap kata utama dikapitalisasi. Kata minor seperti "dan", "di", "untuk" tetap huruf kecil.
Di mana digunakan: Judul UI, judul halaman, item menu, bagian dokumentasi, dan nama proper.
path/case
Kata dipisahkan oleh garis miring, mengikuti konvensi sistem file atau namespace.
Di mana digunakan: Path sistem file, path modul, hierarki namespace, dan struktur routing URL.
Tabel Konvensi per Bahasa
| Bahasa | Variabel / Fungsi | Kelas / Tipe | Konstanta | File |
|---|---|---|---|---|
| JavaScript / TypeScript | camelCase | PascalCase | SCREAMING_SNAKE_CASE | kebab-case atau camelCase |
| Python | snake_case | PascalCase | SCREAMING_SNAKE_CASE | snake_case |
| Go | camelCase (tidak diekspor) | PascalCase (diekspor) | PascalCase atau ALL_CAPS | snake_case |
| Rust | snake_case | PascalCase | SCREAMING_SNAKE_CASE | snake_case |
| Java | camelCase | PascalCase | SCREAMING_SNAKE_CASE | PascalCase |
| C# | camelCase (privat) | PascalCase (publik) | PascalCase | PascalCase |
| Ruby | snake_case | PascalCase | SCREAMING_SNAKE_CASE | snake_case |
| CSS | kebab-case | — | — | kebab-case |
| SQL | snake_case (kolom) | — | HURUF BESAR (kata kunci) | snake_case |
| PHP | camelCase | PascalCase | SCREAMING_SNAKE_CASE | PascalCase |
Kesalahan Umum dan Cara Memperbaikinya
1. Mencampur konvensi dalam scope yang sama
// ❌ Tidak konsisten
const user_name = "Alice";
const itemCount = 42;
const MaxRetries = 3;
// ✅ camelCase konsisten
const userName = "Alice";
const itemCount = 42;
const maxRetries = 3;
2. Menggunakan konvensi yang salah untuk bahasa
# ❌ Menggunakan camelCase di Python
def getUserProfile(userId):
userName = fetchUser(userId)
return userName
# ✅ Menggunakan snake_case seperti yang diharapkan Python
def get_user_profile(user_id):
user_name = fetch_user(user_id)
return user_name
3. Singkatan dan akronim
// ❌ Penanganan akronim tidak konsisten
const XMLParser = new XmlParser();
const htmlToJSON = convert(HTMLString);
// ✅ Perlakukan akronim sebagai kata
const xmlParser = new XmlParser();
const htmlToJson = convert(htmlString);
4. Nama boolean tanpa prefiks is/has/can
// ❌ Boolean ambigu
const active = true;
// ✅ Niat boolean yang jelas
const isActive = true;
Konversi Otomatis Antar Konvensi
Saat Anda bekerja lintas bahasa, mengonversi konvensi penamaan secara manual membosankan dan rawan kesalahan.
String Case Converter kami menangani ini secara otomatis. Tempel pengenal apa pun dan konversi antara camelCase, PascalCase, snake_case, kebab-case, dan lainnya dengan satu klik.
Bacaan Lanjutan
- JSON Formatting Best Practices — Strukturkan data Anda sebersih Anda menamai variabel
- Regex Cheat Sheet — Referensi pencocokan pola untuk validasi dan pemrosesan teks
- SQL Formatting Best Practices — Tulis kueri SQL yang mudah dibaca
Siap mengonversi konvensi penamaan secara otomatis? Coba String Case Converter kami — tempel pengenal apa pun dan ubah antara camelCase, snake_case, PascalCase, kebab-case, dan lainnya. Tanpa pendaftaran, tanpa data dikirim ke server, sepenuhnya gratis.