C++ DataLab Interaktif

Informatika SMA Kelas X (Fase E)

Topik Utama: Tipe Data & Memori C++

Eksplorasi Alokasi RAM, Presisi, & Casting C++

Pahami bagaimana variabel disimpan dalam biner RAM, manipulasi tipe data primitif dan komposit, cegah Integer Overflow, serta operasikan Type Casting pada pemrograman C++.

Siswa Aktif -
Rombel / Kelas -
Progress Modul 0%
VIRTUAL RAM MAP 0x7FFE40A0
0x7FFE40A0 (4B)
int x
255
0x7FFE40A4 (8B)
double pi
3.14159
0x7FFE40AC (1B)
char ch
'A' (65)
0x7FFE40AD (1B)
bool status
true (1)

Modul Pembelajaran Tipe Data C++

Pelajari konsep teoretis dan teknis alokasi variabel C++ secara sistematis.

1. Pengantar Memori RAM & Tipe Data Primitif C++

Dalam C++, variabel adalah alamat fisik pada memori RAM yang diberi tipe tertentu. Karena C++ bersifat statically typed, tipe data menentukan alokasi jumlah Byte memori dan cara pola bit dibaca.

Tipe Data Ukuran Memori Rentang Nilai / Kapasitas Contoh Deklarasi C++
int 4 Byte (32 bit) -2.147.483.648 s/d 2.147.483.647 int umur = 16;
float 4 Byte (32 bit) Presisi ~6-7 digit desimal float ipk = 3.85f;
double 8 Byte (64 bit) Presisi ~15-17 digit desimal double koordinat = -6.175392;
char 1 Byte (8 bit) 1 Karakter ASCII (0 - 255) char nilai = 'A';
bool 1 Byte (8 bit) true (1) atau false (0) bool lulus = true;
// Contoh Program Alokasi Memori Primitif
int count = 10; // Mengalokasikan 4 Byte RAM
char grade = 'B'; // Mengalokasikan 1 Byte RAM (Kode ASCII 66)
Rangkuman Bab 1: Setiap tipe primitif memesan ruang byte tetap di RAM. Pola bit biner akan ditafsirkan sesuai tipe data yang ditentukan di awal.

2. Tipe Data Komposit (Array, Struct, Enum)

Tipe data komposit dibangun dari gabungan beberapa tipe data primitif untuk mengelompokkan data yang lebih kompleks.

  • Array: Kumpulan data bertipe sama yang disimpan secara berurutan pada blok memori kontinu.
  • Struct: Tipe data buatan yang dapat menampung berbagai variabel bertipe berbeda dalam satu entitas.
  • Enum: Tipe data himpunan nilai konstanta integer yang diberi nama simbolis.
struct Siswa {
  int id;
  char nilai;
  double ipk;
}; // Total memori struct = gabungan ukuran anggotanya (ditambah padding memori)
Rangkuman Bab 2: Tipe komposit memungkinkan struktur data berukuran besar dikelola dalam satu alamat pointer/variabel secara efisien.

3. Type Casting (Implicit vs Explicit) & Precision Loss

Type casting adalah proses konversi satu tipe data ke tipe data lainnya di C++.

Implicit Casting (Otomatis)

Dilakukan oleh compiler saat mengonversi tipe kecil ke besar (Promotion).

int a = 5;
double b = a; // b menjadi 5.0

Explicit Casting (Manual)

Pemaksaan konversi oleh programmer. Dapat memicu pemotongan desimal (truncation).

double pi = 3.99;
int x = (int)pi; // x menjadi 3 (truncation)
Rangkuman Bab 3: Hati-hati saat memasukkan pecahan ke tipe integer karena desimal dipotong langsung (bukan dibulatkan secara matematis).

4. Format Modifier & Integer Overflow

Modifier ubah rentang nilai tipe data: signed, unsigned, short, dan long.

Jika nilai melampaui kapasitas maksimum tipe data, terjadi Integer Overflow yang menyebabkan nilai berputar balik ke batas minimum (wrap-around).

unsigned short ammo = 65535; // Nilai Maksimum
ammo = ammo + 1; // OVERFLOW! Nilai ammo menjadi 0
Rangkuman Bab 4: Penggunaan unsigned menghilangkan tanda negatif untuk memperbesar batas positif. Hindari overflow pada sistem medis/keuangan!

Virtual Code Lab - Tipe Data C++

Uji coba dan eksekusi mekanisme memori secara visual di laboratorium virtual.

Simulasi 1 — Visualizer Alokasi Byte RAM & Biner

Pilih tipe data dan tentukan nilainya untuk mengamati penataan pola byte di memori.

Pilih tipe data dan klik 'Alokasikan ke RAM'.

Simulasi 2 — Drag and Drop Matching Deklarasi C++

Tarik elemen variabel di kiri menuju slot sintaks yang sesuai di kanan.

double
suhuSuhu
36.6
char
'A'
// Deklarasi Suhu Desimal:
Tipe Data
Nama Variabel
=
Nilai Value
;

Simulasi 3 — C++ Overflow & Underflow Inspector

Eksperimen batas kapasitas variabel signed short (-32768 s/d 32767).

0
Status: Safe Range

Simulasi 4 — Predictor Output Code & Type Casting

Prediksikan hasil keluaran kode program C++ berikut secara akurat.

int a = 7;
int b = 2;
double hasil = a / b;
cout << hasil;
BUG REPORT SYSTEM #404

Studi Kasus: Kegagalan Sistem Monitoring Pasien Medis ICU

Sebuah aplikasi perangkat lunak medis C++ di rumah sakit mengalami bug fatal: Angka detak jantung pasien bernilai -120 BPM (harusnya positif) dan total biaya obat terpotong dari Rp 5.000.000 menjadi Rp 70.000.

Evaluasi Pemahaman HOTS C++

Kerjakan 5 soal penalaran tingkat tinggi berikut.

Soal 1.

Pengembang game mendeklarasikan variabel unsigned char ammo = 255;. Jika sintaks ammo = ammo + 1; dieksekusi, berapakah nilai ammo sekarang?

Soal 2.

Perhatikan potongan kode C++ berikut:

double val = (int) 5.85 + 2.15;

Berapakah nilai yang tersimpan dalam variabel val?

Soal 3.

Sistem navigasi roket memerlukan presisi hingga 15 angka desimal. Tipe data manakah yang harus dipilih?

Soal 4.

Mengapa variabel bertipe bool mengonsumsi memori 1 Byte (8 bit), padahal hanya membutuhkan 1 bit nilai (0 atau 1)?

Soal 5.

Sintaks mana yang menunjukkan teknik Explicit Type Casting yang paling aman pada C++ modern?

Jurnal Refleksi Pembelajaran Siswa

Isi refleksi mandiri untuk mengukur pemahaman Anda.

Keep Coding & Stay Precise!

"Software yang efisien berawal dari pemilihan tipe data dan manajemen memori yang tepat."

Dashboard Monitoring Guru

Rekapitulasi progress dan nilai asesmen siswa secara real-time.

Nama Siswa Kelas Progress Nilai Asesmen Nilai Evaluasi Status Lab Aksi Detail

Tambah Pengguna / Siswa Baru

Tambahkan data siswa secara manual ke dalam sistem tanpa melalui registrasi mandiri.