Data di Dalam Komputer · Pelajaran 8 dari 9
Teks: ASCII dan Unicode
8 menit baca · BelajarCode
Komputer hanya menyimpan angka, jadi setiap karakter diberi nomor. Daftar nomor yang paling awal dipakai secara luas adalah ASCII, yang memuat 128 karakter: huruf Latin besar dan kecil, angka, tanda baca, dan beberapa karakter kendali.
| Karakter | Kode desimal | Kode biner |
|---|---|---|
| Spasi | 32 | 00100000 |
| 0 | 48 | 00110000 |
| A | 65 | 01000001 |
| B | 66 | 01000010 |
| a | 97 | 01100001 |
Perhatikan bahwa huruf kecil selalu 32 lebih besar dari huruf besarnya. Di Python, ord() memberikan kode sebuah karakter dan chr() mengubah kode menjadi karakter.
1print(ord("A"), ord("a"), ord("0"))2print(chr(66), chr(98))3print(chr(ord("g") - 32))65 97 48 B b G
Unicode untuk seluruh dunia
128 karakter tidak cukup untuk aksara Jawa, huruf Arab, aksara Tionghoa, atau emoji. Karena itu dibuat Unicode, yang memberi nomor unik untuk lebih dari seratus ribu karakter dari hampir semua sistem tulisan di dunia. Nomor Unicode untuk huruf Latin dasar sama dengan ASCII.
Nomor Unicode disimpan dengan cara tertentu yang disebut pengodean. Yang paling banyak dipakai di web adalah UTF-8, yang memakai 1 sampai 4 byte per karakter.
1for karakter in ["A", "é", "€", "😀"]:2 data = karakter.encode("utf-8")3 print(karakter, ord(karakter), len(data), "byte")A 65 1 byte é 233 2 byte € 8364 3 byte 😀 128512 4 byte
Kenapa ada teks yang jadi kotak atau tanda tanya?
Jika program membaca teks dengan pengodean yang salah, atau font tidak punya gambar untuk karakter tertentu, teks bisa tampil sebagai kotak kosong atau tanda tanya. Itulah sebabnya pengodean UTF-8 dijadikan standar bersama.
Cek pemahaman
Jika ord("C") adalah 67, berapa ord("c")?
Latihan
Kode di balik sebuah kata
Buat program yang menampilkan setiap huruf dari kata "HALO" beserta kode ASCII-nya dalam desimal dan biner 8 digit.
Pembahasan
1kata = "HALO"2for huruf in kata:3 kode = ord(huruf)4 print(huruf, kode, format(kode, "08b"))H 72 01001000 A 65 01000001 L 76 01001100 O 79 01001111
Kata "HALO" disimpan sebagai 4 byte, satu byte untuk setiap huruf.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.