Sistem Pengkodean Bilangan

| | Tidak ada komentar
Data yang diproses dalam sistem digital, mikrokontroler, maupun komputer digital umumnya dipresentasikan dengan menggunakan kode tertentu. Terdapat berbagai macam sistem kode seperti Binary-Coded Decimal (BCD), gray, excess-3, kode 7-segment display, dan kode alfanumerik (ASCII dan EBCDIC). Jika penyajian data hanya menggunakan sistem bilangan, maka penyajian tersebut sangat terbatas, yakni hanya dapat menyajikan data dalam bentuk bilangan positif saja. Dengan menggunakan sistem pengkodean, dapat disajikan berbagai macam jenis data seperti bilangan, simbol, maupun huruf ke dalam besaran digital. Selain itu, dengan sistem pengkodean juga dapat disajikan bilangan positif maupun bilangan negatif dan bahkan bilangan pecahan dengan titik desimal.

Kode-kode tersebut disusun dengan suatu cara menggunakan bilangan biner yang membentuk kelompok tertentu. Kelompok bilangan biner yang membentuk suatu kode dibedakan penyebutnya. Kode biner 4-bit dinamakan nibble, contoh: 11012, 10102, dan 10012. Kode biner 8-bit dinamakan byte, contoh: 100111002 dan 101010102. Dalam hal ini, 1 byte = 8-bit, 1 KiloByte = 1KB = 1024 byte = 210 byte. Kode biner 16-bit dinamakan word, contoh: 10011100101010102. Dan kode biner 32-bit dinamakan double word.

Kode BCD (Binary-Coded Decimal)

Kode BCD atau bilangan desimal yang dikodekan kedalam bilangan biner, sering ditulis dalam bentuk BCD-8421 menggunakan kode biner 4-bit untuk mempresentasikan masing-masing digit desimal dari suatu bilangan.

Dalam sistem kode BCD, terdapat 6 buah kode yang tidak dapat digunakan (invalid code), yakni: 10102, 10112, 11002, 11012, 11102, 11112. Sehingga hanya ada 10 kode BCD yang valid, yakni kode-kode untuk merepresentasikan bilangan desimal dari 0 sampai dengan 9. Untuk lebih memahami kode BCD, coba perhatikan contoh konversi berikut ini.

Contoh:
① Konversi bilangan desimal 105,37510 ke bentuk kode BCD
1 0 5 , 3 7 5
0001 0000 0101 , 0011 0111 0101
105,37510 = 100000101,001101110101BCD

② Konversi kode BCD 100000101,001101110101BCD ke bentuk bilangan desimal
0001 0000 0101 , 0011 0111 0101
1 0 5 , 3 7 5
100000101,001101110101BCD = 105,37510

Walaupun kode BCD nampak seperti sistem bilangan biner, namun keduanya berbeda, karena BCD merupakan sistem pengkodean, sedangkan biner adalah sistem bilangan.

Kode Excess-3 (XS-3)

Sistem pengkodean lain yang mirip dengan BCD adalah Excess-3. Untuk menyusun kode XS-3 dari suatu bilangan desimal, masing-masing digit dari suatu bilangan desimal yang akan dikodekan dengan XS-3, ditambah dengan bilangan desimal 3, kemudian hasilnya dikonversi seperti cara pada konversi BCD.

Pada XS-3, terdapat 6 kode yang tidak dapat digunakan, yakni: 00002, 00012, 00102, 11012, 11102, 11112. Untuk lebih jelasnya, silahkan perhatikan contoh berikut ini.

Contoh:
① Konversi bilangan desimal 1210 ke bentuk kode XS-3
 2   → Sistem bilangan desimal
  3 +     3 +
4 5
0100 0101   → Sistem kode XS-3
1210 = 01000101XS-3

② Konversi kode BCD 100111000101XS-3 ke bentuk bilangan desimal
1001 1100 0101   → Sistem kode XS-3
9 12 5
  3      3    3
6   9 2   → Sistem bilangan desimal
100111000101XS-3 = 69210

Kode Gray

Kode gray memiliki keunikan, yakni setiap kali kode itu berubah nilainya secara berurutan misalnya dari 2 ke 3 atau dari 5 ke 6, hanya terdapat 1-bit saja yang berubah. Contoh: jika nilai kode gray berubah dari 2 ke 3, maka kode gray berubah dari 0011GRAY ke 0010GRAY. Kode gray biasanya digunakan sebagai data yang menunjukkan posisi dari suatu poros mesin yang berputar.

Contoh:
① Konversi bilangan desimal 1310 ke kode gray
1310 = 11012                              → Konversi desimal ke biner
1 → + → 1 → + → 0 → + → 1   → Sistem bilangan biner



  → Carry hasil penjumlahan diabaikan
1 0
1
1
  → Sistem kode gray
1310 = 1011GRAY

② Konversi kode gray 1011GRAY ke bentuk bilangan desimal
1    0    1    1   → Sistem kode gray
↓    ↓    ↓      → Carry hasil penjumlahan diabaikan
1 + 1 + 0 + 1   → Sistem bilangan biner
11012 = 1310                 → Konversi biner ke desimal

1011GRAY = 1310

Kode 7-Segment Display

Hasil pemrosesan sinyal dari suatu rangkaian digital merupakan sinyal digital dalam bentuk kode-kode biner. Jika hasil tersebut tetap disajikan dalam bentuk aslinya yakni kode biner, maka kita akan mengalami kesulitan dalam membacanya karena kita tidak terbiasa menggunakan kode biner dalam kehidupan sehari-hari. Kebiasaan kita adalah menggunakan sajian bilangan dalam bentuk bilangan desimal. Agar menjadi mudah dibaca, maka kode-kode biner tersebut perlu diubah tampilannya menggunakan tampilan desimal. Piranti yang digunakan untuk menampilkan data dalam bentuk desimal adalah LED 7-Segment Display. Untuk menampilkan bilangan desimal, display ini memerlukan penggerak berbentuk kode-kode biner. Bentuk display 7-segment ditunjukkan pada gambar dibawah ini.

7-segment display
7-segment display

Setiap segment dari tampilan tersebut berupa LED yang susunannya membentuk suatu konfigurasi tertentu. Gambar (a) menunjukkan wujud dari 7-segment display dilihat dari atas, sedangkan gambar (b) menunjukkan segmen-segmen peraga 7-segment jenis common cathode. Pada jenis ini, diperlukan sinyal high (1) untuk menyalakan setiap segmennya. Pada gambar (c) ditunjukkan segmen-segmen peraga 7-segment jenis common anode, dimana diperlukan sinyal low (0) untuk menyalakan setiap segmennya.

1 byte dapat mengkodekan keadaan penuh sebuah 7-segment display. Pengkodean bit yang paling populer adalah gfedcba dan abcdefg, dimana pada kedua pengkodean tersebut biasanya menganggap 0 adalah off dan 1 adalah on.

Tabel pengkodean heksa untuk menampilkan 0 s/d F
Digit gfedcba abcdefg a b c d e f g
0 0x3F 0x7F on on on on on on off
1 0x06 0x30 off on on off off off off
2 0x5B 0x6D on on off on on off on
3 0x4F 0x79 on on on on off off on
4 0x66 0x33 off on on off off on on
5 0x6D 0x5B on off on on off on on
6 0x7D 0x5F on off on on on on on
7 0x07 0x70 on on on off off off off
8 0x7F 0x7F on on on on on on on
9 0x6F 0x7B on on on on off on on
A 0x77 0x77 on on on off on on on
b 0x7C 0x1F off off on on on on on
C 0x39 0x4E on off off on on on off
d 0x5E 0x3D off on on on on off on
E 0x79 0x4F on off off on on on on
F 0x71 0x47 on off off off on on on

Agar setiap segmen beroperasi dengan benar, maka setiap segmen membutuhkan tegangan setidaknya 2 volt, dan arus 5 mA. Jika kita memiliki sumber tegangan DC 5 volt (Vcc = 5 volt), maka nilai resistor disetiap segmennya adalah:

  R = (Vcc - 2 volt)/5 mA = 600 Ω  → Menggunakan resistor 680 Ω akan bekerja baik.

Kode Alfanumerik (ASCII dan EBCDIC)

Dalam penggunaan komputer secara umum, walaupun kode yang diolah dalam komputer itu sendiri adalah bilangan biner, tetapi selain bilangan desimal juga diproses huruf dan tanda baca/tanda khusus lainnya. Untuk memroses data seperti ini, tentunya diperlukan sistem pengkodean yang lebih luas dari pada sistem-sistem pengkodean yang telah dibahas sebelumnya. Kode ini disebut kode "Alphanumeric" dan sering disingkat dengan nama "Alphameric". Dua jenis kode alfanumerik yang paling umum dipakai dalam dunia komputer sekarang ini adalah: ASCII (American Standard Code for Information Interchange) dan EBCDIC (Extended Binary Coded Decimal Interchange Code).

ASCII terdiri atas 7-bit bilangan biner yang dapat mengkodekan semua angka desimal, huruf abjad (baik huruf besar maupun kecil), tanda-tanda khusus dan tanda baca, dan beberapa kode kendali/kontrol yang umum dipakai dalam komunikasi data. Dalam prakteknya, walaupun kode ASCII terdiri dari 7-bit, kebanyakan kode ASCII menggunakan 8-bit dengan 1-bit tambahan yang dipakai sebagai bit parity. Sistem kode EBCDIC terdiri atas 8-bit, digunakan dalam komputer-komputer IBM tipe 360 dan 370.

Pada tabel dibawah ini akan ditunjukkan kedua jenis kode alfanumerik yang disebut di atas. Dalam EBCDIC, untuk 4-bit paling kiri, angka dinyatakan dengan 11112 (F16), huruf kapital dinyatakan dengan C16 sampai E16, dan untuk huruf kecil dinyatakan dengan bilangan heksadesimal 8 sampai A, sedangkan untuk tanda lainnya dinyatakan dengan 01xx2, dengan x dapat berarti 0 atau 1. Dalam ASCII, karakter dengan kode dibawah 2016 digunakan sebagai kode kendali komunikasi, angka dikodekan dengan 3016 sampai 3916, huruf kapital dikodekan dengan 4116 sampai 5A16, huruf kecil dikodekan dengan 6116 sampai 7A16, dan kode yang lainnya digunakan untuk tanda-tanda baca. Dengan demikian, sudah jelas bahwa kode ASCII lebih mudah untuk diingat.

Tabel ASCII (American Standard Code for Information Interchange)
Tabel ASCII (American Standard Code for Information Interchange)
Tabel EBCDIC (Extended Binary Coded Decimal Interchange Code)
Tabel EBCDIC (Extended Binary Coded Decimal Interchange Code)

Tidak ada komentar

Posting Komentar