Karakter dan byte itu berbeda
Jumlah karakter adalah banyaknya huruf yang dilihat manusia, sedangkan byte adalah ukuran ruang yang dipakai saat teks disimpan di komputer. Karakter yang sama bisa memakai jumlah byte berbeda tergantung pengodean karakter (aturan yang mengubah karakter menjadi angka) yang digunakan. Huruf Latin dan angka berukuran 1 byte di hampir semua pengodean, tetapi karakter Korea bisa 2 byte atau 3 byte tergantung pengodeannya.
UTF-8: standar masa kini
UTF-8 adalah pengodean yang dipakai halaman web dan sebagian besar perangkat lunak modern. Pengodean ini memakai 1–4 byte tergantung besar nomor Unicode (code point) (RFC 3629).
| Rentang code point | Byte | Contoh |
|---|---|---|
| U+0000 – U+007F | 1 | Huruf Latin dasar, angka, simbol dasar |
| U+0080 – U+07FF | 2 | é, ñ, huruf Yunani, Sirilik, dan Arab |
| U+0800 – U+FFFF | 3 | Hangul, aksara Tionghoa, kana |
| U+10000 – U+10FFFF | 4 | Sebagian besar emoji, aksara kuno |
Semua suku kata Hangul prakomposisi (가 sampai 힣, U+AC00 sampai U+D7A3) berada di rentang ketiga, jadi dalam UTF-8 setiap karakter Korea berukuran 3 byte. Misalnya, ‘안녕하세요’ (halo) terdiri dari 5 karakter dan 15 byte.
UTF-16
UTF-16, yang dipakai secara internal oleh JavaScript, Java, dan Windows, menyimpan sebagian besar karakter dalam 2 byte, dan karakter di U+10000 ke atas seperti emoji dalam 4 byte (pasangan surrogate). Inilah sebabnya panjang string JavaScript menghitung satu emoji sebagai 2.
EUC-KR: pengodean prakomposisi Korea
EUC-KR adalah pengodean berbasis standar industri Korea KS X 1001. Huruf Latin dan angka berukuran 1 byte, sedangkan karakter yang termasuk dalam KS X 1001 berukuran 2 byte. KS X 1001 memuat 2.350 suku kata Hangul yang sering dipakai, 4.888 aksara Tionghoa (hanja), kana, huruf Yunani dan Sirilik, serta berbagai simbol.
Masalahnya, dari 11.172 suku kata Hangul modern hanya 2.350 yang termasuk. Karakter yang tidak ada dalam daftar, seperti ‘똠’, ‘햏’, dan ‘뷁’ (suku kata yang jarang tetapi sah), tidak dapat dinyatakan dengan dua byte EUC-KR standar. Lampiran standar tersebut mendefinisikan cara penggabungan 8 byte, tetapi hanya sedikit program yang mendukungnya, sehingga karakter ini biasanya berubah menjadi ‘?’ atau menimbulkan galat.
CP949: prakomposisi yang diperluas
CP949 (‘Unified Hangul Code’ dari Microsoft) memperluas EUC-KR sehingga seluruh 11.172 suku kata Hangul modern muat dalam 2 byte. Karena merupakan code page bawaan Windows untuk bahasa Korea, pengodean ini banyak dipakai di dokumen dan sistem Korea yang lebih lama. Kebiasaan ‘huruf Latin 1 byte, Hangul 2 byte’ sebagian besar berasal dari pengodean ini.
Kapan byte menjadi penting
- Pesan singkat: layanan pesan di Korea umumnya menyebut pesan pendek (SMS) sebesar 90 byte dan menghitung Hangul sebagai 2 byte, yaitu sekitar 45 karakter Korea. Jika lebih, pesan berubah menjadi pesan panjang (LMS) yang tarifnya bisa berbeda, jadi periksa ketentuan pasti layanan yang Anda gunakan.
- Kolom basis data: pada pengaturan yang mengukur panjang dalam byte, seperti VARCHAR2 di Oracle, 20 karakter Latin dan 20 karakter Korea memakai ruang yang berbeda. Pada basis data UTF-8, satu karakter Korea memakai 3 byte.
- Formulir publik dan keuangan: formulir yang terhubung dengan sistem lama kadang membatasi kolom input dalam byte.
Cara alat ini menghitung
Byte UTF-8 dihitung secara tepat dari code point setiap karakter. Untuk EUC-KR dan CP949, alat ini mencocokkan setiap karakter dengan tabel karakter sebenarnya dari pengodean tersebut untuk memeriksa apakah karakter itu bisa dinyatakan dalam 2 byte. Karakter yang tidak dapat dinyatakan (emoji, suku kata Hangul yang tidak ada di tabel, dan sebagainya) biasanya diganti dengan satu byte ‘?’, sehingga dihitung 1 byte, dan jumlah karakter semacam itu ditampilkan terpisah. Di mode esai, memilih ‘Byte (Hangul = 2)’ sebagai dasar hitung akan menghitung dengan cara CP949.
Tanggal acuan: 2026-09-23