decoding encoding with heksadesimal
TRANSCRIPT
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
1
2
heksadesimal kita hanya menggunakan 4 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 +0x 21+1x 22+0x 23 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
3
langkah 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
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
5
kode biner dan mendapatkan hasil sebuah kata yaitu BYE. Bagaimana itu bisa
terjadi? 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
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
7
atau alphabet dari A-Z itu terdapat pada nilai 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
8
Spasi= 2 nibble
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
9
diterima. Kita sekarang mengetahui bahwa istilah selain dari 8 bit = 1 byte
menjadi 2 nibble = 1 byte
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.