Bahasa Indonesia modern ditulis dengan ejaan yang dibakukan lewat EYD (Ejaan yang Disempurnakan) tahun 1972 — reformasi yang, antara lain, menghapus huruf "tj", "dj", dan "j" gaya Belanda lama menjadi "c", "j", dan "y" ("tjinta" menjadi "cinta"). Ejaan itu tidak mengenal konsep gaya penulisan kode seperti camelCase atau snake_case sama sekali; aturan huruf besar dalam EYD hanya soal awal kalimat dan nama diri, bukan soal identifier pemrograman.
Gaya-gaya utama
- camelCase — kata pertama huruf kecil, setiap kata berikutnya diawali huruf besar, tanpa pemisah:
userName. Standar untuk variabel dan fungsi di JavaScript, Java, C#. - PascalCase — sama, tapi kata pertama juga diawali huruf besar:
UserName. Digunakan untuk class dan komponen hampir di mana-mana. - snake_case — kata-kata digabung dengan garis bawah, semua huruf kecil:
user_name. Standar di Python dan nama kolom basis data. - kebab-case — kata-kata digabung dengan tanda hubung:
user-name. Standar untuk URL, class CSS, dan atribut HTML, karena garis bawah kurang umum di URL.
Mengapa ini bukan sekadar estetika
Karena huruf Latin dalam bahasa Indonesia tidak punya diakritik atau huruf khusus (tidak seperti banyak bahasa Eropa lain), penulisan identifier dari kata Indonesia langsung ke camelCase atau snake_case nyaris tanpa hambatan teknis — namaPengguna valid persis seperti userName. Yang tersisa hanyalah soal konsistensi gaya: linter, pelengkapan otomatis IDE, dan generator dokumentasi tetap mengharapkan gaya tertentu untuk jenis entitas tertentu, apa pun bahasa sumber katanya.
Untuk apa konversi ini dibutuhkan
- Memetakan field dari API JSON (biasanya camelCase) ke nama kolom basis data (biasanya snake_case).
- Mengganti nama variabel saat memindahkan kode dari satu bahasa ke bahasa lain dengan konvensi berbeda.
- Menghasilkan slug yang kompatibel dengan URL atau class CSS dari teks judul, termasuk judul berbahasa Indonesia.
Ambiguitas dengan singkatan
Identifier seperti userID atau XMLParser membuat konverter harus memilih: memperlakukan singkatan sebagai satu "kata" atau memecahnya menjadi huruf-huruf terpisah. Alat yang berbeda menangani ini secara berbeda pula — konverter ini mengenali rangkaian huruf besar sebagai satu segmen kata (XMLParser → XML + Parser), tetapi hasilnya tetap perlu diperiksa manual jika nama tersebut akan langsung masuk ke kode produksi.