ASCII dan Unicode: apa itu dan untuk apa gunanya

Komputer hanya mengerti angka, jadi setiap huruf yang kamu lihat di layar adalah sebuah kode. ASCII adalah tabel kode pertama yang menjadi standar, dan Unicode adalah yang kita pakai sekarang untuk menulis dalam bahasa apa pun. Di sini kamu melihat cara kerjanya, kode apa saja yang perlu diketahui, mengapa kadang muncul simbol aneh sebagai ganti huruf beraksen, dan cara memeriksa semuanya di tabel.

Diperbarui:

Apa itu pengodean karakter

Pengodean adalah sebuah kesepakatan: «angka 65 berarti huruf A». Saat kamu menulis teks, program menyimpan angka-angka itu; saat orang lain membukanya, programnya menerjemahkan angka itu kembali menjadi huruf dengan kesepakatan yang sama. Kalau keduanya tidak memakai tabel yang sama, teksnya jadi kacau.

Ada dua gagasan yang perlu dibedakan. Yang pertama adalah kumpulan karakter, yaitu daftar angka mana yang sesuai dengan simbol mana. Yang kedua adalah cara angka-angka itu disimpan dalam byte. Pada ASCII keduanya kebetulan sama; pada Unicode tidak, dan di situlah UTF-8 berperan.

ASCII: 128 karakter 7 bit

ASCII (singkatan dari American Standard Code for Information Interchange) distandarkan pada 1960-an. Ia memakai 7 bit, yaitu 2 pangkat 7 = 128 kode, dari 0 sampai 127. Dari jumlah itu, 33 adalah karakter kontrol (0 sampai 31 dan 127) dan 95 adalah karakter yang dapat dicetak (32 sampai 126, termasuk spasi).

ASCII tidak memuat huruf beraksen, tidak pula simbol euro: ia dirancang untuk bahasa Inggris. Itu menjelaskan mengapa kemudian diperlukan tabel lain.

Kode yang paling sering kamu temui. Spasi (32) dihitung sebagai karakter yang dapat dicetak meskipun tidak terlihat.
Karakter kontrolDesimalHeksadesimalBiner (7 bit)Fungsinya
Null (NUL)0000000000Menandai akhir string di beberapa bahasa pemrograman
Tab horizontal (TAB)9090001001Melompat ke posisi tab berikutnya
Baris baru (LF)100A0001010Turun ke baris berikutnya
Carriage return (CR)130D0001101Kembali ke awal baris
Escape (ESC)271B0011011Memulai urutan kontrol
Spasi32200100000Karakter pertama yang dapat dicetak
Hapus (DEL)1277F1111111Menghapus karakter

Hubungan yang perlu diingat

Tabelnya tidak disusun sembarangan. Dengan beberapa keteraturan, kamu bisa membaca kode dari ingatan.

Akhir baris: LF, CR, dan CRLF

Pindah baris tampak sederhana, tetapi penulisannya berbeda menurut sistem. Unix, Linux, dan macOS memakai satu karakter, LF (10). Windows memakai dua karakter berurutan, CR dan LF (13 dan 10), yang dikenal sebagai CRLF. Teleprinter lama membutuhkan dua perintah berbeda: mengembalikan kereta ke awal dan menggeser kertas satu baris.

Perbedaan itu menjadi penyebab berkas yang tampil dalam satu baris di editor sederhana, atau dengan simbol aneh di ujung tiap baris. Kalau kamu ingin tahu kode masing-masing, ketik LF atau CR di pencarian Tabel ASCII.

«ASCII yang diperluas» bukan standar

Karena satu byte punya 8 bit dan ASCII hanya memakai 7, tersisa 128 kode kosong (128 sampai 255) dan tiap produsen serta wilayah mengisinya dengan cara masing-masing. Itu dikenal sebagai «ASCII yang diperluas», tetapi tidak ada satu tabel tunggal: ada banyak, disebut code page. Dua yang paling dikenal adalah Latin-1 (ISO-8859-1), di mana é adalah kode 233, dan Windows-1252, yang mirip tetapi berbeda pada kode 128 sampai 159 (di situ ada, misalnya, euro).

Masalahnya, kode 233 berarti «é» di satu tabel dan hal lain di tabel lain. Teks yang ditulis dengan satu tabel dan dibaca dengan tabel lain menampilkan sampah. Unicode lahir untuk mengakhiri kekacauan itu.

Unicode dan UTF-8

Unicode memberi nomor unik, yang disebut code point, pada setiap karakter dari hampir semua sistem tulisan di dunia, ditambah simbol dan emoji. Kini jumlahnya lebih dari 150.000 karakter. Ditulis dengan awalan U+ dan dalam heksadesimal: «A» adalah U+0041, «é» adalah U+00E9, euro adalah U+20AC, dan emoji wajah tersenyum adalah U+1F600. 128 code point pertama persis sama dengan ASCII.

UTF-8 adalah cara yang paling banyak dipakai untuk menyimpan angka-angka itu dalam byte, dan memakai 1 sampai 4 byte tergantung karakternya. Ke-128 karakter ASCII menempati satu byte yang sama seperti dulu, jadi teks ASCII juga merupakan teks UTF-8 yang valid. Sisanya menempati lebih banyak byte.

Makin jauh dari ASCII, makin banyak byte yang dipakai karakter itu.
KarakterCode pointByte dalam UTF-8Byte (heksadesimal)
AU+0041141
éU+00E92C3 A9
ñU+00F12C3 B1
€U+20AC3E2 82 AC
😀U+1F6004F0 9F 98 80

Mengapa muncul «Ã©» sebagai ganti «é»

Ini kesalahan yang paling umum dan penjelasannya pasti. Huruf é dalam UTF-8 adalah dua byte: C3 dan A9. Kalau sebuah program mengira teksnya berpengodean Latin-1, ia membaca tiap byte sebagai satu karakter: C3 adalah «Ã» dan A9 adalah «©». Hasilnya: «Ã©». Hal yang sama terjadi pada «ñ», yang tampil sebagai «Ã±», dan pada «café», yang muncul sebagai «café».

Solusinya hampir selalu memberi tahu program untuk membuka berkas sebagai UTF-8 (di editor teks atau di pengaturan impor spreadsheet). Ketika terjadi sebaliknya, teks Latin-1 dibaca sebagai UTF-8, biasanya muncul belah ketupat dengan tanda tanya, karena byte-byte tunggal itu tidak membentuk urutan UTF-8 yang valid.

Cara memakai Tabel ASCII dan konverternya

Alat «Tabel ASCII» menampilkan 128 karakter dengan kodenya dalam desimal, heksadesimal, oktal, dan biner, serta nama karakter kontrol.

  1. Ketik di pencarian sebuah karakter, kode, atau nama karakter kontrol (misalnya A, 65, 41, atau LF) untuk menemukan barisnya.
  2. Pakai tombol saring (Kontrol, Angka, Huruf besar, Huruf kecil, Tanda) untuk melihat satu kelompok saja.
  3. Untuk mengubah, ketik teks di «Teks» dan pilih formatnya (desimal, heksadesimal, oktal, atau biner): kodenya muncul di bawah. «Halo» menghasilkan 72 97 108 111 dalam desimal dan 48 61 6C 6F dalam heksadesimal.
  4. Kamu juga bisa sebaliknya: tempelkan kode yang dipisahkan spasi atau koma di «Kode» dan teksnya tersusun. Dalam heksadesimal, awalan seperti 0x41 diterima.

Kalau teks memuat karakter non-ASCII, seperti é, alat akan memberi tahu dan menampilkan kode Unicode-nya. Untuk melihat byte sebenarnya dalam UTF-8, pakai «Teks ke biner»: é menghasilkan 11000011 10101001, dua byte 8 bit. Batasannya: tabel hanya menampilkan ASCII standar, bukan yang diperluas, dan semuanya dihitung di browser kamu tanpa mengirim teks ke server mana pun.

Pertanyaan yang sering diajukan

Berapa karakter yang dimiliki ASCII?

128, dengan kode 0 sampai 127 dan masing-masing 7 bit. Di antaranya, 33 adalah karakter kontrol dan 95 dapat dicetak, termasuk spasi.

Apa kode ASCII huruf A dan a?

«A» adalah 65 (41 dalam heksadesimal, 01000001 dalam biner) dan «a» adalah 97 (61 dalam heksadesimal, 01100001 dalam biner). Selisihnya selalu 32.

Apa perbedaan ASCII dan Unicode?

ASCII punya 128 karakter yang dirancang untuk bahasa Inggris. Unicode punya lebih dari 150.000, dari hampir semua bahasa dan emoji, dan 128 yang pertama sama dengan ASCII.

Apa itu UTF-8?

Cara yang paling banyak dipakai untuk menyimpan teks Unicode dalam byte. Ia memakai 1 sampai 4 byte per karakter: karakter ASCII memakai satu, huruf é memakai dua, dan emoji empat.

Mengapa teksku menampilkan «Ã©» atau «Ã±»?

Karena teks yang disimpan dalam UTF-8 sedang dibaca sebagai Latin-1. Buka berkasnya dengan menentukan pengodean UTF-8 dan masalahnya selesai.