🔢 Tipe Data di Java
💡Apa itu Tipe Data?
Tipe data dalam Java menentukan jenis nilai yang dapat disimpan dalam variabel dan berapa banyak memori yang dialokasikan. Java adalah bahasa strongly typed, artinya setiap variabel harus dideklarasikan dengan tipe data yang jelas.
Perbedaan dengan JavaScript: Di Java, tipe data harus dideklarasikan secara eksplisit dan tidak bisa diubah (immutable type).
Simulasi Memori
Lihat bagaimana Java menyimpan tipe data di memori
📊 Visualisasi Memori:
🔢1. Tipe Data Primitif - Integer
Java memiliki beberapa tipe data integer dengan ukuran memori yang berbeda:
| Tipe | Ukuran | Range | Contoh |
|---|---|---|---|
| byte | 1 byte (8 bit) | -128 s/d 127 | byte umur = 25; |
| short | 2 bytes (16 bit) | -32,768 s/d 32,767 | short tahun = 2024; |
| int | 4 bytes (32 bit) | -2.1M s/d 2.1M | int populasi = 1000000; |
| long | 8 bytes (64 bit) | -9.2E18 s/d 9.2E18 | long jarak = 1000000000L; |
// Contoh penggunaan integer types
public class IntegerDemo {
public static void main(String[] args) {
// byte: untuk nilai kecil
byte umur = 25;
byte suhu = -10;
// short: untuk nilai sedang
short jumlahSiswa = 500;
short tahun = 2024;
// int: paling umum digunakan
int populasi = 1000000;
int saldo = -50000;
// long: untuk nilai sangat besar (tambahkan L di akhir)
long jarakBumi = 149600000000L;
long pendudukDunia = 8000000000L;
System.out.println("Umur: " + umur);
System.out.println("Populasi: " + populasi);
System.out.println("Jarak Bumi-Matahari: " + jarakBumi + " km");
}
}🎯2. Tipe Data Floating Point
Untuk bilangan desimal, Java menyediakan float dandouble.
// Contoh floating point
public class FloatDemo {
public static void main(String[] args) {
// float: presisi 6-7 digit (tambahkan f di akhir)
float tinggi = 170.5f;
float berat = 65.3f;
float pi = 3.14159f;
// double: presisi 15-16 digit (default untuk desimal)
double saldo = 1500000.75;
double luasLingkaran = 3.14159265359 * 5 * 5;
double suhuAkurat = 36.567891234;
// Perhitungan BMI
double bmi = berat / ((tinggi / 100) * (tinggi / 100));
System.out.println("Tinggi: " + tinggi + " cm");
System.out.println("Berat: " + berat + " kg");
System.out.println("BMI: " + bmi);
System.out.println("Luas Lingkaran: " + luasLingkaran);
}
}💡 Best Practice:
Gunakan double untuk perhitungan yang membutuhkan presisi tinggi. floatlebih hemat memori tapi kurang akurat.
Demo Interaktif: Integer Counter
Lihat nilai integer yang berubah secara real-time
Nilai int counter = 0
Tipe data int dapat menyimpan nilai dari -2,147,483,648 hingga 2,147,483,647
🔤3. Tipe Data Character
char digunakan untuk menyimpan satu karakter Unicode (2 bytes).
// Contoh character
public class CharDemo {
public static void main(String[] args) {
// char: harus menggunakan tanda kutip tunggal
char huruf = 'A';
char simbol = '@';
char angka = '5'; // Ini char, bukan int!
// Unicode character
char heart = '\u2764'; // ❤
char smiley = '\u263A'; // ☺
// Operasi dengan char
char ch = 'A';
System.out.println("Char: " + ch);
System.out.println("ASCII value: " + (int)ch); // 65
// Increment char
ch++;
System.out.println("Setelah increment: " + ch); // B
}
}✅4. Tipe Data Boolean
boolean hanya memiliki dua nilai:true ataufalse.
// Contoh boolean
public class BooleanDemo {
public static void main(String[] args) {
// Deklarasi boolean
boolean aktif = true;
boolean lulus = false;
// Boolean dari ekspresi
int umur = 20;
boolean dewasa = umur >= 17; // true
int nilai = 85;
boolean lulusUjian = nilai >= 70; // true
// Operasi logika
boolean punyaSIM = true;
boolean bisaMenyetir = dewasa && punyaSIM; // true
System.out.println("Dewasa: " + dewasa);
System.out.println("Lulus: " + lulusUjian);
System.out.println("Bisa Menyetir: " + bisaMenyetir);
}
}Demo Boolean Toggle
Klik tombol untuk mengubah nilai boolean
boolean aktif = false
📝5. String (Reference Type)
String bukan tipe primitif, melainkan class. String adalah kumpulan karakter.
// Contoh String
public class StringDemo {
public static void main(String[] args) {
// Deklarasi String (gunakan kutip ganda)
String nama = "Budi Santoso";
String alamat = "Jakarta";
String email = "budi@example.com";
// String kosong
String kosong = "";
// Concatenation (penggabungan)
String sapaan = "Halo, " + nama + "!";
System.out.println(sapaan);
// Method String
System.out.println("Panjang: " + nama.length()); // 13
System.out.println("Uppercase: " + nama.toUpperCase()); // BUDI SANTOSO
System.out.println("Lowercase: " + nama.toLowerCase()); // budi santoso
System.out.println("Char at 0: " + nama.charAt(0)); // B
// Substring
String firstName = nama.substring(0, 4); // "Budi"
System.out.println("Nama depan: " + firstName);
// Contains
boolean adaEmail = email.contains("@"); // true
System.out.println("Email valid: " + adaEmail);
}
}Demo String Manipulation
Ketik sesuatu dan lihat hasilnya
Length:
0
Uppercase:
Lowercase:
Reversed:
🔄6. Type Casting
Type casting adalah konversi dari satu tipe data ke tipe data lainnya.
// Type Casting
public class CastingDemo {
public static void main(String[] args) {
// Widening Casting (otomatis): kecil -> besar
int angkaInt = 100;
long angkaLong = angkaInt; // int -> long
double angkaDouble = angkaLong; // long -> double
System.out.println("Int: " + angkaInt);
System.out.println("Long: " + angkaLong);
System.out.println("Double: " + angkaDouble);
// Narrowing Casting (manual): besar -> kecil
double nilaiDouble = 9.78;
int nilaiInt = (int) nilaiDouble; // 9 (desimal hilang)
System.out.println("Double: " + nilaiDouble);
System.out.println("Int (cast): " + nilaiInt);
// String ke Integer
String strAngka = "123";
int converted = Integer.parseInt(strAngka);
System.out.println("String to int: " + converted);
// Integer ke String
int angka = 456;
String strResult = String.valueOf(angka);
System.out.println("Int to String: " + strResult);
}
}📝 Ringkasan Tipe Data Java
Tipe Primitif:
- ✅ byte, short, int, long → Integer
- ✅ float, double → Floating point
- ✅ char → Karakter tunggal
- ✅ boolean → true/false
Reference Type:
- ✅ String → Kumpulan karakter
- ✅ Array → Kumpulan data
- ✅ Class → Object