C++ DataLab Interaktif
Informatika SMA Kelas X (Fase E)
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++.
0x7FFE40A0
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; |
int count = 10; // Mengalokasikan 4 Byte RAM
char grade = 'B'; // Mengalokasikan 1 Byte RAM (Kode ASCII 66)
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.
int id;
char nilai;
double ipk;
}; // Total memori struct = gabungan ukuran anggotanya (ditambah padding memori)
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).
double b = a; // b menjadi 5.0
Explicit Casting (Manual)
Pemaksaan konversi oleh programmer. Dapat memicu pemotongan desimal (truncation).
int x = (int)pi; // x menjadi 3 (truncation)
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).
ammo = ammo + 1; // OVERFLOW! Nilai ammo menjadi 0
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.
Simulasi 2 — Drag and Drop Matching Deklarasi C++
Tarik elemen variabel di kiri menuju slot sintaks yang sesuai di kanan.
Simulasi 3 — C++ Overflow & Underflow Inspector
Eksperimen batas kapasitas variabel signed short (-32768 s/d 32767).
Simulasi 4 — Predictor Output Code & Type Casting
Prediksikan hasil keluaran kode program C++ berikut secara akurat.
int b = 2;
double hasil = a / b;
cout << hasil;
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.
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 |
|---|