mr-edu/content/mr/05_otak_logika/matematika_sistem_bilangan.md

2.2 KiB

---LESSON_INFO--- Matematika Robotika: Sistem Bilangan (Biner & Hexa).

Learning Objectives:

  • Memahami sistem bilangan Biner (Basis 2).
  • Mengenal bilangan Heksadesimal (Basis 16).
  • Melakukan konversi dasar antar sistem bilangan untuk data digital.

Prerequisites:

  • Logika Boolean ---END_LESSON_INFO---

Matematika: Sistem Bilangan

Komputer dan Mikrokontroler tidak mengerti angka "10" atau "100" seperti kita. Mereka hanya mengerti aliran listrik yang "Ada" (1) atau "Tidak Ada" (0). Inilah dasar dari Sistem Bilangan Digital.

1. Desimal (Basis 10)

Sistem yang kita gunakan sehari-hari: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

2. Biner (Basis 2)

Sistem "bahasa mesin" yang hanya terdiri dari 0 dan 1.

  • 1 bit = 1 angka biner (0 atau 1).
  • 8 bit = 1 Byte.
  • Contoh: Angka 5 dalam desimal adalah 101 dalam biner.

3. Heksadesimal (Basis 16)

Sistem ini menggunakan 16 simbol: 0-9 dan A-F (A=10, B=11, ..., F=15). Heksadesimal digunakan untuk menyederhanakan biner yang panjang.

  • Contoh: Alamat sensor I2C sering ditulis dalam Hex, seperti 0x27.
  • Warna LED RGB juga menggunakan Hex, misal: 0xFF0000 (Merah).

---EXERCISE---

Tantangan: Konversi Biner ke Desimal

Di Arduino, kita bisa menulis angka biner dengan awalan 0b dan angka heksadesimal dengan awalan 0x.

Tugas:

  1. Buatlah variabel integer angkaBiner dan isi dengan nilai biner 0b1010.
  2. Buatlah variabel integer angkaHexa dan isi dengan nilai hexa 0x0F.
  3. Tampilkan kedua variabel tersebut ke Serial Monitor. Arduino secara otomatis akan menampilkan hasilnya dalam bentuk Desimal.

---INITIAL_CODE_ARDUINO--- // Latihan Sistem Bilangan void setup() { Serial.begin(9600);

// --- TULIS KODE KAMU DI BAWAH INI ---

// 1. Tulis angka biner 1010 int angkaBiner = 0;

// 2. Tulis angka hexa 0F int angkaHexa = 0;

// 3. Tampilkan hasil konversi otomatis ke Desimal Serial.print("Biner 1010 dalam Desimal: "); Serial.println(angkaBiner);

Serial.print("Hexa 0F dalam Desimal: "); Serial.println(angkaHexa);

// ------------------------------------ }

void loop() { } ---END_INITIAL_CODE_ARDUINO---

---KEY_TEXT--- 0b 0x Serial.println ---END_KEY_TEXT---