Dokumen tersebut menjelaskan tentang encoding dan decoding menggunakan bilangan heksadesimal. Bilangan heksadesimal merupakan sistem bilangan basis 16 yang memudahkan konversi dari bilangan biner menjadi format yang lebih singkat. Bilangan heksadesimal banyak digunakan dalam teknologi seperti IP address untuk menyederhanakan alamat biner panjang menjadi notasi kolom-heksadesimal. Metode ini mempermudah pengiriman dan pembacaan kode digital.
1. 1
ENCODING DAN DECODING WITH HEKSADESIMAL
Dalam dunia komunikasi kita sering mendengar kata encoding dan
decoding. Tahukah Anda apa pengertian dari encoding dan decoding itu sendiri?
Encoding merupakan pengiriman pesan menjadi sebuah data yang dilakukan oleh
pengirim sedangkan decoding merupakan konversi dari sebuah data menjadi sebuah
pesan yang bisa dipahami oleh sang penerima.
Gambar 1. Proses Encoding dan Decoding
Pengkodean pun menggunakan sistem pembelajaran matematika salah
satu contohnya adalah menggunakan basis 16 atau bilangan heksadesimal atau lebih
disingkat hex. Sistem bilangan heksadesimal atau sistem bilangan basis enam belas
adalah sebuah sistem penulisan angka dengan menggunakan 16 simbol yaitu 0, 1,
2, 3, 4, 5, 6, 7 , 8, 9, A, B, C, D, E, F. Notasi huruf A menyatakan nilai bilangan 10,
B untuk nilai 11, C untuk nilai 12, D untuk nilai 13, E untuk nilai 14, dan F untuk
nilai 15. Dari sistem bilangan heksadesimal, kita dapat mengkonversinya ke sistem
bilangan Desimal, Biner, dan Oktal atau sebaliknya. Dalam membaca bilangan
biner kita membaca dalam 7 atau 8 digit seperti 01000101 yang memiliki nilai 69
di basis 2. Itu membuat kita lebih sukar dalam membaca bilangan biner tersebut
tetapi jika kita menggunakan bilangan heksadesimal kita hanya menggunakan 4
2. 2
digit dari bilangan biner tersebut. Kita pisahkan 4 digit 4 digit menjadi 0100 0101.
Karena sistem bilangan biner dibaca dari kanan ke kiri, kita lihat 4 bit pertama yaitu
0100 itu berarti 0x20
+0x21
+1x22
+0x23
yang hasilnya adalah 4 selanjutnya untuk 4
bit berikutnya yaitu 0101 kita lakukan hal serupa dan mendapatkan hasil 5. Jadi
untuk bilangan biner 0100 0101 itu hasilnya bila kita koversikan kedalam bilangan
heksadesimal akan mendapatkan hasil 45.
Berikut ini merupakan tabel pencacahan sistem bilangan desimal, biner
dan heksadesimal.
Tabel 1. Pencacahan Bilangan Biner dan Heksadesimal
Dari tabel pencacahan tersebut kita dapat simpulkan bilangan
heksadesimal 16 dan seterusnya merupakan penggabungan antara bilangan biner 1-
F dengan bilangan biner 1-F. Sebagai contoh kita lihat bilangan desimal 19.
Bilangan desimal 19 bila kita konversikan kedalam bilangan heksadesimal bernilai
13. Dan bila kita konversikan ke dalam bilangan biner itu berarti nilai bilangan biner
1 ditambah dengan nilai bilangan biner 3. Contoh lain konversi bilangan
heksadesimal kedalam desimal kita ambil bilangan desimal 250. Maka langkah
3. 3
pertama kita rubah bilangan desimal 250 ke dalam bilangan biner: 250(10)=
1111.1010(2).
Untuk memudahkan konversi bilangan biner ke heksadesimal maka
deretan bilangan biner dikelompokkan dalam masing-masing 4 bit. Contoh: 4 bit
pertama adalah 1111(2) = F(16), byte ke dua adalah 1010(2) = A(16). Maka
bilangan heksadesimal, 1111.1010(2) = FA(16) Sehingga 250(10) = FA(16).
Teknologi yang menggunakan bilangan heksadesimal yaitu dalam IP
address untuk jaringan internet dalam komputer. Sesungguhnya IP address
merupakan deretan angka biner antara 32 bit hingga 128 bit. 32 bit untuk IPv4 dan
128 bit untuk IPv6. IPv4 merupakan IP address dengan 32 bit atau sama dengan
232
= 4,294,967,296 Protokol komputer dapat terhubung ke internet. Tetapi para ahli
merasa cemas bila para pengguna internet melebihi jumlah tersebut jadi para ahli
membuat teknologi baru yaitu IPv6 tetapi IPv6 tidak menggunakan bilangan biner
seperti pada IPv4 dikarenakan deretan bit yang sangat banyak yaitu 128 hampir 4
kali dari jumlah IPv4. Jadi pada IPv6 menggunakan bilangan heksadesimal. Contoh
Deretan bit yang panjang seperti pada IPv4 akan menyulitkan dalam sistem
konversi. Maka sistem bilangan heksadesimal memudahkan pekerjaan konversi
tersebut, karena setiap 4 bit bilangan biner diwakili oleh 1 bilangan heksadesimal.
Dalam IPv6, alamat 128-bit akan dibagi ke dalam 8 blok berukuran 16-bit, yang
dapat dikonversikan ke dalam bilangan heksadesimal berukuran 4-digit. Setiap blok
bilangan heksadesimal tersebut akan dipisahkan dengan tanda titik dua (:).
Karenanya, format notasi yang digunakan oleh IPv6 juga sering disebut dengan
colon-hexadecimal format, berbeda dengan IPv4 yang menggunakan dotted-
decimal format. Contoh: ini merupakan alamat IP address untuk IPv4 setelah
diubah kedalam bilangan biner
001000011101101000000000110100110000000000000000001011110011101100
00001010101010000000001111111111111110001010001001110001011010.
4. 4
Untuk menerjemahkannya ke dalam bentuk notasi colon-hexadecimal
format, angka-angka biner di atas harus dibagi ke dalam 8 buah blok berukuran 16-
bit
0010000111011010 0000000011010011 0000000000000000
0010111100111011 0000001010101010 0000000011111111 1111111000101000
1001110001011010.
Lalu, setiap blok berukuran 16-bit tersebut harus dikonversikan ke dalam
bilangan heksadesimal dan setiap bilangan heksadesimal tersebut dipisahkan
dengan menggunakan tanda titik dua. Hasil konversinya adalah sebagai berikut:
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A.
Ini merupakan teknologi yang menggunakan bilangan Heksa desimal.
Gambar 2. Perbedaan IPv4 dan IPv6
Penulis akan memberikan contoh pengkodean bilangan biner yang sukar
untuk ditulis bila bilangan biner tersebut banyak. Contoh: seorang pengirim pesan
atau encoding mengirim sebuah pesan biner seperti ini
010000100101100101000101 bila kita koversikan bilangan biner tersebut ke dalam
bilangan desimal 20
+ 22
+ 26
+ 28
+ 211
+ 212
+ 214
+ 217
+ 222
= 1 + 4 +
64 + 256 + 2048 + 4096 + 16384 + 131072 + 4194304 = 4348229.
Kemudian seorang penerima pesan mengkonversikan kode tersebut kedalam kode
biner dan mendapatkan hasil sebuah kata yaitu BYE. Bagaimana itu bisa terjadi?
5. 5
Apakah nilai 4348229 mewakili kata BYE? Untuk itu kita pertama harus
mengetahui apa itu tabel ASCII.
Tabel ASCII berisikan tentang kode-kode biner dari huruf-huruf abjad
dari A-Z dengan A tidak sama dengan a. Jadi kode biner untuk huruf A tidak sama
dengan huruf a. Tabel tersebut dinamakan tabel ASCII (American Standard Code
for Information Interchange) atau Kode Standar Amerika untuk Pertukaran
Informasi. ASCII merupakan kode standar yang digunakan dalam pertukaran
informasi pada komputer. Komputer hanya dapat memahami nomor, maka kode
ASCII adalah representasi numerik dari karakter-karakter dari komputer seperti
a,@ dan sebagainya. 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. Sedangkan yang akan kita bahas
kali ini mengenai kode ASCII 0–127 untuk manipulasi teks. Setiap simbol yang ada
di keyboard memiliki kode ASCII. Sebagai contoh Huruf A memiliki kode ASCII
65; huruf a memiliki kode ASCII 97. Kode ASCII 65 dalam implementasinya
diterjemahkan ke kode Biner. Kode ASCII dalam implementasinya diterjemahkan
ke kode biner. Kode ASCII sebenarnya memiliki komposisi
bilangan biner sebanyak 8 bit. Dimulai dari 0000 0000 hingga 1111 1111. Kode
bernilai sampai dengan 31 dinamakan kode control, sedangkan 32 sampai dengan
126 adalah kode ASCII yang dapat ditampilkan. Alfabet A sampai Z diwakili oleh
kode desimal 65 sampai 90.
6. 6
Tabel 2. ASCII Lengkap dengan Heksadesimal
Tabel ini merupakan tabel ASCII lengkap dengan bilangan biner dan juga
bilangan heksadesimal yang berasal dari catatanpilihanwordpress.com. Dari tabel
di atas dapat kita simpulkan untuk menerjemahkan bilangan biner ternyata dengan
huruf demi huruf bukan kata demi kata. Selanjutnya bagaimana cara sang penerima
pesan mengubah pesan tersebut menjadi sebuah kata BYE? Padahal tidak ada kata
BYE dalam tabel tersebut ataupun bilangan biner 010000100101100101000101
dengan desimal 4348229. Sang penerima pesan memisahkan bilangan bilangan
biner tersebut menjadi 8 digit sehingga menjadi 01000010 01011001 01000101.
Kemudian sang penerima pesan melihat tabel ASCII sehingga sang penerima pesan
mendapatkan kata BYE. Bagaimana kalo kita tidak memiliki tabel tersebut apakah
kita dapat tetap mengirim kode kepada sang penerima pesan? Tentu saja bisa kita
hanya perlu mengetahui bahwa abjad atau alphabet dari A-Z itu terdapat pada nilai
7. 7
biner 65-90. Bila menurut kita bilangan tersebut terlalu besar untuk kita hitung,
mudah saja kita dapat menggunakan bilangan heksadesimal jadi untuk mencari
huruf H,E,L,L,O maka kita hanya perlu menghitung huruf yang kita inginkan
merupakan ke berapa dalam sistem alphabet bila kita mencari huruf H, kita tahu
bahwa huruf H merupakan huruf ke 8. Maka nilai desimal untuk huruf H adalah
65+8-1 sehingga hasilnya 72 untuk bilangan biner. Untuk lebih mudahnya dalam
kita mengubah desimal 72 kedalam pengkodean biner, kita dapat mengubah angka
72 kedalam bilangan heksadesimal. Dengan cara membagi 72 dengan 16 hasilnya
adalah 4 dengan sisa 8. Jadi bilangan desimal 72 bila kita konversikan kedalam
bilangan heksadesimal maka menjadi 48. Lalu tinggal kita lihat angka 4 pada
bilangan biner yaitu 0100 dan angka 8 dalam biner itu adalah 1000 dan seterusnya
hingga kita mendapatkan bilangan biner untuk kata HELLO mudah kan?
Sekarang pertanyaannya kenapa kita memisahkan 4 bit 4 bit?
Jawabannya karena bila kita menggunakan 8 bit itu menurut saya terlalu panjang
seperti saat kita menulis pesan singkat untuk seorang teman kita sebagai contoh kita
menulis kata “SEKARANG” menurut saya itu terlalu panjang padahal kita dapat
menulisnya dengan cara disingkat menjadi “SKRG” teman kita pun akan
mengetahui bahwa yang dimaksud adalah kata SEKARANG. Begitu juga pada
penggunaan 8 bit menjadi 4 bit kenapa kita menggunakan 8 bit jika ada cara lain
selain 8 bit yang memudahkan kita yaitu dengan cara menulis 4 bit. Istilah lain
untuk 4 bit adalah Nibble. Jadi untuk 1 huruf alphabet berarti 2 nibble = 1 byte
dalam ukuran memori. Sekarang bila kita menulis TEORIBILANGAN berapa
ukuran byte untuk kata tersebut? Jawabannya adalah 13 byte. Kenapa bisa begitu?
Jika kita rinci kata:
T = 2 nibble
E = 2 nibble
O = 2 nibble
R = 2 nibble
I = 2 nibble
Spasi= 2 nibble
8. 8
B = 2 nibble
I = 2 nibble
L = 2 nibble
A = 2 nibble
N = 2 nibble
G = 2 nibble
A = 2 nibble
N = 2 nibble
Jumlah seluruh nibble dalam kata tersebut adalah 28 nibble. Kita ketahui
bahwa 2 nibble = 1 byte jadi bila kita hitung maka untuk kata “TEORI
BILANGAN’ kata tersebut akan berukuran 14 byte. Tetapi bila kita coba ketik kata
tersebut dalam microsoft word lalu kita save ukurannya tidak akan 14 byte
dikarenakan ada hal hal lain selain dari segi tersebut seperti pada jenis huruf, ukuran
kertas, tebalnya huruf, dll yang mempengaruhi ukuran byte dalam penulisan kata
“TEORI BILANGAN”.
Dari uraian diatas dapat disimpulkan bahwa penggunaan bilangan
heksadesimal merupakan cara ampuh untuk memudahkan kita dalam mengirim dan
membaca kode yang kita inginkan atau kita terima. Memang di dunia ini masih
banyak yang belum mengenal bilangan heksadesimal padahal sitem bilangan
heksadesimal tersebut telah digunakan dalam IP address versi 6. Karena sistem
dalam komputer kebanyakan menggunakan sistem bilangan biner padahal, sistem
bilangan heksadesimal dapat lebih memudahkan kita dalam mengkonversi
bilangan-bilangan biner tersebut dengan skala yang lebih kecil seperti dari 8 digit
bilangan biner kita dapat memisahkan menjadi 2 yang berisi 4 digit 4 digit bilangan
biner lalu kita ubah bilangan tersebut kedalam bilangan heksadesimal. Itu lebih
memudahkan kita dalam pengiriman dan pembacaan kode-kode yang banyak bukan
hanya 3,4,atau 5 huruf mungkin kode tersebut berbentuk 2 kata atau bahkan 1
kalimat. Bahkan ini pun dapat menjadi sebuah secret message yang hanya penerima
dan pengirim lah yang tau apa pesan yang dikirim maupun diterima. Kita sekarang
mengetahui bahwa istilah selain dari 8 bit = 1 byte menjadi 2 nibble = 1 byte
9. 9
Akhirnya pembahasan tentang decoding encoding with heksadesimal pun
selesai. Ini merupakan aplikasi yang lebih memudahkan kita selain daripada
penggunaan bilangan biner. Kedepannya mungkin akan ada aplikasi-aplikasi yang
lebih baru yang lebih memudahkan selain bilangan heksadesimal dalam pengiriman
ataupun penerimaan secret message, pengiriman dan penerimaan kode-kode
ataupun hal-hal lain.