Pengkodean merupakan cara komputer untuk menyatakan bilangan atau karakter dalam notasi biner. Seperti yang kita ketahui bahwa komputer hanya mengenal 1 dan 0 saja. Sehingga komputer perlu menerjemahkan semuanya dalam biner terlebih dahulu. Ada beberapa teknik pengkodean dalam sistem digital.
Daftar isi
BCD
BCD (Binary Code Decimal) merupakan pengkodean bilangan biner untuk menyatakan bilangan desimal 0 sampai 9. Kode BCD menggunakan empat bit bilangan biner untuk mengode satu desimalnya. Oleh karena itu, kode BCD juga bisa disebut dengan kode 8421.
Kode BCD dari angka 0 sampai 9 sama seperti mengkonversikannya secara langsung ke notasi biner. Perbedaannya terletak pada pengonversian desimal lebih dari itu.
Sedangkan bilangan yang lebih dari 9, pisahkan setiap digitnya.
Desimal | Biner | BCD |
167 | 10100111 | 0001 0110 0111 |
2021 | 11111100100 | 0010 0000 0010 0001 |
Kelebihan dari BCD adalah pembacaan dan konversinya yang mudah. Namun terdapat kelemahan dari BCD, yaitu saat operasi penjumlahan. Misalnya 8 + 5 = 13. Pada BCD, 1000 + 0101 = 1101, padahal 1101 bukan merupakan kode BCD.
Excess-3
Kode excess-3 adalah modifikasi dari kode BCD dengan menambahkan 3 ke tiap bilangannnya.
Komplemen dari 9 adalah 0, namun kode BCD tidak memenuhi dalam hal komplemen, berbeda dengan excess-3. Selain excess-3, ada kode lain yang bisa memenuhi hal tersebut. Misalnya 2421 dan 84-2-1.
Pada kode 2421, 7 = 1101 karena angka 7 senilai dengan 2 + 4 + 0 + 1 dan bukan 0111 agar komplemen dengan 2 (0010). Kemudian pada 84-2-1, 6 = 1010 karena 6 senilai dengan 8 – 2. Sehingga bit 1 ada pada bagian 8 dan -1.
Paritas
Paritas merupakan cara untuk mendeteksi kesalahan dalam pertukaran informasi. Ada dua jenis paritas, yaitu paritas bit dan paritas kata. Paritas bit berguna untuk mendeteksi kesalahan, sedangkan paritas kata berguna untuk mendeteksi dan mengoreksi kesalahan informasi.
Paritas Bit
Ada dua macam paritas bit, yaitu paritas gasal (ganjil) dan paritas genap. Paritas itu sendiri terletak di sebelah kanan informasi yang akan diperiksa dan digunakan untuk mendeteksi kesalahan.
Paritas akan membuat nilai pada informasi sesuai dengan jenis paritasnya. Misalnya paritas gasal, nilai paling kanan akan bernilai 1 jika jumlah bit ‘1’ pada informasi berjumlah genap. Sedangkan paritas genap akan bernilai 1 jika jumlah bit ‘1’ pada informasi berjumlah ganjil.
Desimal | Paritas Gasal | Paritas Genap |
0 | 0000 1 | 0000 0 |
1 | 0001 0 | 0001 1 |
2 | 0010 0 | 0010 1 |
3 | 0011 1 | 0011 0 |
4 | 0100 0 | 0100 1 |
5 | 0101 1 | 0101 0 |
6 | 0110 1 | 0110 0 |
7 | 0111 0 | 0111 1 |
8 | 1000 0 | 1000 1 |
9 | 1001 1 | 1001 0 |
Bit paritas ganjil pada 5 (0101) adalah 1 karena 0101 memiliki bit ‘1’ berjumlah genap, yaitu 2. Sehingga bit paritas 1 membuatnya berjumlah ganjil, yaitu 3.
Sedangkan pada paritas genap, bit paritas dari 5 adalah 0 karena jumlah bit ‘1’ dari 0101 adalah genap, yaitu 2. Sehingga tidak perlu lagi tambahan bit ‘1’.
Paritas Kata
Paritas kata merupakan gabungan dari paritas bit karena mengirimkan beberapa paritas bit. Jumlah bit dari paritas kata adalah jumlah bit dari informasi yang masuk, termasuk bit paritasnya. Misalkan ada suatu informasi yang masuk menggunakan paritas gasal seperti berikut.
Karena menggunakan paritas gasal, tiap baris dan kolom seharusnya memiliki bit ‘1’ yang berjumlah gasal/ganjil.
Pada contoh informasi yang masuk, baris 4 dan kolom 3 memiliki jumlah bit yang tidak sesuai. Sehingga kesalahan ada pada tempat yang ditunjuk oleh keduanya.
Kode Hamming
Selain dengan menggunakan paritas, ada lagi cara untuk pengoreksi kesalahan yaitu dengan kode Hamming. Pada kode ini, bit pengecek ditambahkan di beberapa tempat dalam satu informasi.
Jadi, informasi yang terkirim berisi bit awal dan bit pengecek. Kemudian penerima akan melakukan pemeriksaan ulang untuk melihat apakah ada kesalahan pada informasi tersebut.
Banyaknya bit informasi dapat dihitung dengan 2n-n-1, dengan n adalah banyaknya paritas. Posisi paritas selalu pada bilangan dua pangkat. Seperti contoh, paritas berada pada posisi 1, 2 dan 4.
Contoh Kode Hamming
Paritas 1 (p1) untuk bit d1, d2 dan d4. Paritas p2 untuk bit d1, d3 dan d4. Sedangkan paritas p3 untuk bit d2, d3 dan d4. Misalnya ada sebuah data 4 bit yaitu 1010, cara mengirimkannya dalam kode Hamming paritas genap adalah:
p1 = d1 + d2 + d4 → 1 + 0 + 0 = 1
p2 = d1 + d3 + d4 → 1 + 1 + 0 = 0
p3 = d2 + d3 + d4 → 0 + 1 + 0 = 1
Dengan demikian, kode Hamming paritas genap dari 1010 (10)2 adalah 1011010. Lalu bagaimana jika ada gangguan dalam pengiriman informasi?
Mendeteksi Kesalahan Kode Hamming
Misalkan data yang diterima adalah 1010010. Maka lakukan pengujian dengan menjumlahkan data awal dengan paritasnya.
p1 : p1 + d1 + d2 + d4 → 1 + 1 + 0 + 0 = genap (posisi p1, d1, d2 dan d4 benar)
p2 : p2 + d1 + d3 + d4 → 0 + 1 + 1 + 0 = genap (posisi p2, d1, d3 dan d4 benar)
p3 : p3 + d2 + d3 + d4 → 0 + 0 + 1 + 0 = gasal (salah satu dari p3, d2, d3 dan d4 salah)
Berdasarkan informasi, hanya informasi ketiga yang salah sehingga bit yang salah pasti adalah p3.
Contoh lain, misalkan data paritas genap yang masuk adalah 1011110.
p1 : p1 + d1 + d2 + d4 → 1 + 1 + 1 + 0 = gasal (salah satu dari p1, d1, d2 dan d4 salah)
p2 : p2 + d1 + d3 + d4 → 0 + 1 + 1 + 0 = genap (p2, d1, d3 dan d4 benar)
p3 : p3 + d2 + d3 + d4 → 1 + 1 + 1 + 0 = gasal (salah satu dari p3, d2, d3 dan d4 salah)
Berdasarkan informasi, informasi pertama dan ketiga salah. Sehingga d2 atau d4 merupakan bit yang salah. Namun berdasarkan informasi kedua, bit d4 benar. Oleh karena itu yang salah adalah bit d2.
Kode Gray
Kode gray berbeda dengan biner karena pada kode gray, perubahan hanya ada pada satu bit. Sehingga dua angka yang berurutan hanya berbeda 1 posisi bit saja.
Pada sistem biner, dari angka 7 ke 8 memerlukan perubahan sebanyak 4 bit. Sedangkan pada kode gray, hanya ada 1 perbedaan bit. Karena kita mengetahui bagaimana mengonversi desimal ke biner, maka akan sulit untuk mengonversinya ke gray karena terlihat tidak berarutan.
Ketidak beraturan kode gray karena kode gray tidak memiliki bobot. Contohnya pada biner, bit paling kanan bernilai satu dan semakin ke kiri nilainya dua kali lipat. Namun bit paling kiri keduanya selalu sama. Untuk itu, berikut adalah cara mengonversi gray ke biner dan sebaliknya.
Konversi Gray ke Biner
Karena bit paling kiri selalu sama, maka cukup perhatikan bit berikutnya.
- Jika bit ke-n pada gray adalah 1, maka bit ke-n binernya merupakan kebalikan dari bit sebelumnya.
- Sedangkan jika bit ke-n pada gray adalah 0, maka bit ke-n binernya merupakan bit yang sama dengan sebelumnya.
Untuk implementasi, berikut adalah contoh konversi kode gray 10011010 ke kode biner.
Dengan demikian, 10011010 pada gray = 11101100 pada biner.
Konversi Biner ke Gray
Seperti penjelasan sebelumnya, bit paling kiri dari keduanya sama. Kemudian
- Jika bit ke-n sama dengan bit sebelah kirinya, maka bit ke-n dari gray adalah 0.
- Jika bit ke-n dari biner berbeda dengan bit sebelah kirinya, maka bit ke-n gray adalah 1.
Contohnya sebagai berikut:
Sehingga 01101010011 dalam biner sama dengan 01011111010.
ASCII
Pernahkah kamu mencoba mengubah teks menjadi biner lewat situs ini atau semacamnya? Misalnya “cahInfor” jika diubah menjadi biner akan menjadi
01100011 01100001 01101000 01001001 01101110 01100110 01101111 01110010
Angka-angka itu bukanlah angka acak karena untuk mengubah teks menjadi biner, perlu pengetahuan tentang American Standard Code for Information Interchange atau ASCII.
Pada contoh tersebut, teks akan dikonversikan tiap hurufnya. Pengonversian tersebut berdasarkan masing-masing kode ASCII dari tiap karakter. Misalnya ASCII dari ‘c’ adalah 99, sehingga biner yang muncul adalah 01100011.
Kode ASCII dari huruf kapital berbeda dengan yang bukan kapital. ‘C’ bernilai 65, sedangkan ‘c’ bernilai 97. Untuk lebih lengkapnya, silahkan buka ASCII – Wikipedia.
wah mantab
Terima kasih 🙏