Jumat, 21 Oktober 2016

Kapan Harus Menggunakan Heksadesimal Dalam Pemrograman ?


Sistem bilangan biner komputer yang seringkali mempersulit pemrogram. Sehingga bilangan yang direpresentasikan dalam bentuk biner tersebut perlu direpresentasikan dalam bentuk lain. Bentuk heksadesimal inilah yang salah satu yang umum digunakan untuk menyederhanakan representasi dan memudahkan keterbacaan kode.

Bilangan yang ditulis dalam bentuk biner lebih mudah digunakan saat hendak melakukan pemrograman yang erat kaitannya dengan fungsi logika, karena setiap digit akan nyata terlihat lebih jelas saat akan digunakan. Namun selanjutnya programmer akan kesulitan jika ternyata bilangan tersebut juga harus diproses secara matematis, ini karena bilangan biner sulit dan kurang efisien untuk dikonversikan secara manual ke dalam bentuk sistem bilangan lain.

Heksadesimal menjawab permasalahan tersebut. Sistem bilangan ini memiliki basis 16. Basis ini memliki bentuk dasar perpangkatan yang sejenis dengan bilangan biner (24 = 16). Dengan heksadesimal, setiap digit angka yang ditulis dapat merepresentasikan 4 digit bilangan biner. Tentu saja ini akan sangat membantu programmer yang berkutat dan menguras pikirannya untuk mengolah bilangan secara logika dan matematika. Berikut Ini adalah 16 digit representasi heksadesimal beserta persamaan representasinya dengan representasi biner dan desimal.

Heksadesimal
Biner
Desimal
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
A
1010
10
B
1011
11
C
1100
12
D
1101
13
E
1110
14
F
1111
15

Secara mendasar, semua sistem bilangan akan memiliki bentuk seperti ini..
m x bn + m x bn-1 + ... + m x b2 + m x b1 + m x b0
Dimana:
m = representasi digit dalam desimal
b = basis bilangan
n = pangkat yang menentukan bobot bilangan
Karena heksadesimal berbasis 16, maka angka FE12 dapat dikonversi seperti ini:

  FE12 => 15-14-1-2
= 15 x 163 + 14 x 162 + 1 x 161 + 2 x 15160
= ?

Penggunaan heksadesimal biasanya sering diterapkan pada akses memori dan manipulasi bit (bitwise operation). Dalam bitwise operation Angka heksadesimal dapat menyederhanakan representasi biner lebih mudah.

Katakanlah bilangan biner tersebut ditulis FFE1, dengan melihat tabel di atas kita bisa langsung menginterpretasikannya sebagai 1111 1111 1110 0001. Apalagi kalau kita hafal, akan sangat mudah menginterpretasikan maksud dari bilangan heksadesimal. Bayangkan jika bilangan ini direpresentasikan dengan desimal.

1111 1111 1110 0001(biner) = 65505(desimal).

Sulit kan membayangkan bentuk bit-bit nya?

Sementara itu, untuk mengakses memori, alamat yang digunakan juga lebih sering menggunakan heksadesimal daripada heksadesimal. Ini karena komputer memiliki sistem bilangan dasar biner, sehingga kurang efektif untuk membuat pengalamatan berbasis desimal. Heksadesimal lebih efektif karena dekat dengan sistem biner, karena memiliki basis angka berkelipatan 2.

Alasan lain juga karena sistem kerja memori masih erat kaitannya dengan mekanisme bitwise. Jadi jangan heran. Misalnya saja dalam mekanisme virtual memory yang sedang banyak diterapkan sekarang ini. Sebuah data 32-bit digunakan untuk menyimpan alamat physical (20 bit bagian kiri) dan dan permission (12 bit bagian kanan) dari alamat tersebut. Selanjutnya, alamat physical yang ditunjuk dengan menganggap 12-bit permission sebagai 0. Dalam mekanisme ini memori juga dibagi menjadi potongan 0x1000 (4096 byte).

0000 0000 0000 0000 0000 0000 0000 0000 = 0x00000000
0000 0000 0000 0000 0001 0000 0000 0000 = 0x00010000
0000 0000 0000 0000 0010 0000 0000 0000 = 0x00020000
0000 0000 0000 0000 0011 0000 0000 0000 = 0x00030000

Bayangkan jika menggunakan desimal...
0000 0000 0000 0000 0000 0000 0000 0000 = 0
0000 0000 0000 0000 0001 0000 0000 0000 = 4096
0000 0000 0000 0000 0010 0000 0000 0000 = 8192
0000 0000 0000 0000 0011 0000 0000 0000 = 12288

Merepotkan bukan?
Masih banyak alasan lain untuk lebih baik menggunakan heksadesimal dalam beberapa keperluan. Tapi, sepertinya saya sudah capek ngetiknya. :-)

Memang sebenarnya heksadesimal tidak diperuntukkan untuk menunjukkan jumlah yang masih berhubungan dengan kegiatan manusiawi, misalnya jumlah karyawan, jumlah pengguna online. Penggunaan heksadesimal lebih ke arah yang lebih internal ke komputer, misalnya harddisk, memori, ukuran data, dll.

TIPS: Saat bertemu bilangan heksadesimal, tak perlu mengonversi nilainya ke desimal sebelum mengolahnya. Jika tidak tahu cara menghitung dengan basis angka heksadesimal, gunakanlah program kalkulator.
Load disqus comments

0 comments