Newest Post

// Posted by :cobabikindrunk // On :Minggu, 02 Oktober 2016

Pengertian Sistem Pengkodean Karakter

Dalam penyaluran data antar komputer, data yang disalurkan harus dimengerti oleh masing-masing perangkat baik oleh pengirim maupun penerima. Untuk itu digunakan sistem sandi sesuai standard yang disebut dengan sistem pengkodean data. Suatu karakter didefinisikan sebagai huruf, angka, tanda aritmetik dan tanda khusus lainya.
Karakter-karakter data yang akan dikirim dari satu titik ke titik lain, tidak dapat dikirimkan secara langsung. Sebelum dikirim, karakter-karakter data tersebut harus dikodekan terlebih dahulu dengan kode-kode yang dikenal oleh setiap terminal. Tujuan dari sebuah pengkodean adalah menjadikan tiap karakter dalam sebuah informasi digital yaitu ke dalam bentuk biner untuk dapat ditransmisikan.
Dalam penyaluran data antar komputer, data yang disalurkan harus dimengerti oleh masing-masing perangkat baik oleh pengirim maupun penerima. Untuk itu digunakan system sandi sesuai standard. Suatu karakter didefinisikan sebagai huruf, angka, tanda aritmetik dan tanda khusus lainya. Coding adalah penggambaran dari satu set symbol menjadi set symbol yang lain.

Macam-macam Kode


ASCII (American Standard Code for Information Interchange)

Kode Standar Amerika untuk Pertukaran Informasi atau ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter "|". Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 7 bit. Namun, ASCII disimpan sebagai sandi 8 bit dengan menambakan satu angka 0 sebagai bit significant paling tinggi. Bit tambahan ini sering digunakan untuk uji prioritas. Karakter control pada ASCII dibedakan menjadi 5 kelompok sesuai dengan penggunaan yaitu berturut-turut meliputi logical communication, Device control, Information separator, Code extention, dan physical communication. Code ASCII ini banyak dijumpai pada papan ketik (keyboard) computer atau instrument-instrument digital.
Jumlah kode ASCII adalah 255 kode. Kode ASCII 0..127 merupakan kode ASCII untuk manipulasi teks; sedangkan kode ASCII 128..255 merupakan kode ASCII untuk manipulasi grafik. Kode ASCII sendiri dapat dikelompokkan lagi kedalam beberapa bagian:
·         Kode yang tidak terlihat simbolnya seperti Kode 10(Line Feed), 13(Carriage Return), 8(Tab), 32(Space)
·         Kode yang terlihat simbolnya seperti abjad (A..Z), numerik (0..9), karakter khusus (~!@#$%^&*()_+?:”{})
·         Kode yang tidak ada di keyboard namun dapat ditampilkan. Kode ini umumnya untuk kode-kode grafik.
Dalam pengkodean kode ASCII memanfaatkan 8 bit. Pada saat ini kode ASCII telah tergantikan oleh kode UNICODE (Universal Code). UNICODE dalam pengkodeannya memanfaatkan 16 bit sehingga memungkinkan untuk menyimpan kode-kode lainnya seperti kode bahasa Jepang, Cina, Thailand dan sebagainya.
Pada papan keyboard, aktifkan numlock, tekan tombol ALT secara bersamaan dengan kode karakter maka akan dihasilkan karakter tertentu. Misalnya: ALT + 44 maka akan muncul karakter koma (,). Mengetahui kode-kode ASCII sangat bermanfaat misalnya untuk membuat karakter-karakter tertentu yang tidak ada di keyboard.

Tabel Karakter ASCII

Tabel berikut berisi karakter-karakter ASCII . Dalam sistem operasi Windows dan MS-DOS, pengguna dapat menggunakan karakter ASCII dengan menekan tombol Alt+[nomor nilai ANSI (desimal)]. Sebagai contoh, tekan kombinasi tombol Alt+87 untuk karakter huruf latin "W" kapital.



BCD (Binary Coded Decimal)

BCD adalah sistem pengkodean bilangan desimal yang metodenya mirip dengan bilangan biner biasa; hanya saja dalam proses konversi, setiap simbol dari bilangan desimal dikonversi satu per satu, bukan secara keseluruhan seperti konversi bilangan desimal ke biner biasa. Hal ini lebih bertujuan untuk “menyeimbangkan” antara kurang fasihnya manusia pada umumnya untuk melakukan proses konversi dari desimal ke biner -dan- keterbatasan komputer yang hanya bisa mengolah bilangan biner. Untuk lebih jelas, dapat dilihat pada contoh berikut :
Misalkan bilangan yang ingin dikonversi adalah 17010.
dapat dilihat bahwa bilangan biner dari :
110—-> 00012
710—-> 01112
010—-> 00002
Tetapi, berhubung hasil yang diinginkan adalah bilangan BCD, maka basis bilangannya tinggal ditulis sebagai berikut :
110—-> 0001BCD
710—-> 0111BCD
010—-> 0000BCD
maka, nilai BCD dari 17010 adalah 0001 0111 0000BCD.
Harap diperhatikan bahwa setiap simbol dari bilangan desimal dikonversi menjadi 4 bit bilangan BCD.



EBCDIC

EBCDIC (Inggris: Extended Binary Coded Decimal Interchange Code) adalah kode 8 - bit untuk huruf yang dipakai pada sistem operasi komputer merk IBM, seperti z/OS, OS/390, VM, VSE, OS/400, dan i5/OS. Kode EBCDIC ini juga dipakai untuk beberapa jenis komputer lain seperti Fujitsu-Siemens BS2000/OSD, HP MPE/iX, dan Unisys MCP. Kode ini merupakan pengembangan dari kode 6-bit yang dipakai untuk kartu berlubang (punched card) pada komputer IBM antara akhir tahun 1950an dan awal tahun 1960an.

Variasi dari kode EBCDIC ini disebut CCSID 500 yang ditampilkan pada tabel di atas ini dalam format bilangan komputer hexadesimal. Kode 00 sampai 3F dipakai untuk huruf kendali, kode 40 untuk spasi, dll.
  

SBCDIC ( Standard Binary Coded Decimal Intercharge code )

SBCDIC (Standart Binary Coded Decimal Interchange Code) merupakan kode biner yang dikembangkan dari kode BCD.  SBCDIC menggunakan kombinasi 6bitsehingga lebih banyak kombinasi yang digahasilkan yaitu 64 kombinasi kode. Ada sepuluh kode untuk digit angka, 26 kode untuk digit huruf alfabet, sisanya digunakan untuk karakter khusus tertentu. SBCDIC digunakan pada komputer generasi kedua.
Kode ini disusun dari kombinasi 6 buah digit binary di tambah satu digit untuk parity check.
1.      Mulai digunakan pada komputer generasi kedua.
2.      Maksimal terbentuk 2 pangkat 6 sama dengan 64 kombinasi symbol
3.      Menyatakan karakteristik A – S, 0 – 9 dan spesial karakter tertentu. Dibagi atas dua zona yaiut : Alpha bit position, dan Numeric Bot Position

Mojibake (文字化け?)

Mojibake (文字化け?) adalah tampilan dari karakter komputer yang salah dan tidak dapat dibaca ketika perangkat lunak gagal menampilkan teks secara benar sesuai dengan pengkodean karakter untuk karakter tersebut.
Sebagai contoh, teks bahasa Jepang yang dimaksudkan penulisnya untuk dibaca sebagai 文字化け akan ditampilkan salah sebagai "æ–‡å—化け" pada sistem operasi yang hanya disetel untuk menampilkan karakter dalam enkode Windows-1252 atau ISO-8859-1 (umumnya disebut Western).
Arti harfiah mojibake adalah karakter hantu, berasal dari gabungan kata moji (文字?) yang berarti karakter, ditambah bake (化け?, hantu) bentuk nomina dari verba bakeru (化ける?, berubah/mengubah bentuk ke dalam bentuk/penampilan lain).
Sewaktu mengembangkan Aldus PageMaker versi bahasa Jepang, pengembang perangkat lunak bernama Yoshiyuki Kubo menemui kesalahan dalam tampilan karakter yang dijelaskannya sebagai mojibake. Istilah tersebut kemudian melekat dan meluas, dimulai dari kalangan pengembang/pemakai Macintosh.
Penyebab :
Mojibake sering disebabkan ketika pengkodean karakter tidak dinyatakan dengan benar di dalam dokumen, atau ketika dokumen dipindahkan dari sistem yang dipasang dengan pengkodean karakter berbeda. Tampilan karakter yang salah terjadi ketika sistem aksara atau pengkodean karakter salah tag atau "asing" untuk sistem komputer pengguna. Bila komputer itu tidak memiliki perangkat lunak yang dibutuhkan untuk memproses karakter bahasa asing, maka komputer tersebut akan mencoba memprosesnya memakai pengkodean karakter yang telah terpasang. Akibatnya, tanda tanya, kotak, atau lambang-lambang aneh ditampilkan di layar. Masalah mojibake juga dapat terjadi pada pesan dalam satu bahasa, namun dikirim dengan pengkodean karakter berbeda dari pengkodean karakter komputer penerima. Masalah ini sering dijumpai di antara pengguna komputer berbahasa Jepang yang memiliki sejarah sistem operasi dalam beberapa pengkodean karakter.

Penjelajah web kemungkinan tidak dapat membedakan laman web yang di-enkode dengan EUC-JP dan laman web berikutnya yang di-enkode dengan Shift-JIS, kecuali bila skema pengkodean dinyatakan secara eksplisit dalam HTTP header yang dikirim bersama dokumen, atau dalam meta tag HTML yang dipakai untuk mensubstitusi HTTP header yang hilang bila peladen tidak dikonfigurasi untuk mengirimkan HTTP header yang layak. Metode heuristik dapat diterapkan untuk menerka set karakter, namun metode ini tidak selalu berhasil.
Contoh :






6. Shift JIS


Shift JIS (sering ditulis SJIS, MS Kanji, atau dalam istilah MIME, Shift_JIS) adalah salah satu pengkodean karakter untuk bahasa Jepang yang menggabungkan set karakter JIS (Standar Industri Jepang) nomor JIS X 0201:1997 (karakter bita tunggal) dan JIS X 0208:1997 (karakter bita ganda). Pengembangnya adalah perusahaan Jepang ASCII Corporation dan Microsoft, dan dijadikan standar JIS X 0208 pada Lampiran 1.

Susunan karakter bita ganda asal JIS X 0208 "digeser" (shifted) untuk memberi tempat bagi karakter katakana lebar setengah asal JIS X 0201. Hal tersebut dilakukan atas pertimbangan kompatibilitas. Sistem yang baru diharapkan bisa membaca berkas dari sistem komputer lama yang memakai set karakter JIS X 0201 atau katakana lebar setengah.

Karakter bita tunggal dari 0xA1 hingga 0xDF setara dengan aksara katakana lebar separuh dalam JIS X 0201. Sementara itu, karakter bita tunggal dari 0x00 hingga 0x7F sama dengan pengkodean ASCII, kecuali 0x5C (garis miring terbalik) yang diubah menjadi simbol untuk mata uang yen, dan 0x7E (tilde) yang diubah menjadi garis atas.

Shift JIS memerlukan media transmisi 8-bit. Shift JIS dapat menampilkan aksara katakana lebar separuh, sehingga semua karakter JIS X 0201 kompatibel dengan Shift JIS. Set aksara yang dimiliki Shift JIS terdiri dari: kanji dan hiragana lebar penuh (16 bit), katakana lebar setengah (8 bit) dan lebar penuh, karakter ASCII (8 bit), huruf Latin lebar penuh (16 bit), huruf Sirilik, huruf Yunani, dan simbol-simbol. Huruf latin lebar penuh digunakan sewaktu menulis aksara kanji secara vertikal, dengan maksud penyeragaman lebar huruf latin dengan lebar aksara kanji.

Walaupun demikian, hanya bita pertama Shift JIS yang merupakan bita tinggi ASCII, sedangkan bita kedua bisa berisi ASCII bita tinggi atau rendah. Akibatnya sering terjadi masalah dalam pembuatan program deteksi Shift JIS. Sementara itu, set karakter EUC-JP yang menjadi pesaing Shift JIS tidak memiliki katakana lebar setengah. Dalam EUC-JP, semua bita tinggi ASCII merupakan bagian dari karakter bita ganda, dan semua bita rendah ASCII merupakan bagian dari karakter bita tunggal.



7. String

String dalam pemrograman komputer adalah sebuah deret simbol. Tipe data string adalah tipe data yang digunakan untuk menyimpan barisan karakter.
Tipe data string dalam beberapa bahasa pemrograman

Bahasa Pascal

Dalam bahasa Pascal, tipe data string dituliskan sebagai string. Pada kompilator Pascal lama, string terpanjang yang dapat dibuat terdiri dari 255 karakter. Hal ini terjadi karena Pascal menggunakan 1 byte data untuk menyimpan panjang efektif string.

Contoh kode Pascal yang menggunakan tipe data string:

Pada kompilator Pascal yang lebih baru dikenal pula tipe data ANSI-string yang dapat menyimpan karakter lebih banyak.

Bahasa C

Dalam bahasa C tidak ada tipe data khusus untuk menyimpan string. String biasanya disimpan sebagai larik dari karakter-karakter. Berbeda dengan bahasa Pascal, string pada bahasa C merupakan sebuah null-terminated string, sehingga kapasitasnya hanya dibatasi oleh kapasitas memori komputer. Seperti pada tipe data larik pada bahasa C, pengguna dapat memberikan batas maksimum karakter yang dapat ditampung.


Contoh kode C yang menggunakan tipe data string:

Bahasa C++

Bahasa C++ merupakan turunan dari bahasa C sehingga representasi string sebagai larik karakter masih berlaku. Namun bahasa C++ juga menyediakan tipe data string yang terdapat dalam C++ Standard Template Library (STL).

Contoh kode C++ yang menggunakan tipe data string pada STL:

Bahasa PHP

Di PHP String adalah kumpulan dari karakter, bilangan, spasi, dan yang lainnya yang berada dalam tanda petik. Di bawah ini semuanya adalah string :

'9 Januari 2009 '
'1.000.000'
"satu juta"
'Belajar PHP'
Contoh Penggunaan String di PHP:

Unicode

Unicode adalah suatu standar industri yang dirancang untuk mengizinkan teks dan simbol dari semua sistem tulisan di dunia untuk ditampilkan dan dimanipulasi secara konsisten oleh komputer. Dikembangkan secara tandem dengan standar Universal Character Set dan dipublikasikan dalam bentuk buku The Unicode Standard. Unicode mengandung suatu kumpulan karakter, suatu metodologi pengkodean dan kumpulan standar penyandian karakter, suatu kumpulan bagan kode untuk referensi visual, deskripsi sifat karakter seperti huruf besar dan huruf kecil, suatu kumpulan data referensi berkas komputer, serta aturan normalisasi, dekomposisi, pembandingan (collation), serta penggambaran (rendering).

Unicode Consortium, suatu organisasi nirlaba yang mengkoordinasikan pengembangan Unicode memiliki tujuan ambisius untuk dapat, pada akhirnya, menggantikan skema pengkodean karakter yang ada dengan Unicode dan skema Unicode Transformation Format (UTF) nya, karena banyak skema yang ada sekarang memiliki keterbatasan ukuran dan lingkup dan takserasi dengan lingkungan multibahasa. Kesuksesan Unicode menyatukan set karakter telah membawa pada penggunaannya yang luas dan pradominan dalam internasionalisasi dan lokalisasi perangkat lunak komputer. Standar ini telah diterapkan pada teknologi-teknologi terkini, termasuk XML, bahasa pemrograman Java, dan sistem operasi modern.
Aksara Nusantara dalam Unicode
Aksara-aksara Nusantara yang telah memiliki bakuan Unicode adalah:
·         Aksara Bugis (lontara), Unicode Versi 4.1
·         Aksara Bali, Unicode Versi 5.0
·         Aksara Sunda Kaganga, Unicode Versi 5.1
·         Rejang, Unicode Versi 5.1
·         Aksara Jawa (modern dan kawi), Unicode Versi 5.2
·         Aksara Batak, Unicode Versi 6.0
Tabel Unicode pada Basic Multilingual Plane (BMP)
Unicode dan huruf komputer
Fon (huruf komputer) bebas maupun berbayar yang berdasarkan Unicode telah tersedia bebas, sejak fon TrueType dan OpenType mendukung Unicode. Informasi setiap bentuk huruf disimpan dengan menggunakan substitusi karakter universal.

Pengodean karakter


Penyandiaksaraan atau pengodean karakter (bahasa Inggris: character encoding), kadang disebut penyandian karakter atau set karakter, terdiri sandi atau kode yang memasangkan serangkaian aksara berurutan dari suatu kumpulan dengan sesuatu yang lain, seperti urutan bilangan asli (natural numbers), perlapanan (octet) atau denyut listrik, untuk mempermudah penyimpanan naskah pada komputer dan pengalirhantaran naskah melalui jaringan telekomunikasi. Misalnya sandi Morse, yang menyandikan huruf alfabet Latin ke dalam rangkaian tekanan panjang dan pendek dari kunci telegraf; serta ASCII, yang menyandikan huruf, bilangan, dan simbol-simbol lain, sebagai bilangan bulat dan versi perduaan (binary) 7-bita dari bilangan bulat tersebut; umumnya ditambahkan nol-bita untuk mempermudah penyimpanan dalam bita perlapanan.

Pada masa-masa awal komputer, pengenalan penyandiaksaraan seperti ASCII (1963) dan EBCDIC (1964) mengawali proses pembakuan. Keterbatasan kumpulan tersebut mulai tampak, dan beberapa metode seterjadinya (ad hoc) dikembangkan untuk memperluaskannya. Kebutuhan untuk mendukung berbagai macam tata tulisan, termasuk rumpun aksara CJK dari tulisan Asia Timur, membutuhkan dukungan untuk jauh lebih banyak aksara dan menuntut pendekatan yang tersusun rapi untuk penyandiaksaraan, dan bukan pendekatan seterjadinya seperti sebelumnya.

Acuan penyandiaksaraan
Unicode dan bakuan serupa lainnya, Universal Character Set (ISO/IEC 10646), bersama-sama merumuskan penyandiaksaraan seragam. Ada empat tingkat acuan penyandiaksaraan Unicode[1]:

Khasanah Aksara Mujarad (Abstract Character Repertoire)
Serangkaian Aksara Tersandikan (Coded Character Set)
Borang Penyandiaksaraan (Character Encoding Form)
Pola Rencana Penyandiaksaraan (Character Encoding Scheme)




UTF-8
UTF-8 (Universal Character Set (UCS) Transformation Format — 8-bit[1]) adalah sebuah pengkodean karakter dengan lebar variabel tertentu (variable-width encoding) yang mewakili setiap karakter komputer (character) dalam himpunan karakter Unicode. Didesain untuk backward compatibility dengan ASCII dan untuk menghindari komplikasi endianness dan byte order mark dalam UTF-16 dan UTF-32.

UTF-8 telah menjadi metoda pengkodean karakter (character encoding) yang dominan untuk World Wide Web, meliputi lebih dari setengah jumlah seluruh halaman Web.[2][3][4] Internet Engineering Task Force (IETF) mengharuskan semua protokol Internet untuk mengidentifikasi encoding yang dipakai untuk data karakter, dan pengkodean karakter yang didukung (supported character encoding) untuk menyertakan UTF-8.[5] Internet Mail Consortium (IMC) merekomendasi seluruh program e-mail dapat menayangkan dan membuat e-mail menggunakan UTF-8.[6] UTF-8 juga terus meningkat penggunaannya sebagai default character encoding dalam sistem operasi, bahasa pemrograman, API, dan aplikasi perangkat lunak.
Deskripsi
Desain UTF-8 dapat dilihat di tabel berikut yaitu skema yang asalnya diusulkan oleh Dave Prosser dan selanjutnya dimodifikasi oleh Ken Thompson (x diganti degan bit dari code point):
Contoh
Mari melihat bagaimana membuat pengkodean tanda mata uang Euro, €.

'Unicode code point untuk "€" adalah U+20AC.
Menurut tabel skema di atas, dibutuhkan 3 bita (byte) untuk pengkodean, karena terletak di antara U+0800 dan U+FFFF.
Kode heksadesimal 20AC adalah sama dengan kode biner (binary) 0010000010101100. Dua angka nol di depan ditambahkan karena, seperti dalam tabel, suatu pengkodean tiga-bita (three-byte encoding) membutuhkan tepat enam belas bit dari the code point.
Karena berupa pengkodean tiga-bita, bita pendahulu dimulai dengan tiga angka "1", kemudian satu angkat "0" (1110...)
Bit sisanya dari bita ini diambil dari code point (11100010), menyisakan ... 000010101100.
Setiap kelanjutan bita dimulai dengan 10 dan dibutuhkan enam bit code point (maka  10000010, lalu  10101100).
Tiga bita 11100010 10000010 10101100 dapat ditulis lebih singkat dalam heksadesimal, sebagai E2 82 AC.
Tabel berikut adalah ikhtisar pengubahan ini, juga yang lain dengan panjang berbeda dalam UTF-8. Warna-warna mengindikasikan bagaiman bit dari code point didistribusikan di antara byte-byte UTF-8. Bit tambahan yang ditambahkan oleh proses encoding UTF-8 diberi warna hitam.

UTF-16

UTF-16 (16-bit Unicode Transformation Format) adalah suatu pengkodean karakter Unicode yang mampu mengkodekan 1,112,064[1] angka (disebut code point) dalam jangkauan kode Unicode dari 0 sampai 0x10FFFF. Pengkodean ini adalah sebuah "variable-width encoding" karena code point itu dikodekan dengan satu atau dua code units 16-bit .

Universal Character Set UCS-2 (2-byte) mirip dengan pengkodean karakter yang sekarang digantikan oleh UTF-16 versi 2.0 sebagai standar Unicode pada bulan Juli 1996.[2] Menghasilkan format dengan panjang tetap (fixed-length format) hanya menggunakan code point sebagai unit kode 16-bit dan membuahkan hasil yang tepat sama dengan UTF-16 untuk 97% (63.488; bukan 65.536) dari seluruh code point dalam jangkauan 0-0xFFFF, termasuk semua karakter yang telah diberi nilai saat itu.

UTF-16 secara resmi didefinisikan dalam Annex Q dari standar internasional ISO/IEC 10646.[3] Juga disebut sebagai "The Unicode Standard" versi 2.0 atau lebih tinggi, serta dalam IETF's RFC 2781.
Deskripsi
Code points U+0000 to U+D7FF and U+E000 to U+FFFF
Code points U+10000 to U+10FFFF
Code points U+D800 to U+DFFF
Contoh
* Appropriate font and software are required to see the correct glyphs.



Contoh prosedur pengkodean UTF-16

Leave a Reply

Subscribe to Posts | Subscribe to Comments

// Copyright © Blog Bubuhan TI //