Minggu 3 Dasar Matematika

Bab 3: Sistem Bilangan & Representasi Data

Memahami sistem bilangan, konversi basis, representasi bilangan bertanda, dan operasi logika bitwise.

Capaian Pembelajaran Bab Ini

Setelah mempelajari bab ini, mahasiswa mampu mengkonversi bilangan antar basis (desimal, biner, oktal, heksadesimal), memahami representasi bilangan bertanda (sign-magnitude, 1's complement, 2's complement), dan mengenal representasi BCD dan ASCII.

3.1 Kenapa Sistem Bilangan Biner?

Komputer dibangun dari miliaran transistor elektronik yang hanya memiliki dua keadaan fisik: Mati (0) dan Nyala (1). Karena keterbatasan hardware ini, semua data (angka, teks, gambar, suara) harus diterjemahkan ke dalam kombinasi angka 0 dan 1 yang disebut bit (binary digit).

0 / 1
1 Bit (Dasar)
4 Bit
1 Nibble (Setengah Byte)
8 Bit
1 Byte (Satu Karakter)
16 Bit
1 Word (Standar 8086)

Peran Heksadesimal (Singkatan Biner)

Meskipun komputer hanya memahami biner, rangkaian seperti 11111111 sangat sulit dibaca dan ditulis oleh manusia. Solusinya adalah menggunakan Heksadesimal (basis 16). Karena 1 digit heksadesimal merepresentasikan tepat 4 bit biner, manusia bisa membaca data memori dengan jauh lebih ringkas (misalnya menulis FFH alih-alih 11111111). Inilah alasan utama mengapa pemrograman tingkat rendah (seperti Assembly) sangat bergantung pada angka Hex.

3.2 Konversi Basis Bilangan

Kemampuan konversi bilangan adalah keterampilan fundamental yang WAJIB dikuasai sebelum lanjut ke pemrograman Assembly. Tanpa ini, Anda tidak akan bisa membaca maupun menulis kode dengan benar.

DesimalBiner (8-bit)OktalHeksadesimal
00000000000000H
50000010100505H
10000010100120AH
15000011110170FH
160001000002010H
320010000004020H
500011001006232H
1000110010014464H
25511111111377FFH

1 Desimal ↔ Biner

Desimal ke Biner (Metode Bagi 2)

Bagi bilangan desimal dengan 2 berulang kali. Catat sisa pembagian di setiap langkah. Hasil biner dibaca dari bawah ke atas.

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
Baca dari bawah: 11001

Biner ke Desimal (Metode Posisi)

Kalikan setiap bit dengan pangkat 2 sesuai posisinya (dari kanan ke kiri, dimulai dari pangkat 0). Jumlahkan semua hasilnya.

1
1
0
0
1
2⁴
2⁰
(1×16) + (1×8) + (0×4) + (0×2) + (1×1)
16 + 8 + 0 + 0 + 1 = 25

2 Biner ↔ Oktal

Oktal (basis 8) sangat erat kaitannya dengan biner karena 1 digit oktal tepat merepresentasikan 3 bit biner.

Biner ke Oktal

Kelompokkan bit biner dari kanan ke kiri, masing-masing berisi 3 bit. Jika bit paling kiri kurang dari 3, tambahkan 0 di depannya. Lalu ubah tiap kelompok menjadi angka oktal.

011
001
010
3
1
2
Hasil: 312 (Oktal)

Oktal ke Biner

Ubah setiap digit oktal menjadi 3 bit biner. Jika hasilnya kurang dari 3 digit, tambahkan leading zero di depannya.

3
1
2
011
001
010
Hasil: 011001010 (Biner)

3 Biner ↔ Heksadesimal

Heksadesimal (basis 16) adalah yang paling sering digunakan. Alasannya karena 1 digit hex tepat merepresentasikan 4 bit biner (setengah byte / nibble).

Biner ke Heksadesimal

Kelompokkan bit biner dari kanan ke kiri, masing-masing berisi 4 bit. Tambahkan 0 di depan jika kurang. Lalu ubah tiap kelompok ke hex.

1010
1111
1100
A
F
C
Hasil: AFCH

Heksadesimal ke Biner

Ubah setiap digit hex menjadi 4 bit biner. Ini yang membuat hex sangat mudah dibaca manusia dibandingkan membaca deretan 0 dan 1 panjang.

B
5
9
1011
0101
1001
Hasil: 101101011001 (Biner)

Tabel Referensi Cepat: Biner ke Hex/Oktal

Desimal Biner (4-bit) Heksadesimal Desimal Biner (3-bit) Oktal
000000H00000
100011H10011
200102H20102
300113H30113
401004H41004
501015H51015
601106H61106
701117H71117
810008H— (Maks digit Oktal adalah 7) —
910019H
101010AH
111011BH
121100CH
131101DH
141110EH
151111FH

3.3 Operasi Aritmatika Biner

Operasi aritmatika biner lebih sederhana daripada desimal karena hanya ada beberapa aturan dasar:

Penjumlahan

0 + 0 = 0 (carry = 0)
0 + 1 = 1 (carry = 0)
1 + 0 = 1 (carry = 0)
1 + 1 = 10 (carry = 1)
1 + 1 + 1 = 11 (carry = 1)

Pengurangan

0 - 0 = 0 (borrow = 0)
1 - 0 = 1 (borrow = 0)
1 - 1 = 0 (borrow = 0)
0 - 1 = 1 (borrow = 1)
InstruksiKeteranganFlag yang Terpengaruh
ADD dst, srcPenjumlahan (dst = dst + src)CF, ZF, OF, PF, AF, SF
SUB dst, srcPengurangan (dst = dst - src)CF, ZF, OF, PF, AF, SF
INC opTambah 1 ke operand (dst = dst + 1)ZF, SF, OF, AF, PF (tidak mempengaruhi CF)
DEC opKurangi 1 dari operand (dst = dst - 1)ZF, SF, OF, AF, PF (tidak mempengaruhi CF)
NEG opMembuat negatif (Two's complement)CF=1 (kecuali op=0), ZF, OF, SF, AF
CMP op1, op2Subtract tanpa menyimpan hasil (op1 - op2)CF, ZF, SF, OF, PF, AF

3.4 Bilangan Bertanda

Dalam kehidupan nyata, angka bisa negatif. Prosesor menyediakan 3 metode untuk merepresentasikan bilangan negatif:

Sign-Magnitude

Bit paling tinggi = tanda (0 positif, 1 negatif). Masalah: ada DUA representasi untuk nol (+0 dan -0). Hampir tidak pernah dipakai di prosesor modern.

1's Complement

Semua bit dibalik (0 jadi 1, 1 jadi 0). Masih ada dua representasi nol. Hampir tidak dipakai di prosesor modern.

2's Complement

Bit dibalik, ditambah 1. Hanya SATU representasi nol. Inilah standar yang digunakan di semua prosesor modern.
AspekSign-Magnitude1's Complement2's Complement
Representasi nolDua (+0 dan -0)Dua (berbeda bit)Hanya satu
Positif000
Negatif111
Implementasi hardwareRangkaian kompleksPerlu inverterInverter + Adder (efisien)
Digunakan di prosesor modernTidakTidakYa (Standar)

Contoh: -57 dalam 8-bit

Desimal
+57
Biner Asli
0011 1001
Dibalik (1's Comp)
1100 0110
Ditambah 1 (2's Comp)
1100 0111
Gambar 3.1: Proses mendapatkan -57 (C7H) dalam 2's complement

Tabel 2's Complement 8-bit Populer

Desimal2's Complement (8-bit)Hex
+1270111 11117FH
+10000 000101H
00000 000000H
-11111 1111FFH
-21111 1110FEH
-571100 0111C7H
-1281000 000080H

3.5 Sign-Magnitude, 1's Complement, 2's Complement

Tiga metode ini menjawab pertanyaan: "bagaimana menyimpan angka negatif di memori yang hanya mengenal 0 dan 1?" Berikut perbandingan mendetail.

2's Complement 16-bit (seperti prosesor 8086)

Pada 8086 (16-bit), range signed = -32768 sampai +32767. Nilai -32768 direpresentasikan sebagai 1000 0000 0000 0000 (8000H). Angka positif +32768 tidak bisa direpresentasikan karena melebihi batas maksimum.

Kelebihan 2's Complement

  • - Setiap angka punya SATU representasi nol.
  • - Penjumlahan dan pengurangan menggunakan rangkaian hardware yang sama (Adder).
  • - Tidak perlu memeriksa tanda bit sebelum menghitung.

Kelemahan 2's Complement

  • - Rentang angka tidak simetris (contoh 8-bit: -128 hingga +127).
  • - Proses konversi memerlukan 2 langkah (balik bit, lalu tambah 1).

Contoh Perhitungan 1's Complement (-5 dalam 8-bit)

Angka asli (+5): 0000 0101
Langkah 1 - Balik: 1111 1010 (Ini adalah -5 dalam 1's complement = FAH)

3.6 Representasi BCD dan ASCII

BCD (Binary Coded Decimal)

Setiap digit desimal disimpan dalam 4 bit. Digunakan saat data langsung ditampilkan ke manusia (display 7-segment, LCD). BCD sangat penting di sistem yang tidak memiliki prosesor floating-point.

1000
1001
89 desimal = 1000 1001 dalam BCD

ASCII (American Standard Code for Information Interchange)

Setiap karakter memiliki kode numerik unik. Kode 0-31 adalah karakter kontrol (tidak bisa dicetak). Kode 32-127 adalah karakter standar (spasi, angka 0-9, huruf besar A-Z, huruf kecil a-z). Kode 128-255 adalah kode extended untuk simbol dan bahasa asing.

HexDesimalKarakterKategori
20H32(Spasi)Spasi
30H - 39H48 - 570 - 9Digit Angka
41H - 5AH65 - 90A - ZHuruf Besar
61H - 7AH97 - 122a - zHuruf Kecil
00H0NULKontrol (Akhir string di C)

Kenapa ASCII awalnya 7-bit? Komputer awal menggunakan 8-bit, tetapi 1 bit paling atas digunakan sebagai parity bit untuk pengecekan error saat pengiriman data. Extended ASCII (128-255) kemudian ditambahkan saat kebutuhan simbol semakin banyak.

3.7 Soal Latihan

Kerjakan soal-soal berikut untuk menguji pemahaman Anda.

Soal 1. Konversikan 255 desimal ke biner dan heksadesimal.

Lihat jawaban

255 desimal = 1111 1111 biner = FFH heksadesimal. Cara: bagi terus 2 dan catat sisa (dari bawah), lalu baca dari bawah ke atas.

Soal 2. Apa perbedaan Sign-Magnitude, 1's Complement, dan 2's complement? Kapan masing-masing digunakan?

Lihat jawaban

Sign-Magnitude: Bit paling tinggi = tanda (0 positif, 1 negatif). Masalah: ada dua representasi untuk nol (+0 dan -0). 1's Complement: Semua bit dibalik (0 jadi 1, 1 jadi 0). Masalah: juga ada dua representasi nol. 2's Complement: Bit dibalik (seperti 1's complement), lalu ditambahkan 1. Hanya SATU representasi nol. Ini standar yang digunakan di semua prosesor modern karena sederhana dan konsisten.

Soal 3. Hitung 2's complement dari -57 (desimal) dalam 8-bit.

Lihat jawaban

57 desimal = 0011 1001 biner. Balik: 1100 0110. +1 = 1100 0111 = C7H. Jadi -57 dalam 8-bit 2's complement = C7H.

Soal 4. Apa kelebihan BCD dibandingkan biner biasa untuk sistem tampilan (misal 7-segment)?

Lihat jawaban

Dengan BCD, setiap digit desimal disimpan dalam 4 bit. Ini menyederhanakan konversi ke 7-segment karena setiap digit bisa ditampilkan secara independen. Dengan biner, seluruh bilangan harus dikonversi ke desimal dulu sebelum ditampilkan.

Soal 5. Huruf besar 'A' dan huruf kecil 'a' memiliki kode ASCII yang berbeda. Berapa kode ASCII masing-masing?

Lihat jawaban

'A' = 41H (65 desimal). 'a' = 61H (97 desimal). Selisihnya 32 karena huruf kecil berada 32 posisi setelah huruf besar di tabel ASCII.

3.8 Kuis Bab 3

Pilih satu jawaban yang paling tepat.

1. Bilangan 10110011 dalam desimal adalah...

2. Bilangan 1A3H dalam desimal adalah...

3. Mengapa di dunia komputer lebih sering menggunakan heksadesimal daripada biner?

4. 2's complement dari 0000 0001 (8-bit) adalah...

5. 2's complement dari -128 (8-bit) adalah...

6. Apa itu BCD dan kapan digunakan?

7. Hasil AND 10101010 dan 11001100 adalah...

8. Hasil XOR 10101010 dan 11001100 adalah...