Sebelum mengenal lebih jauh tentang
mikrokontroler, lebih baik kita pahami terlebih dahulu jenis-jenis bilangan
yang digunakan dalam pemrograman mikrokontroler yaitu bilangan Biner, Desimal,
Heksadesimal, dan Oktal.
Bilangan biner adalah bilangan yang hanya menggunakan 2 angka, yaitu 0 dan
1. Bilangan biner juga disebut bilangan berbasis 2. Setiap bilangan pada
bilangan biner disebut bit, dimana 1 byte = 8 bit.
Contoh penulisan : 1101112.
Bilangan desimal adalah bilangan yang menggunakan 10 angka mulai 0 sampai 9
berturut2. Setelah angka 9, maka angka berikutnya adalah 10, 11, 12 dan
seterusnya. Bilangan desimal disebut juga bilangan berbasis 10. Contoh
penulisan bilangan desimal : 1710. Ingat, desimal berbasis
10, maka angka 10-lah yang menjadi subscript pada penulisan bilangan
desimal.
Bilangan heksadesimal, atau bilangan heksa, atau bilangan basis 16, menggunakan
16 buah simbol, mulai dari 0 sampai 9, kemudian dilanjut dari A sampai F.
Jadi, angka A sampai F merupakan simbol untuk 10 sampai 15. Contoh penulisan :
C516.
Bilangan oktal adalah bilangan berbasis 8, yang menggunakan angka 0 sampai
7. Contoh penulisan : 178.
Saya langsung saja ambil sebuah
contoh bilangan desimal yang akan dikonversi ke biner. Setelah itu, akan
saya lakukan konversi masing2 bilangan desimal, biner, oktal dan heksadesimal.
Misalkan bilangan desimal yang ingin
saya konversi adalah 2510.
Maka langkah yang dilakukan adalah
membagi tahap demi tahap angka 2510 tersebut dengan 2,
seperti berikut :
25 : 2 = 12,5
Jawaban di atas memang benar, tapi
bukan tahapan yang kita inginkan. Tahapan yang tepat untuk melakukan proses
konversi ini sebagai berikut :
25 : 2 = 12 sisa
1. —–> Sampai disini masih mengerti kan?
Langkah selanjutnya adalah membagi
angka 12 tersebut dengan 2 lagi. Hasilnya sebagai berikut :
12 : 2 = 6 sisa
0. —–> Ingat, selalu tulis sisanya.
Proses tersebut dilanjutkan sampai
angka yang hendak dibagi adalah 0, sebagai berikut :
25 : 2 = 12 sisa 1.
12 : 2 = 6 sisa 0.
6 : 2 = 3 sisa 0.
3 : 2 = 1 sisa 1.
1 : 2 = 0 sisa 1.
0 : 2 = 0 sisa 0…. (end)
Nah, setelah didapat perhitungan
tadi, pertanyaan berikutnya adalah, hasil konversinya yang mana? Ya, hasil
konversinya adalah urutan seluruh sisa-sisa perhitungan telah diperoleh,
dimulai dari bawah ke atas.
Maka hasilnya adalah 0110012.
Angka 0 di awal tidak perlu ditulis, sehingga hasilnya menjadi 110012.
Lanjut…..sekarang saya akan
menjelaskan konversi bilangan desimal ke oktal.
Proses konversinya mirip dengan
proses konversi desimal ke biner, hanya saja kali ini pembaginya adalah 8.
Misalkan angka yang ingin saya konversi adalah 2510. Maka :
25 : 8 = 3 sisa 1.
3 : 8 = 0 sisa 3.
0 : 8 = 0 sisa 0….(end)
Hasilnya? Coba tebak…318!!!
Sekarang tiba waktunya untuk
mengajarkan proses konversi desimal ke heksadesimal…
Seperti biasa, langsung saja ke
contoh. Hehe…
Misalkan bilangan desimal yang ingin
saya ubah adalah 24310. Untuk menghitung proses konversinya,
caranya sama saja dengan proses konversi desimal ke biner, hanya saja kali ini
angka pembaginya adalah 16. Maka :
243 : 16 = 15 sisa 3.
15 : 16 = 0 sisa
F. —-> ingat, 15 diganti jadi F..
0 : 16 = 0 sisa 0….(end)
Nah, maka hasil konversinya adalah
F316. Mudah, bukan ?
Fiuh..Lanjut lagi…Sekarang kita
beralih ke konversi bilangan biner ke desimal. Proses konversi bilangan
biner ke bilangan desimal adalah proses perkalian setiap bit pada
bilangan biner dengan perpangkatan 2, dimana perpangkatan 2 tersebut berurut
dari kanan ke kiri bit bernilai 20 sampai 2n.
Langsung saja saya ambil contoh
bilangan yang merupakan hasil perhitungan di atas, yaitu 110012.
Misalkan bilangan tersebut saya ubah posisinya mulai dari kanan ke kiri menjadi
seperti ini.
1
0
0
1
1
Nah, saatnya mengalikan setiap bit
dengan perpangkatan 2. Ingat, perpangkatan 2 tersebut berurut mulai dari 20
sampai 2n, untuk setiap bit mulai dari kanan ke kiri. Maka :
1
——> 1 x 20 = 1
0
——> 0 x 21 = 0
0 ——>
0 x 22 = 0
1
——> 1 x 23 = 8
1
——> 1 x 24 = 16 —> perhatikan nilai
perpangkatan 2 nya semakin ke bawah semakin besar
Maka hasilnya adalah 1 + 0 + 0 + 8 +
16 = 2510.
Nah, bandingkan hasil ini dengan
angka desimal yang saya ubah ke biner di awal tadi. Sama bukan?
Sudah ini, sudah itu, sekarang….nah,
konversi bilangan biner ke oktal. hehe…siap?
Untuk merubah bilangan biner ke
bilangan oktal, perlu diperhatikan bahwa setiap bilangan oktal mewakili 3 bit
dari bilangan biner. Maka jika kita memiliki bilangan biner 1101112
yang ingin dikonversi ke bilangan oktal, langkah pertama yang kita lakukan
adalah memilah-milah bilangan biner tersebut, setiap bagian 3 bit, mulai
dari kanan ke kiri, sehingga menjadi seperti berikut :
110
dan
111
Sengaja saya buat agak berjarak,
supaya lebih mudah dimengerti. Nah, setelah dilakukan proses pemilah2an seperti
ini, dilakukan proses konversi ke desimal terlebih dahulu secara terpisah. 110
dikonversi menjadi 6, dan 111 dikonversi menjadi 7. Hasilnya kemudian
digabungkan, menjadi 678, yang merupakan bilangan oktal dari
1101112… 8)
“Tapi, itu kan kebetulan bilangan
binernya pas 6 bit. Jadi dipilah2 3 pun masih pas. Gimana kalau bilangan
binernya, contohnya, 5 bit?” Hehe…Gampang..Contohnya 110012.
5 bit kan? Sebenarnya pemilah2an itu dimulai dari kanan ke kiri. Jadi
hasilnya 11 dan 001. Ini kan sebenarnya sudah bisa masing2 diubah ke dalam
bentuk desimal. Tapi kalau mau menambah kenyamanan di mata, tambahin aja 1
angka 0 di depannya. Jadi 0110012. Tidak akan merubah hasil
perhitungan kok. Tinggal dipilah2 seperti tadi. Okeh?
Selanjutnya adalah konversi
bilangan biner ke heksadesimal.
Hmm…sebagai contoh, misalnya saya
ingin ubah 111000102 ke bentuk heksadesimal. Proses
konversinya juga tidak begitu rumit, hanya tinggal memilahkan bit2
tersebut menjadi kelompok2 4 bit. Pemilahan dimulai dari kanan ke kiri,
sehingga hasilnya sbb :
1110
dan 0010
Nah, coba lihat bit2
tersebut. Konversilah bit2 tersebut ke desimal terlebih dahulu satu
persatu, sehingga didapat :
1110 = 14
dan 0010 = 2
Nah, ingat kalau 14 itu dilambangkan
apa di heksadesimal? Ya, 14 dilambangkan dengan E16.
Dengan demikian, hasil konversinya
adalah E216.
Seperti tadi juga, gimana kalau
bilangan binernya tidak berjumlah 8 bit? Contohnya 1101012?
Yaa…Seperti tadi juga, tambahin aja 0 di depannya. Tidak akan memberi pengaruh
apa2 kok ke hasilnya. Jadi setelah ditambah menjadi 001101012.
Selanjutnya, sudah gampang kan?
Selanjutnya, konversi bilangan
oktal ke desimal. Hal ini tidak terlalu sulit. Tinggal kalikan saja setiap
bilangan dengan perpangkatan 8. Contoh, bilangan oktal yang akan dikonversi
adalah 718. Maka susunannya saya buat menjadi demikian :
1
7
dan proses perkaliannya sbb :
1 x 80 = 1
7 x 81 = 56
Maka hasilnya adalah penjumlahan 1 +
56 = 5710.
Habis konversi oktal ke desimal,
maka saat ini giliran oktal ke biner. Hehe..
Langsung ke contoh. Misalkan saya
ingin mengubah bilangan oktal 578 ke biner. Maka langkah yang
saya lakukan adalah melakukan proses konversi setiap bilangan tersebut masing2
ke 3 bit bilangan biner. Nah, angka 5 jika dikonversi ke biner
menjadi….? 1012. Sip. Nah, 7, jika dikonversi ke biner
menjadi…? 1112. Mantap. Maka hasilnya adalah 1011112.
Jamin benar deh….
Habis konversi oktal ke desimal,
maka saat ini giliran oktal ke biner. Hehe..
Langsung ke contoh. Misalkan saya
ingin mengubah bilangan oktal 578 ke biner. Maka langkah yang
saya lakukan adalah melakukan proses konversi setiap bilangan tersebut masing2
ke 3 bit bilangan biner. Nah, angka 5 jika dikonversi ke biner
menjadi….? 1012. Sip. Nah, 7, jika dikonversi ke biner
menjadi…? 1112. Mantap. Maka hasilnya adalah 1011112.
Jamin benar deh….
Hmm…berarti…sekarang giliran konversi
oktal ke heksadesimal.
Untuk konversi oktal ke
heksadesimal, kita akan membutuhkan perantara, yaitu bilangan biner. Maksudnya?
Maksudnya adalah kita konversi dulu oktal ke biner, lalu konversikan nilai
biner tersebut ke nilai heksadesimalnya. Nah, baik yang konversi oktal ke biner
maupun biner ke heksadesimal kan udah dijelaskan. Coba buktikan, bahwa bilangan
oktal 728 jika dikonversi ke heksadesimal menjadi 3A16.
Bisa kan? Bisa dong…
Selanjutnya adalah konversi
bilangan heksadesimal ke desimal.
Untuk proses konversi ini, caranya
sama saja dengan proses konversi biner ke desimal, hanya saja kali ini
perpangkatan yang digunakan adalah perpangkatan 16, bukan perpangkatan 2.
Sebagai contoh, saya akan melakukan konversi bilangan heksa C816
ke bilangan desimal. Maka saya ubah dulu susunan bilangan heksa tersebut, mulai
dari kanan ke kiri, sehingga menjadi sebagai berikut :
8
C
dan kemudian dilakukan proses
perkalian dengan perpangkatan 16, sebagai berikut :
8 x 160 = 8
C x 161 =
192 ——> ingat, C16 merupakan
lambang dari 1210
Maka diperolehlah hasil konversinya
bernilai 8 + 192 = 20010.
Tutorial berikutnya, konversi
dari heksadesimal ke biner.
Dalam proses konversi heksadesimal
ke biner, setiap simbol dalam heksadesimal mewakili 4 bit dari biner.
Misalnya saya ingin melakukan proses konversi bilangan heksa B716
ke bilangan biner. Maka setiap simbol di bilangan heksa tersebut saya konversi
terpisah ke biner. Ingat, B16 merupakan simbol untuk angka
desimal 1110. Nah, desimal 1110 jika
dikonversi ke biner menjadi 10112, sedangkan desimal 710
jika dikonversi ke biner menjadi 01112. Maka bilangan
binernya adalah 101101112, atau kalau dibuat ilustrasinya
seperti berikut ini :
B
7 —-> bentuk heksa
11
7 —-> bentuk desimal
1011
0111 —-> bentuk biner
Hasilnya disatukan, sehingga menjadi
101101112. Understood?
Yang terakhir adalah konversi
heksadesimal ke oktal.
Nah, sama seperti konversi oktal ke
heksadesimal, kita membutuhkan bantuan bilangan biner. Lakukan terlebih dahulu
konversi heksadesimal ke biner, lalu konversikan nilai biner tersebut ke oktal.
Sebagai latihan, buktikan bahwa nilai heksadesimal E716 jika
dikonversi ke oktal menjadi 3478. Hehe…Kamu bisa!!!
catatan :
Untuk bilangan Heksadesimal nilai 10
- 15 diganti dengan A - F, berikut ini tabel sakti untuk memudahkan dalam mengkonversi
bilangan diatas.
Posting Komentar