Tugas Dasar Digital

19
LAPORAN TUGAS MATA KULIAH DASAR DIGITAL PROGRAM KONVERSI BILANGAN DECIMAL KE BINNER, OCTAL DAN HEXADECIMAL DAN BINNER KE DECIMAL, OCTAL DAN HEXADECIMAL Oleh Kelompok 4: AGAM RAMADHAN (090170013) DONI IRAWAN (090170022) MUHAMMAD FAUZI (090170045) MUHAMMAD REZA (090170005) EKA SUSANTI (090170012 ) NURLINA (090170040) PRODI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MALIKUSSALEH 1

Transcript of Tugas Dasar Digital

Page 1: Tugas Dasar Digital

LAPORAN TUGAS MATA KULIAH DASAR DIGITAL

PROGRAM KONVERSI BILANGAN DECIMAL KE BINNER, OCTAL DAN HEXADECIMAL

DANBINNER KE DECIMAL, OCTAL DAN HEXADECIMAL

Oleh Kelompok 4:

AGAM RAMADHAN (090170013)

DONI IRAWAN (090170022)

MUHAMMAD FAUZI (090170045)

MUHAMMAD REZA (090170005)

EKA SUSANTI (090170012 )

NURLINA (090170040)

PRODI TEKNIK INFORMATIKA FAKULTAS TEKNIK

UNIVERSITAS MALIKUSSALEH

1

Page 2: Tugas Dasar Digital

BAB IPENDAHULUAN

1. Sistem BilanganBanyak sistem bilangan yang dapat dan telah dipakai dalam melaksanakan

perhitungan. Tetapi ada sistem bilangan yang sudah jarang dipakai ataupun tidak dipakai lagi sama sekali dan ada pula sistem bilangan yang hanya dipakai pada hal-hal tertentu saja. Sistem bilangan limaan (quinary) dipergunakan oleh orang Eskimo dan orang Indian di Amerika Utara zaman dahulu. Sistem bilangan Romawi yang sangat umum dipakai pada zaman kuno, kini pemakaiannya terbatas pada pemberian nomor urut seperti I untuk pertama, II untuk kedua, V untuk kelima dan seterusnya; kadang-kadang dipakai juga untuk penulisan tahun seperti MDCCCIV untuk menyatakan tahun 1804. Sistem bilangan dua belasan (duodecimal) sampai kini masih banyak dipakai seperti 1 kaki = 12 Inci, 1 lusin = 12 buah dan sebagainya. Namun yang paling umum dipakai kini adalah sistem bilangan puluhan (decimal) yang kita pakai dalam kehidupan sehari-hari. Karena komponen-komponen komputer digital yang merupakan sistem digital bersifat saklar (switch), sistem bilangan yang paling sesuai untuk komputer digital adalah sistem bilangan biner (binary). Keserdehanaan pengubahan bilangan biner ke bilangan oktal atau heksadesimal dan sebaliknya, membuat bilangan oktal dan heksadesimal juga banyak dipakai dalam dunia komputer, terutama dalam hubungan pengkodean. Bilangan Biner, Oktal dan Heksadesimal akan dibahas dalam bab ini didahului dengan pembahasan singkat tentang bilangan desimal sebagai pengantar. Beberapa sistem bilangan :- Bilangan Desimal adalah bilangan yang memiliki basis 10

Bilangan tersebut adalah 0,1, 2, 3, 4, 5, 6, 7, 8, 9 (r = 10)- Bilangan Biner

Bilangan biner adalah bilangan yang memiliki basis 2Bilangan tersebut adalah 0 dan 1 (r = 2)

- Bilangan OktalBilangan oktal adalah bilangan yang memiliki basis 8 Bilangan tersebut adalah 0, 1, 2, 3, 4, 5, 6, 7 (r = 8)

- Bilangan HeksadesimalBilangan heksadesimal adalah bilangan yang memiliki basis 16Bilangan tersebut adalah 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E dan F (r = 16)

2. Konversi Bilangan- Konversi Bilangan Desimal ke Bilangan Biner

Nilai bilangan desimal dibagi dengan 2, pembacaan nilai akhir hasil pembagian dan urutan sisa hasil pembagian adalah bentuk bilangan biner dari nilai desimal.Contoh :Ubah bilangan desimal 9 ke bentuk bilangan biner.Jawab :

9/2 = 4 sisa 14/2 = 2 sisa 02/2 = 1 sisa 0

2

Page 3: Tugas Dasar Digital

1/2 = 0 sisa 1Maka hasil konversi tersebut adalah : 1001

- Konversi Bilangan Biner ke Bilangan DesimalSetiap urutan nilai bilangan biner dijumlahkan, dengan terlebih dahulu nilai biner tersebut dikalikan bobot bilangan biner masing-masing.Contoh :Ubah bilangan biner 1001 ke dalam bilangan desimalJawab : (1 x 23) + (0 x 22) + (0 x 21) + (1 x 20) =(1 x 8) + (0 x 4) + (0 x 2) + (1 x 1) =8 + 0 + 0 + 1 = 9Jadi hasil konversi bilangan biner 1001 adalah 9 desimal

- Konversi Bilangan Desimal ke Bilangan HeksadesimalNilai bilangan desimal dibagi dengan 16, pembacaan nilai akhir hasil pembagian dan urutan sisa hasil pembagian adalah bentuk bilangan Heksadesimal dari nilai desimal.Contoh :Ubah bilangan desimal 3409 ke dalam bilangan HeksadesimalJawab :

3409/16 = 213 sisa 1 = 1213/16 = 13 sisa 5 = 513/16 = 0 sisa 13 = D

Maka hasil konversi bilangan desimal 3409 adalah D51 Heksa

- Konversi Biner ke HeksadesimalPengelompokan setiap empat digit bilangan biner.Setiap kelompok akan menandakan nilai heksa daei bilangan tersebut.Contoh : Ubahlah bilangan biner 10011110101 ke dalam bilangan heksaJawab :

0100 1111 0101 4 F 5

Jadi, hasil konversi bilangan biner 10011110101 adalah 4F5

- Konversi Desimal ke Bilangan OktalNilai bilangan desimal dibagi dengan 8, pembacaan nilai akhir hasil pembagian dan urutan sisa hasil pembagian adalah bentuk bilangan oktal dari nilai desimal.Contoh :Ubah bilangan desimal 529 ke dalam bilangan oktalJawab :

529/8 = 66 sisa 166/8 = 8 sisa 28/8 = 1 sisa 0

3

Page 4: Tugas Dasar Digital

1/8 = 0 sisa 1Jadi hasil konversi bilangan desimal 529 adalah 1021 oktal

- Konversi Bilangan Biner ke Bilangan OktalPengelompokan setiap tiga digit bilangan biner.Setiap kelompok akan menandakan nilai oktal dari bilangan tersebut.Contoh :Ubahlah bilangan biner 11110011001 ke dalam bilangan oktalJawab :

011 110 011 001 3 6 3 1

Jadi hasil konversi bilangan biner 11110011001 adalah 3631

4

Page 5: Tugas Dasar Digital

1

2

3 4 5

6

7

8

BAB IISOURCE CODE PROGRAM KONVERSI BILANGAN

Keterangan (dalam source code) :

1. rg_input (0 = Decimal, 1 = Biner)2. ed_input3. btn_proses4. button25. button16. ed_output7. rg_output (0 = Decimal, 1 = Biner, 2 = Octal, 3 = Desimal)8. btn_about

Source code yang kami buat untuk program ini adalah menggunakan Borland Delphi 7.0, berikut source kodenya :

const BinArray: array[0..15, 0..1] of string =

(('0000', '0'), ('0001', '1'), ('0010', '2'), ('0011', '3'),

('0100', '4'), ('0101', '5'), ('0110', '6'), ('0111', '7'),

('1000', '8'), ('1001', '9'), ('1010', 'A'), ('1011', 'B'),

('1100', 'C'), ('1101', 'D'), ('1110', 'E'), ('1111', 'F'));

var a:array[1..99] of word;

i,k,d:word;

s,s1,s2,s3:string;

p:extended;

5

Page 6: Tugas Dasar Digital

KONVERSI DESIMAL KE BINER, OCTAL, DAN HEXADESIMAL

Konversi Bilangan Desimal ke Bilangan Bilangan Biner

if rg_input.ItemIndex =0 then

begin

if rg_output.ItemIndex =1 then

begin

ed_output.Clear;

d:=strtoint(ed_input.Text);

k:=0;

While d>=2 do

begin

k:=k+1;

a[k]:=d mod 2;

d:=d div 2;

end;

k:=k+1;

a[k]:=d;

for i:=k downto 1 do

ed_output.Text:=ed_output.text+inttostr(a[i]);

end;

Konversi Bilangan Desimal ke Bilangan Octal

if rg_output.ItemIndex =2 then

begin

ed_output.Clear;

ed_output.Clear;

d:=strtoint(ed_input.Text);

k:=0;

While d>=8 do

begin

k:=k+1;

a[k]:=d mod 8;

d:=d div 8;

end;

k:=k+1;

a[k]:=d;

for i:=k downto 1 do

ed_output.Text:=ed_output.text+inttostr(a[i]);

end;

6

Page 7: Tugas Dasar Digital

Konversi Bilangan Desimal ke Bilangan Hexadesimal

if rg_output.ItemIndex = 3 then

begin

ed_output.Clear;

ed_output.Clear;

d:=strtoint(ed_input.Text);

k:=0;

While d>=16 do

begin

k:=k+1;

a[k]:=d mod 16;

d:=d div 16;

end;

k:=k+1;

a[k]:=d;

for i:=k downto 1 do

begin

case a[i] of

10:s:='A';

11:s:='B';

12:s:='C';

13:s:='D';

14:s:='E';

15:s:='F';

else

s:=inttostr(a[i]);

end;

ed_output.Text:=ed_output.Text+s;

end;

end;

end;

7

Page 8: Tugas Dasar Digital

KONVERSI BINER KE DESIMAL, OCTAL, DAN HEXADESIMAL

Konversi Bilangan Biner ke Desimal

if rg_input.ItemIndex =1 then

begin

if rg_output.ItemIndex =0 then

begin

s:=ed_input.Text ;

d:=Length(s);

p:=0;

for i:=1 to d do

if (s[i]='0')or(s[i]='1') then

p:=p+Power(2, d-i)*StrToInt(s[i]);

ed_output.Text:=floattostr(p);

end;

Konversi Bilangan Biner ke Octal

if rg_output.ItemIndex = 2 then

begin

ed_output.Clear;

s:=ed_input.text;

case Length(s) mod 3 of

1: s:='00'+s;

2: s:='0'+s;

end;

while length(s) > 0 do

begin

s1:=Copy(s, Length(s)-2, 3);

Delete(s, Length(s)-2, 3);

p:=0;

for i:=1 to 3 do

p:=p+strtoint(s1[i]) * power(2,3-i);

s2:=s2+floattostr(p);

end;

for i:=1 to length(s2) do

8

Page 9: Tugas Dasar Digital

s3 :=s3 +s2[length(s2)-i+1];

ed_output.Text :=s3;

end;

Konversi Bilangan Biner ke Hexadesimal

if rg_output.ItemIndex =3 then

begin

ed_output.Clear;

s:=ed_input.Text ;

for i:=1 to Length(s) do

case Length(s) mod 4 of

1: s:='000'+s;

2: s:='00'+s;

3: s:='0'+s;

end;

while Length(s)>0 do

begin

s2:=Copy(s, Length(s)-3, 4);

Delete(s, Length(s)-3, 4);

for i:=1 to 16 do

if s2=BinArray[i-1, 0] then

ed_output.Text :=BinArray[i-1, 1]+ed_output.Text ;

end;

BAB III

ALUR PROGRAM

1. Konversi Bilangan Desimal ke Biner

- a : array [1..99] of word → memberikan nilai array dengan

jangkauan dari 1 sampai 99

- d := strtoint (ed_input.text); → masukkan nilai (bilangan desimal)

yang di source kode ini diberi variabel d

- k := 0 → memberikan nilai variabel k sementara = 0

9

Page 10: Tugas Dasar Digital

falsetrue

- while d >= 2 do begin → perulangan menggunakan while do untuk d >= 2

k := k + 1; → nilai k menjadi 0 + 1 = 1 dan seterusnya

a [k] := d mod 2; → menyimpan array untuk indeks k yang berisikan nilai d

mod 2 (sisa hasil bagi 2)

d := d div 2; → nila d menjadi d div 2 (hasil bagi 2)

end;

perulangan tersebut akan berhenti ketika d < 2 & dilanjutkan ke code berikutnya

- k := k + 1; → nilai k menjadi bertambah 1 lagi

- a [k] := d; → menyimpan array untuk indeks k yang berisikan nilai d

- for i = k downto do ed_output.text := ed_output.text + inttostr (a[i]); → Menampilkan nilai a [i] (nilai yang dhasilkan merupakan

nilai binner dari masukkan nilai tadi).

- end; → akhir program

10

Akhir

Mulai

a : array [1..99]of word

Masukkan nilai (d)

K = 0

Whiled >= 2

K = k + 1 K = k + 1

a [k] = d mod 2

d = d div 2

a [k] = d

For i = k downto 1

Cetak a [i]

Akhir

Page 11: Tugas Dasar Digital

2. Konversi Bilangan Desimal ke Oktal

Untuk alur bilangan octal sama juga dengan alur bilangan binner hanya saja untuk code bilangan octal :

- while d >= 2 do begin diganti menjadi while d >= 8 do

- a [k] := d mod 2; diganti menjadi a [k] := d mod 8;

- d := d div 2; diganti menjadi d := d div 8;

3. Konversi Bilangan Desimal ke Hexadesimal

Untuk alur bilangan octal sama juga dengan alur bilangan binner hanya saja untuk code bilangan octal :

- while d >= 2 do begin diganti menjadi while d >= 16 do

- a [k] := d mod 2; diganti menjadi a [k] := d mod 16;

- d := d div 2; diganti menjadi d := d div 16;

namun setelah for i:=k downto 1 do ditambahkan

begin

case a[i] of

10:s:='A';

11:s:='B';

12:s:='C';

13:s:='D';

14:s:='E';

15:s:='F';

else

s:=inttostr(a[i]);

end;

4. Konversi Bilangan Biner ke Desimal

if rg_input.ItemIndex =1 then → memilih menu biner

begin

if rg_output.ItemIndex =0 then → memilih konversi ke decimal

begin

11

Page 12: Tugas Dasar Digital

s:=ed_input.Text; → masukkan nilai

d:=Length(s); → menghitung panjang karakter dari masukkan (s)

p:=0; → memberi nilai sementara p = 0

for i:=1 to d do

if (s[i]='0')or(s[i]='1') then → mencari apakah nilai dalam masukkan

s tadi, mengandung angka 1 dan 0 karena bilangan biner menggunakan angka 1 dan 0

p:=p+Power(2, d-i)*StrToInt(s[i]); → proses bilangan desimal ke biner

ed_output.Text:=floattostr(p); → menampilkan hasil proses berupa bilangan

desimal

end; → akhir proses konversi dari biner ke decimal

12

Mulai

Masukkan (s)

d:=Length(s);p := 0

for i:=1 to d do

if (s[i]='0')or(s[i]='

1')

p :=p+Power(2, d-i) * StrToInt(s[i]);

ed_output.Text:=floattostr(p);

Akhir

Page 13: Tugas Dasar Digital

5. Konversi Bilangan Biner ke Oktal

if rg_output.ItemIndex = 2 then → memilih konversi ke Oktal

begin

ed_output.Clear;

s:=ed_input.text; → masukkan (s)

case Length(s) mod 3 of → jika panjang karakter habis dibagi 3

1: s:='00'+s;

2: s:='0'+s;

end;

while length(s) > 0 do → jika panjang karakter > 0 maka perulangan dilakukan

begin

s1:=Copy(s, Length(s)-2, 3); → mengcopy sementara masukkan (s) setelah

dikurang 2 dan pada posisi yang ke 3

Delete(s, Length(s)-2, 3); mendelete masukkan (s) setelah dikurang 2 dan

pada posisi yang ke 3

p:=0;

for i:=1 to 3 do

p:=p+strtoint(s1[i]) * power(2,3-i); → proses ke bentuk oktal

s2:=s2+floattostr(p); → menyimpan nilai s2 sementara

end;

for i:=1 to length(s2) do

s3 :=s3 +s2[length(s2)-i+1]; → menyimpan nila oktal

ed_output.Text :=s3; → menampilkan hasil proses bilangan biner menjadi oktal

end; → akhir

13

Page 14: Tugas Dasar Digital

6. Konversi Bilangan Biner ke Hexadesimal

if rg_output.ItemIndex =3 then → memilih konversi ke hexadecimal

begin

ed_output.Clear;

s:=ed_input.Text ; → masukkan (s)

for i:=1 to Length(s) do → perulangan terhadap panjang karakter (s)

case Length(s) mod 4 of→ case panjang karakter tersebut jika habis dibagi 4

1: s:='000'+s;

2: s:='00'+s;

3: s:='0'+s;

end;

while Length(s)>0 do → melakukan perulangan jika panjang karakter > 0

begin

s2:=Copy(s, Length(s)-3, 4); → mengcopy sementara masukkan (s) setelah

dikurang 3 dan pada posisi yang ke 4

Delete(s, Length(s)-3, 4); → mendelete masukkan (s) setelah dikurang 3

dan pada posisi yang ke 4

for i:=1 to 16 do → melakukan perulangan ke 16

if s2=BinArray[i-1, 0] then → menyimpan sementara s2 dengan array

BinArray yang telah di deklarasikan nilainya sebelumnya

ed_output.Text :=BinArray[i-1, 1]+ed_output.Text ; →

menampilkan hasil proses konversi biner ke hexadecimal

end; → akhir program

14