Kode karakter — ASCII dan Unicode
| English | Bahasa Indonesia |
|---|---|
| Unicode/ˈjuːnɪkəʊd/ | Unicode |
| character set/ˈkærɪktə set/ | set karakter |
| ASCII/ˈæski/ | ASCII |
| encoding/enˈkəʊdɪŋ/ | pengkodean |
| code point/kəʊd pɔɪnt/ | titik kode |
| UTF-8/ˌjuː tiː ˈef eɪt/ | UTF-8 |
Email yang tiba sebagai kode acak
- Sepanjang dekade 1990-an, pesan yang diketik di Warsawa dan dibaca di Tokyo sering tiba seperti tumpukan omong kosong. Kedua komputer menyimpan delapan bit per karakter. Mereka sekadar tidak sepakat tentang makna 128 pola atas tersebut.
- Kode halaman Polandia menempatkan huruf-huruf Polandia di sana. Jepang menempatkannya dengan karakternya sendiri. Tidak ada yang rusak selama transmisi: byte-byte itu tiba utuh dan dibaca berdasarkan tabel yang berbeda.
- Solusinya adalah berhenti menggunakan tabel per negara dan memberikan setiap karakter dalam setiap aksara satu nomor, selamanya. Itulah Unicode, dan itulah alasan emoji yang Anda kirim tiba sebagai gambar yang sama.
- Pelajaran ini menjelaskan bagaimana teks berubah menjadi angka: himpunan karakter, ASCII, Unicode, dan pengkodean yang menyimpannya.
Himpunan karakter memberi setiap karakter sebuah nomor
- Komputer tidak menyimpan huruf, hanya angka. Himpunan karakter adalah kumpulan karakter yang dapat direpresentasikan komputer, masing-masing dengan kode biner sendiri.
- Nomor untuk satu karakter disebut titik kode.
Aadalah 65,aadalah 97,0digit adalah 48. - Titik kode bukan berarti karakter; ia adalah label yang disepakati. Teks dapat dibaca hanya karena kedua mesin menggunakan himpunan karakter yang sama.

Huruf adalah gambarnya; byte adalah angkanya
Sebuah karakter disimpan sebagai angka
Setiap karakter memiliki kode angka — 'A' adalah 65. Balik bit untuk melihat kode tersebut dalam biner dan heksadesimal, persis seperti cara komputer menyimpannya.
Himpunan karakter seperti ASCII mendefinisikan:
Himpunan karakter memetakan setiap karakter ke angka (titik kodenya), yang merupakan apa yang sebenarnya disimpan komputer.
ASCII
- ASCII (American Standard Code for Information Interchange) menggunakan 7 bit, memberikan $2^7 = 128$ titik kode: huruf Latin dasar, digit, tanda baca, dan 32 kode kontrol seperti carriage return.
- Extended ASCII (ASCII diperluas) menggunakan 8 bit, memberikan 256 titik kode. 128 bawah identik dengan ASCII; 128 atas bervariasi menurut wilayah, inilah yang membuat email itu rusak.
- Anda tidak pernah diminta menghafal kode, tetapi Anda diminta memberikan jumlah: 7 bit, 128; 8 bit, 256.
Berapa banyak titik kode berbeda yang dimiliki ASCII 7-bit?
7 bit memberikan $2^7 = 128$ titik kode.
Berapa banyak titik kode berbeda yang dimiliki ASCII ekstensi?
Delapan bit memberikan 2^8 = 256. 128 bawah cocok dengan ASCII 7-bit biasa; 128 atas bervariasi berdasarkan wilayah.
Unicode
- Unicode adalah himpunan karakter universal: satu kode titik untuk hampir setiap karakter dalam setiap aksara yang hidup atau punah, serta simbol dan emoji, lebih dari 149,000 di antaranya.
- Titik kode terpisah dari cara penyimpanannya. Sebuah pengkodean (encoding) mengubah titik kode menjadi byte.
- UTF-8 UTF-8 menggunakan 1 untuk 4 byte per karakter dan kompatibel ASCII: 128 kode pertama adalah satu byte, identik dengan ASCII. UTF-16 menggunakan 2 atau 4 byte; UTF-32 menggunakan tetap 4.
Manakah yang benar tentang UTF-8?
UTF-8 adalah pengkodean Unicode dengan panjang variabel (1–4 byte); 128 kode pertama sesuai dengan ASCII, sehingga teks ASCII biasa valid sebagai UTF-8.
Apa hubungan antara Unicode dan UTF-8?
Himpunan ini menetapkan angka; pengkodean menentukan berapa banyak byte yang dibutuhkan setiap angka. UTF-16 dan UTF-32 adalah pengkodean lain dari himpunan yang sama.
Contoh terpecahkan: bandingkan ASCII dan Unicode
- Sebutkan satu keuntungan dan satu kerugian menggunakan Unicode alih-alih ASCII. [2]
- Keuntungan: Unicode merepresentasikan jauh lebih banyak karakter, sehingga teks dalam aksara apa pun, Mandarin, Arab, Yunani, dan emoji dapat disimpan, dan satu dokumen dapat mencampur bahasa; file dapat dipindahkan karena tidak ada kode halaman per negara yang perlu diperdebatkan.
- Kerugian: untuk teks berbahasa Inggris saja, file Unicode biasanya lebih besar, karena satu karakter mungkin memakan lebih dari satu byte.
- Kedua bagian diperlukan. "Memiliki lebih banyak karakter" saja adalah satu dari dua poin.
Keuntungan utama Unicode dibanding ASCII adalah bahwa ia:
Unicode mencakup hampir semua sistem penulisan plus simbol dan emoji — jauh melampaui set bahasa Inggris dasar ASCII.
Untuk teks hanya bahasa Inggris, file Unicode biasanya lebih besar daripada teks yang sama dalam ASCII.
Pengkodean Unicode dapat menggunakan lebih banyak byte per karakter, sehingga teks bahasa Inggris biasa biasanya lebih besar daripada dalam ASCII 7-bit — kompromi untuk cakupan universal.
Manakah keuntungan Unicode dibanding ASCII? Pilih semua yang berlaku.
Ukuran adalah kompromi, bukan manfaat: untuk bahasa Inggris biasa, file Unicode biasanya lebih besar.
Contoh terpecahkan: ukuran file teks
- Pesan berisi 500 karakter disimpan dalam Extended ASCII. Berapa besar file tersebut dalam byte?
- Extended ASCII menggunakan 8 bit, satu byte, per karakter, jadi $500 \times 1 = 500$ byte, atau $500 \times 8 = 4000$ bit.
- Pesan yang sama dalam UTF-32? Empat byte per karakter, jadi 2000 byte.
- Tunjukkan bit-per-karakter, kalikan, lalu konversi sekali. Mencampur bit dan byte di tengah jalan adalah penyebab umum hilangnya poin.
Pesan 500 karakter disimpan dalam ASCII diperluas. Berapa banyak byte yang dibutuhkan (abaikan header apa pun)?
Delapan bit, satu byte, per karakter: 500 x 1 = 500 byte, atau 4000 bit. Dalam UTF-32, teks yang sama membutuhkan 2000 byte.
Membaca karakter dalam biner dan heksadesimal
- Karena titik kode hanyalah angka, ia dikonversi seperti angka lainnya.
Aadalah 65, yang merupakan0100 0001dalam biner dan41dalam heksadesimal. - Dua pola berguna: digit
0hingga9dimulai dari 48, dan huruf kecil bernilai 32 lebih tinggi dari huruf kapital, jadia(97) adalahA(65) ditambah 32. Perbedaan itu adalah satu bit. - Soal yang memberikan
A= 65 dan memintaEmenginginkan $65 + 4 = 69$, bukan tabel hafalan.
Kode ASCII untuk A adalah 65. Apa kode ASCII untuk E?
Huruf-hurufnya berurutan, jadi E ada empat setelah A. Tidak ada yang perlu dihafal selain satu nilai jangkar.
⟦⟧ Nilai yang sering terlewat
- ASCII adalah 7 bit dan 128 titik kode; Extended ASCII adalah 8 bit dan 256. Jangan menulis 8 bit untuk ASCII biasa.
- Unicode adalah himpunan karakter; UTF-8 adalah pengkodean darinya. Keduanya bukan dua himpunan yang saling bersaing.
- UTF-8 bersifat panjang variabel, 1 hingga 4 byte, bukan selalu satu byte dan bukan selalu empat.
- Kerugian Unicode adalah ukuran file untuk bahasa Inggris biasa, bukan "lebih lambat" atau "sulit dibaca".
Anda telah memahaminya
- himpunan karakter memberi setiap karakter titik kode; teks adalah angka onClick kesepakatan tentang cara membacanya
- ASCII: 7 bit, 128 titik kode, bahasa Inggris saja · Extended ASCII: 8 bit, 256, separuh atas bervariasi menurut wilayah
- Unicode: satu titik kode untuk setiap aksara dan emoji, disimpan oleh pengkodean; UTF-8 adalah 1 hingga 4 byte dan kompatibel ASCII
- Unicode menambah karakter, portabilitas, dan bahasa campuran; namun meningkatkan ukuran file pada teks bahasa Inggris biasa