Anda di halaman 1dari 16

Konversi Bilangan

Konversial bilangan merupakan topik yang cukup penting dalam pemrograman


mikroprosesor. Dalam bab ini akan dibahas metoda konversial antara bilangan heksadesimal dan
desimal. Topik ini dipilih mengingat hampir seluruh data yang kita miliki dinyatakan dalam sistem
bilangan desimal sedangkan mikroprosesor bekerja dengan sistem bilangan biner komplemen dua.
Dengan banyaknya jumlah digit yang dipergunakan pada sistem bilangan biner komplemen dua, maka
dalam pemrograman dengan bahasa rakitan (assembly) umumnya dipergunakan sistem bilangan
heksadesimal komplemen enam belas.

Jadi agar data-data desimal yang kita miliki dapat diproses dalam suatu mikroprosesor perlu
adanya program untuk mengubah bilangan desimal tersebut ke dalam bilangaan heksadesimal. Dan
agar hasil pengolahan data yang dilakukan mikroprosesor dapat dimengerti, perlu adanya program
untuk mengubah data heksadesimal ke dalam data desimal.

Sasaran belajar

Setelah melakukan percobaan-percobaan pada bab ini, saudara diharapkan mampu :

 Membuat program untuk mengubah data desimal menjadi data heksadesimal.


 Membuat program untuk mengubah data heksadesimal menjadi desimal.

Peralatan yang digunakan

 Komputer
 ASCII keyboard

Teori penunjang

Dalam pemrograman dengan bahasa assembly (bahasa rakitan) konversial bilangan


merupakan salah satu topik yang penting. Bilangan desimal merupakan bilangan standar yang
dipergunakan secara umum menyatakan kuantitas suatu data. Masalah mikroprosesor INTEL 8085
tidak bekerja dalam sistem bilangan desimal akan tetapi dalam bilangan biner komplemen dua.
Dengan demikian operasi-operasi aritmatika yang dilakukan di dalam mikroprosesor 8085 harus
menggunakan sistem bilangan biner komplemen dua. Sayangnya, sistem bilangan biner tidak praktis
untuk dipergunakan dalam penulisan kode operasi karena melibatkan jumlah digit yang panjang. Hal
ini membuat penulisan program menjadi suatu pekerja yang membosankan dan memerlukan waktu
yang relatif lama. Untuk menghindari hal tersebut maka dalam penulisan kode operasi maupun data
input dipergunakan sistem bilangan heksadesimal. Dalam hal ini tentukan dipilih sistem komplemen
16.

Konversial bilangan dari sistem bilangan desimal ke heksadesimal sangat diperlukan


mengingat semua data yang kita miliki tersedia dalam sistem bilangan desimal sedangkan mesin
hanya mengenal sistem bilangan biner komplemen dua (sistem bilangan heksadesimal komplemen
enam belas). Sebaliknya konversi bilangan dari sistem bilangan heksadesimal ke desimal juga sangat
penting mengingat data output yang dihasilkan oleh mikroprosesor masih dalam sistem bilangan
heksadesimal sedangkan kita memerlukan data output dalam sistem bilangan desimal . mengingat
pentingnya masalah konversi bilangan antara sistem bilangan desimal dan heksadesimal, maka pada
percobaan kali ini saudara akan membuat program konversi dari sistem bilangan desimal ke
heksadesimal dan juga konversi dari sistem bilangan heksadesimal ke desimal.

Konversi dara heksadesimal ke desimal

Untuk mengubah suatu bilangan heksadesimal menjadi bilangan desimal salah satu cara yang
dapat dipergunakan adalah dengan memperhitungkan bobot angka dari digit masing-masing pada
bilangan heksadesimal tersebut.

Contoh 8.1

Untuk megubah bilangan heksadesimal 5A dapat dilakukan dengan mengalikan bobot angka
darimasing-masing digit heksadesimal tersebut sehingga diperoleh 5 x 16 1 + 10 x 160 atau (5 x 16) +
(10 x 1) yang nilainya sama dengan 90 dalam sistem bilangan desimal.

Metoda konversi yang dipergunakan pada contoh 8.1 di atas dapat juga dipergunakan untuk
membuat program konversi yang dapat mengubah data-data dari bentuk heksadesimal menjadi
desimal. Jika metoda tersebut yang akan dipergunakan, maka pertama-pertama digit satuan (A atau
10) dan digit enam belasan (5 atau 05) harus dipisahkan.

Kemudian digit enam belasan harus dikalikan dengan faktor pengali 16 dan hasil
perkaliannya harus ditambahkan pada digit satuan yang telah diubah ke dalam desimal. Dalam
program konversi tersebut yang perlu diperhatikan adalah proses mengalikan digit enam belasan
dengan faktor pengali enam belas tadi mengingat hasil perkalian yang diinginkan adalah dalam sistem
bilangan desimal.

Mengalikan suatu bilangan dengan faktor pengali 16 sebenarnya sama saja dengan
mengalikan bilangan tersebut dengan faktor pengali 2 sebanyak empat kali (Y x 16 = (Y x 2 x 2 x 2 x
2 = 16Y)). Jadi jika suatu bilangan digandakan sebanyak empat kali pengaruhnya sama saja dengan
mengalikan bilangan tersebut harus dilaksanakan sedemikian rupa, sehingga hasilnya dinyatakan
dalam sistem bilangan desimal yaitu dengan menggunakan instruksi DAA pada akhir setiap proses
penggandaan.

Koversi data desimal ke heksadesimal

Untuk mengubah suatu bilangan desimal menjadi bilangan heksadesimal dapat dilakukan
dengan membagi bilangan tersebut dengan faktor pembagi 16. Hasil koversi diperoleh pada proses
pembagian terkhir. Masalahnya adalah dalam mikroprosesor 8085 tidak ada instruksi pembagian.
Oleh karena itu proses pembagian harus dilakukan dengan metoda pengurungan berantai yang
caranya cukup rumit.

Cara lain yang dapat ditempuh dan lebih sederhana adalah dengan memperhitungkan bobot
angka dari bilangan desimal yang akan dikonversikan ke bilang heksadesimal tersebut. Misalkan
untuk mengubah bilangan desimal dua digit 47 ke dalam bilangan heksadesimal, caranya adalah
dengan menglikan digit puluhan faktor pengali 10 kemudian menambahkan hasil kali yang diperoleh
dengan digit satuan (47 = 4 x 10 + 7).

Jadi untuk membuat program konversi bilangan desimal ke heksadesimal yang pertama-tama
perlu dilakukan adalah memisahkan antara digit satuan dan digit puluhan. Kemudian mengalikan digit
puluhan dengan faktor pengali 10 dan menambahkan digit satuan pada hasil perkalian tersebut. Yang
perlu diperhatikan dalam proses konversi bilangan tersebut adalah car mengalikan digit puluhan
dengan faktor pengali 10 perlu dicari cara lain, karena dalam mikroprosesor 8085 tidak ada instruksi
perkalian. Salah satu cara yang dapat ditempuh adalah dengan menggunakan faktor pengali 8 dan
faktor pengali 2.

Jika suatu bilangan dikalikan dengan faktor pengali 10 sama saja pengaruhnya dengan
menjumlahkan hasil kali bilangan tersebut dengan faktor pengali 2 dan faktor pengali 8. Dalam
matematika T x 10 = (T x 2) + (T x8).

Langkah-langka percobaan dan latihan

Pada bab 8 ini terdapat dua buah percobaan, yaitu :

A. Membuat dan menguji program untuk mengubah data desimal ke heksadesimal.

B. Membuat dan menguji program untuk mengubah data heksadesimal ke desimal

A. Mengubah data desimal menjadi data heksadesimal\

A.1 Buatlah bagan alir dan program untuk megubah data desimal yang berada dalam blok memori
alamat F000h sampai F00Fh menjadi data heksadesimal. Simpan hasilnya pada blok memori
alamat F100h sampai F10Fh. Tulis program tersebut muali alamat 7000h.
A.2 Bagan alir untuk langkah A.1 adalah :

Start

HL = F000H
A = A + 00H A TO (BCD)

DE = F100H
<< A A=A+A

C = 10H << A A TO (BCD)

A  M (HL) << A A=A+B

A = A AND 00H A=A+A A TO (BCD)

A = A + 00H A TO (BCD) DE A

A TO (BCD) A=A+A
HL = HL + 1

A  M (HL) A TO (BCD) DE = DE + 1

YES
A=A+A C=C-1

NO

END
A.3 Program untuk langkah A.1 adalah sebagai berikut :

ALAMAT KODE OPERASI LABEL MNEMONIK

7000 ORG 7000h


70__ 21 00 F0 LXI H,0F000H
70__ 11 00 F1 LXI D, 0F100H
70__ 0E 10 MVI C,10H
70__ 7E LOOP: MOV A,M
70__ E6 F0 ANI 0F0H
70__ C6 00 ADI 00H
70__ 27 DAA
70__ 7E MOV A, M
70__ C6 00 ADI 00H
70__ 1F RAR
70__ 1F RAR
70__ 1F RAR
70__ 1F RAR
70__ 87 ADD A
70__ 27 DAA
70__ 87 ADD A
70__ 27 DAA
70__ 87 ADD A
70__ 27 DAA
70__ 87 ADD A
70__ 27 DAA
80 ADD B
27 DAA
12 STAX D
23 INX H
13 INX D
0D DCR C
C2 08 70 JNZ LOOP
76 HLT
END
ORG 0F00H
DB 00H, 03H, 14H, 17H
DB 22H, 29H, 30H, 33H
DB 38H, 45H, 48H, 52H
DB 57H, 82H, 90H, 99H

A.4 Isilah blok memori alamat F000h sampai F00Fh dengan data-data desimal seperti yang ditunjuk
pada tabel 8.2

INPUT OUTPUT

Alamat Data Alamat data


F000 00 F100 00
F001 03 F101 80
F002 14 F102 32
F003 17 F103 12
F004 22 F104 44
F005 29 F105 20
F006 30 F106 96
F007 33 F107 76
F008 38 F108 12
F009 45 F109 68
F00A 48 F10A 44
F00B 52 F10B 40
F00C 57 F10C 40
F00D 82 F10D 40
F00E 90 F10E 92
F00F 99 F10F 48

A.5 Eksekusi program saudara, kemudian periksa dan catat data-data hasil konversi yang diperoleh
pada Tabel 8.2 kolom 4
Mengubah data heksadesimal menjadi data desimal

B.1 Buatlah bagan alir dan program untuk mengubah dara heksadesimal yang berada dalam
blok memori alamat F200h sampai F20Fh menjadi data desimal. Simpan hasilnya pada
blok memori alamat F300h sampai F30Fh. Tulis program tersebut mulai alamat 8000h.

B.2 Bagan alir untuk langkah B.1 adalah :


Start

HL = F200H
A = A + 00H A TO (BCD)

DE = F300H
<< A A=A+A

C = 10H << A A TO (BCD)

A  M (HL) << A A=A+B

A = A AND 00H A=A+A A TO (BCD)

A = A + 00H A TO (BCD) DE A

A TO (BCD) A=A+A
HL = HL + 1

A  M (HL) A TO (BCD) DE = DE + 1

YES
A=A+A C =C-1

NO

END

B.3 Program untuk langkah B.1 adalah :


KODE
ALAMAT LABEL MNEMONIK
OPERASI
8000 0RG 8000H
80__ 21 00 F2 LXI H,0F200H
80__ 11 00 F3 LXI D, 0F300H
80__ 0E 10 MVI C, 10H
80__ 7E LOOP MOV A, M
80__ E6 F0 ANI 0F0H
80__ C6 00 ADI 00H
80__ 27 DAA
80__ 7E MOV A.M
80__ C6 00 ADI 00H
80__ 1F RAR
80__ 1F RAR
80__ 1F RAR
80__ 1F RAR
80__ 87 ADD A
80__ 27 DAA
80__ 87 ADD A
80__ 27 DAA
80__ 87 ADD A
80__ 27 DAA
80__ 87 ADD A
80__ 27 DAA
80 ADD B
27 DAA
12 STAX D
23 INX H
13 INX D
0D DCR C
C2 08 70 LNZ LOOP
76 HLT
END
ORG 0F20H
DB 00H, 03H, 14H, 1CH
DB 2BH, 29H, 30H, 3FH
DB 38H, 45H, 4DH, 52H
DB 5AH, 8FH, 60H, 63H

B.4 Isilah blok memori alamat F200h sampai F20Ah dengan data-data heksadesimal seperti yang
ditunjukkan pada Tabel 8.4.

INPUT OUTPUT

Alamat Data Alamat data


F200 00 F300 00
F201 03 F301 80
F202 14 F302 32
F203 1C F303 48

F204 2B F304 60
F205 29 F305 20
F206 30 F306 96
F207 3F F307 92
F208 38 F308 12
F209 45 F309 68
F20A 4D F30A 84
F20B 52 F30B 40
F20C 5A F30C 44
F20D 8F F30D 16
F20E 60 F30E 68
F20F 63 F30F 48

B.5 Eksekusi saudara, kemudian periksa dan catat data-data hasil konversi yang diperoleh
pada Tabel 8.4 kolom 4.
B.6 Jelaskan perubahan apa yang perlu dilakukan apabila program di atas akan
dipergunakan untuk mengubah data-data heksadesimal yang nilainya lebih besar dari
63h.

Kesimpulan dan Saran

Berdasarkan seluruh hasil percobaan Pada bab ini, tuliskan kesimpulan dan sara-saran
saudara.
A.
B.
Analisa
Setelah kita melakukan praktikum pada konversi bilangan kita dapat menganalisa
bahwa konversi bilangan ini kita gunakan untuk nengkonvesikan dalam bentuk
desimal ke bentuk heksadesimal atau pun dalm bentuk heksadesimal ke bentuk
desimal.
Seperti rogram yang telah kita jalankan
Untuk mengubah bilangan heksadesimal 5A, dapat dilakukan dengan mengalikan
bobot angka dari masing-masing digit heksadesimal tersebut hingga diperoleh:
5 x 16 + 10 X 16 atau (15 x 16) + (10 x 1) yang nilainya sama dengan 90 dalam
system bilangan decimal. dipergunakan untuk membuat program konversi yang dapat
mengubah data-data dari bentuk hexadecimal menjadin decimal. Jika metode tersebut
yang akan dipergunakan, maka pertama-tama digit satuan (A atau 10) dan digit enam
belas (5 atau 05) harus dipisahkan.

Dan kita juga mengunakan instruksi DAA àdigunakan sebagai instruksi desimal.
RAR à diputar untuk melibatkan cary
ADD A à ( A ) ß ( A ) + ( B )
ADI 0f0H à ( A ) ß ( A ) AND 0F0H
Perintah ADI ini digunakan untuk mengisi data dengan F0H
Penggunan data yamg dijumlahkan dan dikurangkan.pada setiap praktikumyang telah
kita jalankan
Untuk mengubah bilangan decimal ke bilangan hexadecimal dapat dilakukan
dengan membagi bilangan tersebut dengan factor pembagi 16. Masalahnya adalah
dalam mikroprosesor 8085 tidak ada instruksi pembagian. Oleh karena itu proses
pembagian harus di lakukan dengan metode pengurangan berantai yang caranya
cukup rumit.
Jadi untuk membuat program konversi bilangan dari decimal ke hexadecimal
yang pertama tama perlu dilakukan adalah memisahkan antara digit satuan dan digit
puluhan. Kemudian mengalihkan digit puluhan dengan factor pengali 10 dan
menambahkan digit satuan pada hasil perkalian tersebut.
Jika suatu bilangan dikalikan dengan factor pengali 10 sama saja pengaruhnya
dengan menjumlahkan hasil kali bilangan tersebut dengan fktor pengali 2 dan factor
pengali 8. Dalam matematika T x 10 = (T x 2) + (T x 8).

8.6. Kesimpulan
Setelah kita menganalisa praktikum pengkonversi bilangan kita dapat menyimpulkan
bahwa konversi bilangan ini kita lakukan dengan mengubah bentuk data dari
heksadesimal dalam bentuk desimal, dan begitu juga dalam bentuk desimal ke bentuk
heksadesimal.
Konversi bilangan ini langsung Konversi bilangan daro bilangan sistem decimal ke
hexadecimal diperlukan mengingat semua data yang kita milikii tersedia dalam
sistem bilangan decimal, sedangkan mesin ganya mengenal sistem bilangan
komplemen dua ( sistem bilangan hexadecimal komplemen enam belas). Sebaiknya
konversi bilangan dari sistem bilangan hexadecimal ke decimal juga sangat penting
mengingat data output yang dihasilkan oleh mikroprosesor masih dalam sistem
bilangan decimal.

Anda mungkin juga menyukai