Wednesday, November 14, 2012

Binary, Octal, Decimal, Hexadecimal

Pada tulisan saya terdahulu [baca di sini] sudah dibahas mengenai konversi bilangan binary menjadi decimal, dan pada kesempatan ini saya akan membuka wawasan kita semua mengenai keunikan empat sistem bilangan yang digunakan komputer, yaitu Binary, Octal, Decimal, Hexadecimal.

Tulisan ini adalah untuk mengingatkan saya sendiri, dari pada dilupakan, tentang buku yang pernah saya baca untuk memahami digital electronic.

Bilangan Biner (Binary)

Binary adalah sistem bilangan yang terdiri dari hanya 2 bilangan sesuai namanya yaitu binary. Angka tersebut adalah 0 dan 1. Berikut adalah kutipan contoh pada tulisan saya terdahulu:

Katakan saja angka 458 decimal adalah 4x102 + 5x101 + 8x100Perhatikan angka pangkat berdasarkan harga tempatnya dimulai dari 0 dari sebelah paling kanan. Sekarang ada angka 101 binary jika dirubah menjadi decimal adalah 5 dengan perhitungan sebagai berikut: 1x22 + 0x21 + 1x20
Angka decimal adalah angka yang umum kita gunakan dalam kegiatan sehari-hari, dan sesuai namanya decimal hanya terdiri dari 10 angka 0 sd 9. Oleh karena itu penghitungan angka decimal adalah mengalikan setiap angka (contoh 458) dengan 10 dengan perbedaan pangkat sesuai harga tempatnya dimulai dari angka paling kanan dengan pangkat 0.

Lalu untuk mengkonversi angka binary menjadi decimal adalah dengan mengalikan semua angka dengan angka 2 dan tidak lupa pangkat berdasarkan harga tempat.
Sebuah angka binary 8 bit 11111111, jika dikonversikan ke dalam decimal adalah 255, dengan perhitungan sebagai berikut:
1x27 + 1x26 + 1x25 + 1x24 + 1x23 + 1x22 + 1x21 + 1x20   = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

Bilangan oktal (Octal)

Sesuai namanya bilangan octal terdiri dari delapan angka dari 0 sd 7, jadi angka 70 oktal tidaklah sama dengan 70 decimal. Untuk memahami angka octal, sama juga dengan memahami binary, yaitu dengan mengkonversi ke dalam decimal.
Contoh, mengubah 57 octal menjadi decimal adalah sebagai berikut:
 5x81 + 7x8  = 40 + 7 = 47


Bilangan heksadesimal (hexadecimal)

Bilangan heksadesimal terdiri dari 16 sesuai dengan nama sistem bilangan tersebut, terdiri dari 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Jadi apabila ditemukan sebuah kode warna seperti #ef0a9b, semua itu adalah angka. Heksadesimal memang sering ditemui pada pengkodean warna RGB seperti contoh di atas. Selain itu heksadesimal digunakan untuk menuliskan angka alamat IP v6, hal itu untuk memperpendek penulisan angka di mana jumlah data yang dituliskan akan terlalu panjang bila dituliskan dalam binary atau angka lainnya.

Contoh sebuah angka heksadesimal 9A jika dikonversikan menjadi desimal adalah:
 9x161 + 10x16  = 144 + 10 = 154
Semua angka dikalikan 16 karena angka heksadesimal terdiri dari 16 angka, dan tentu saja pangkat berlaku sesuai harga tempat seperti penghitungan biner dan oktal. A dalam heksadesimal adalah urutan urutan ke 10 pada desimal, oleh karena itu A dirubah menjadi 10.

Sekarang bagaimana angka kode warna seperti contoh di atas(#ef0a9b), tentu nilainya sangat besar dalam desmal? 
Kode warna RGB memiliki aturan syntax tersendiri dengan tanda # yang membuat kode itu dianggap sebagai kode RGB. Kode warna RGB adalah perpaduan warna Red, Green, dan Blue dengan masing-masing warna terdiri dari 8bit=256 warna. 
256 warna berarti variasi warna dari 0 sd 255, yang tentu saja masih kita ingat sebagai bilangan 8bit atau dalam biner 11111111. Warna tertinggi dalam setiap warna kode RGB adalah 255 desimal yang bila dikonversi menjadi heksadesimal adalah FF, sehingga masing masing warna tidak lebih dari 2 angka, dan dari contoh di atas maka dapat dipahami sebagai #=anggap sebagai RGB, R=ef| G=0a| B=9b.

Untuk bersenang-senang, cobalah Anda hitung  kode RGB #ef0a9b ini.

Inti dari ide penulisan posting ini adalah menemukan keunikan sistem bilangan Binary, Octal, Decimal, Hexadecimal. Bilangan tersebut dapat dihitung dengan mudah dan dikonversi di antar mereka dengan cepat.

Sebuah bilangan desimal 250 bila dikonversi menjadi biner bisa dengan berbagai cara:

cara pertama:
Bagi angka tersebut (250) dengan 2, di mana hasil pembagian tersebut dibagi 2 lagi hingga tidak bisa dibagi 2.
250 : 2 = 125 sisa 0
125 : 2 = 62   sisa 1
62   : 2 = 31   sisa 0
31   : 2 = 15   sisa 1
15   : 2 = 7     sisa 1
7     : 2 = 3     sisa 1
3     : 2 = 1     sisa 1
1  

Tulislah bilangan yang tidak bisa dibagi 2 (1) berurutan ke atas dari sisa setiap pembagian, maka dihasilkan 11111010. Bila hasil sebuah pembagian angka desimal menjadi biner tidak terdiri dari 8 digit, maka tuliskan 0 di awal angka, di mana 0 tidak akan berarti apapun.

cara kedua:
kurangi angka desimal tersebut (250) dengan angka desimal hasil dari 2n terbesar yang mendekati angka tersebut.
perhatikan 1,2,4,8,16,32,64,128, dst
Setiap proses pengurangan yang terjadi, dituliskan angka 1, dan bila tidak maka tuliskan angka 0.
Mulailah pengurangan dengan 128, karena tidak mungkin 255 dikurangi 256. Lakukan terus hingga habis, maka akan didapat angka biner 11111010.

Kedua cara tersebut juga dapat diaplikasikan pada bilangan octal dan heksadesimal dengan sederhana.

250 desimal menjadi oktal :

cara pertama
250 : 8 = 31 sisa 2
31   : 8 = 3   sisa 7
3
maka 250 desimal adalah 372 oktal

cara kedua
perhatikan 8,64,512, dst
250 - (64 x 3) = 58
58   - (8 x 7)   = 2
2


250 desimal menjadi heksadesimal:

cara pertama
250 : 16 = 15 sisa 10
15
15 adalah F dan 10 adalah A
maka 250 desimal adalah FA heksadesimal

cara kedua
perhatikan 16, 256, dst
250 - (16 x 15) = 10
10


Cara Unik

Ada cara unik pengkonversian dari sistem bilangan di atas, yang tentu lebih mudah dan cepat. Untuk lebih jelasnya kita akan menggunakan lagi 250 desimal sebagai contoh.

250 desimal adalah 11111010 dalam biner.
coba kita pisahkan angka-angka biner tersebut menjadi masing-masing 4 digit dari belakang, menjadi 1111   1010

1111 = 15 dalam desimal atau F dalam heksadesimal
1010 = 10 dalam desimal atau A dalam heksadesimal
maka dengan mudah mengkonversi biner menjadi heksadesimal dengan cara memisahkan masing-masing 4 digit dari bilangan biner itu. 

Mengapa 4 digit? Perhatikan bahwa mengkonversi biner ke dalam desimal adalah dengan mengalikan masing-masing angkanya dengan 2, di mana n adalah pangkat sesuai harga tempat. Berapakah n untuk  2n=16? n = 4.

Lalu apakah hal itu dapat diaplikasikan pada bilangan oktal? Mari kita coba

250 desimal adalah 11111010 dalam biner.
coba kita pisahkan angka-angka biner tersebut menjadi masing-masing 3 digit dari belakang, menjadi  11 111 010

11  = 3 
111= 7
010= 2

Silakan mencoba :)

5 comments:

  1. Anonymous4:13 AM

    Kalau kebalikannya ?

    ReplyDelete
  2. kebalikannya yang mana ya? kalau heksadesimal ke biner?
    contoh:
    misal heksa EF
    biner?
    jadikan desimal E=14, F=15
    biner dari 14=1110 dan 15=1111
    coba tuliskan 11101111

    ReplyDelete
  3. nice info :)
    Terimakasih

    ReplyDelete
    Replies
    1. sama-sama
      makasih udah mampir

      Delete
  4. misi pak numpang lewat.... wkwk :D

    ReplyDelete