Apa itu Unicode?

Unicode adalah standar pengkodean karakter universal yang dikelola oleh Unicode Consortium, sebuah organisasi standar yang didirikan pada tahun 1991 untuk internasionalisasi perangkat lunak dan layanan. Secara resmi disebut sebagai *Unicode Standard*, standar ini menyediakan dasar untuk “pemrosesan, penyimpanan, dan pertukaran data teks dalam segala bahasa di semua perangkat lunak dan protokol teknologi informasi modern.” Unicode kini mendukung semua sistem tulisan di dunia, baik yang modern maupun kuno, menurut konsorsium tersebut.

Edisi terbaru dari Unicode Standard adalah versi 15.0.0, yang mencakup pengkodean untuk 149.186 karakter. Standar ini mendasarkan pengkodeannya pada skrip bahasa — karakter yang digunakan untuk bahasa tulis — daripada pada bahasa itu sendiri. Dengan cara ini, beberapa bahasa dapat menggunakan set pengkodean yang sama, yang mengurangi kebutuhan untuk pengkodean yang lebih banyak. Sebagai contoh, pengkodean skrip Latin dalam standar ini mendukung bahasa Inggris, Jerman, Denmark, Rumania, Bosnia, Portugis, Albania, dan ratusan bahasa lainnya.

Selain pengkodean karakter dalam standar, Unicode Consortium juga menyediakan deskripsi dan data lainnya mengenai bagaimana karakter berfungsi, beserta detail tentang topik-topik seperti berikut:

  • Pembentukan kata dan pemisahan baris.
  • Penyortiran teks dalam berbagai bahasa.
  • Format angka, tanggal, dan waktu.
  • Menampilkan bahasa yang ditulis dari kanan ke kiri.
  • Menangani masalah keamanan terkait karakter “mirip” (look-alike characters).

*Unicode Standard* mendefinisikan pendekatan yang konsisten untuk pengkodean teks multibahasa yang memungkinkan interoperabilitas antar sistem yang berbeda. Dengan cara ini, Unicode memungkinkan pertukaran informasi internasional dengan cara yang konsisten dan efisien, sekaligus menyediakan dasar untuk perangkat lunak dan layanan global. Baik HTML maupun XML telah mengadopsi Unicode sebagai sistem pengkodean default mereka, demikian juga sebagian besar sistem operasi, bahasa pemrograman, dan protokol internet modern.

Sejarah Perkembangan Unicode

Sebelum Unicode diadopsi secara universal, lingkungan komputasi yang berbeda mengandalkan sistem mereka sendiri untuk mengkodekan karakter teks. Banyak dari mereka dimulai dengan *American Standard Code for Information Interchange* (ASCII), baik mengikuti standar ini atau mengembangkannya untuk mendukung karakter tambahan. Namun, ASCII umumnya terbatas pada bahasa Inggris atau bahasa-bahasa yang menggunakan alfabet serupa, yang mendorong pengembangan sistem pengkodean lain, yang tidak satu pun dapat memenuhi kebutuhan semua bahasa di dunia.

Tak lama kemudian, ada ratusan standar pengkodean individu yang digunakan, banyak di antaranya bertentangan satu sama lain pada level karakter. Sebagai contoh, karakter yang sama mungkin dikodekan dengan cara yang berbeda. Jika sebuah dokumen dikodekan menurut satu sistem, mungkin sulit atau bahkan tidak mungkin untuk membacanya dalam lingkungan yang berbasis sistem lain. Masalah-masalah seperti ini semakin nyata seiring dengan meningkatnya popularitas internet dan semakin banyaknya data yang dipertukarkan di seluruh dunia.

Unicode Standard dimulai dengan set karakter ASCII dan secara bertahap berkembang untuk mencakup lebih banyak karakter dan kemudian lebih banyak bahasa. Standar ini memberikan nama dan nilai numerik untuk setiap karakter. Nilai numerik ini disebut code point karakter dan diekspresikan dalam bentuk heksadesimal yang diawali dengan prefix U+. Sebagai contoh, code point untuk huruf kapital Latin A adalah U+0041.

Unicode memperlakukan karakter alfabet, ideografik, dan simbol lainnya dengan cara yang sama, yang membantu menyederhanakan pendekatan keseluruhan untuk pengkodean karakter. Pada saat yang sama, Unicode mempertimbangkan kasus karakter, arah, dan sifat alfabetiknya, yang mendefinisikan identitas dan perilakunya.

Unicode Standard merepresentasikan karakter dalam salah satu dari tiga bentuk pengkodean:

  • Bentuk 8-bit (UTF-8). Bentuk panjang variabel di mana setiap karakter terdiri dari 1 hingga 4 byte. Byte pertama menunjukkan jumlah byte yang digunakan untuk karakter tersebut. Byte pertama dari karakter 1 byte dimulai dengan 0. Karakter 2 byte dimulai dengan 110, karakter 3 byte dimulai dengan 1110, dan karakter 4 byte dimulai dengan 11110. UTF-8 mempertahankan ASCII dalam bentuk aslinya, memberikan pemetaan 1:1 yang memudahkan migrasi. Bentuk ini juga yang paling umum digunakan di seluruh web.
  • Bentuk 16-bit (UTF-16). Bentuk panjang variabel di mana setiap karakter terdiri dari 2 atau 4 byte. *Unicode Standard* awalnya juga berbasis format 16-bit. Dalam UTF-16, karakter yang memerlukan 4 byte, seperti emoji dan emotikon, dianggap sebagai karakter pelengkap. Karakter pelengkap menggunakan dua unit 16-bit, yang disebut pasangan pengganti, yang totalnya menjadi 4 byte per karakter. Bentuk 16-bit ini dapat menambah overhead implementasi karena variabilitas antara karakter 16-bit dan 32-bit.
  • Bentuk 32-bit (UTF-32). Bentuk panjang tetap di mana setiap karakter terdiri dari 4 byte. Bentuk ini dapat mengurangi overhead implementasi karena menyederhanakan model pemrograman. Namun, ia memaksa penggunaan 4 byte untuk setiap karakter, tidak peduli seberapa sedikit byte yang dibutuhkan, sehingga meningkatkan dampaknya pada sumber daya penyimpanan.

Bentuk 16-bit dan 32-bit keduanya mendukung serialisasi byte little-endian, di mana byte yang paling tidak signifikan disimpan terlebih dahulu, dan serialisasi byte big-endian, di mana byte yang paling signifikan disimpan terlebih dahulu. Selain itu, ketiga bentuk tersebut mendukung seluruh rentang *Unicode code points*, dari U+0000 hingga U+10FFFF, yang totalnya mencapai 1.114.112 kemungkinan *code points*. Namun, sebagian besar karakter umum dalam bahasa utama dunia dikodekan dalam 65.536 *code points* pertama, yang dikenal sebagai *Basic Multilingual Plane* atau BMP.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *