Mengenal Tipe Data dan Variabel di Javascript - Perwira Learning Center

 

1. APA ITU VARIABEL DAN TIPE DATA?

Analogi Sederhana:

Variabel itu seperti KOTAK PENYIMPANAN di kamar kita:

  • Setiap kotak punya nama (nama variabel)
  • Kita bisa masukkan barang ke dalam kotak (nilai)
  • Kita bisa ganti isi kotak kapan saja
  • Kita bisa lihat isi kotak kapan saja

Tipe Data itu seperti JENIS BARANG yang kita simpan:

  • Buku → teks/string
  • Uang → angka/number
  • Switch on/off → benar-salah/boolean
  • Kotak mainan → kumpulan data/array
  • Formulir → object
javascript
// CONTOH SEDERHANA:
let nama = "Ibra";      // Kotak "nama" berisi teks "Ibra"
let umur = 17;          // Kotak "umur" berisi angka 17
let siswa = true;       // Kotak "siswa" berisi switch ON (true)

2. TIPE DATA DASAR DI JAVASCRIPT

JavaScript punya 7 tipe data utama:

1. String → UNTUK TEKS

javascript
// String itu untuk teks, pakai tanda kutip
let nama = "Ibra";
let alamat = 'Jl. Merdeka No. 123';
let greeting = `Halo, nama saya ${nama}`;  // Template literal

console.log("Tipe data String:");
console.log("Nama: " + nama);        // Output: Ibra
console.log("Alamat: " + alamat);    // Output: Jl. Merdeka No. 123
console.log(greeting);              // Output: Halo, nama saya Ibra

Ciri-ciri String:

  • Selalu pakai tanda kutip: " ", ' ', atau ` `
  • Bisa gabung dengan +
  • Punya properti .length untuk hitung jumlah karakter
javascript
let kata = "JavaScript";
console.log("Panjang kata 'JavaScript': " + kata.length + " huruf");
// Output: 10 huruf

2. Number → UNTUK ANGKA

javascript
// Number itu untuk angka, TANPA tanda kutip
let usia = 17;           // Angka bulat (integer)
let tinggi = 170.5;      // Angka desimal (float)
let harga = 15000.75;    // Uang pakai desimal
let negatif = -10;       // Angka negatif

console.log("Tipe data Number:");
console.log("Usia: " + usia);         // 17
console.log("Tinggi: " + tinggi + " cm"); // 170.5 cm
console.log("Harga: Rp" + harga);     // Rp15000.75
console.log("Negatif: " + negatif);   // -10

// Operasi matematika
console.log("10 + 5 = " + (10 + 5));   // 15
console.log("10 - 5 = " + (10 - 5));   // 5
console.log("10 * 5 = " + (10 * 5));   // 50
console.log("10 / 3 = " + (10 / 3));   // 3.333...
console.log("10 % 3 = " + (10 % 3));   // 1 (sisa bagi)

3. Boolean → UNTUK BENAR/SALAH

javascript
// Boolean cuma punya 2 nilai: true atau false
let sudahMakan = true;     // Sudah makan = BENAR
let sudahTidur = false;    // Belum tidur = SALAH
let umurCukup = true;      // Umur sudah cukup

console.log("Tipe data Boolean:");
console.log("Sudah makan? " + sudahMakan);    // true
console.log("Sudah tidur? " + sudahTidur);    // false
console.log("Umur cukup? " + umurCukup);      // true

// Boolean sering dipakai untuk kondisi
if(sudahMakan) {
    console.log("Ibra sudah makan, tidak lapar");
} else {
    console.log("Ibra belum makan, segera makan!");
}

// Hasil perbandingan selalu boolean
console.log("10 > 5? " + (10 > 5));    // true
console.log("10 == 5? " + (10 == 5));  // false
console.log("10 != 5? " + (10 != 5));  // true

4. Array → UNTUK KUMPULAN DATA

javascript
// Array seperti KOTAK BESAR berisi banyak kotak kecil
let hobi = ["game", "musik", "olahraga", "membaca"];
let nilai = [85, 90, 78, 92];
let campuran = ["Ibra", 17, true];  // Bisa campur tipe data

console.log("Tipe data Array:");
console.log("Hobi: " + hobi);              // game,musik,olahraga,membaca
console.log("Nilai: " + nilai);            // 85,90,78,92
console.log("Campuran: " + campuran);      // Ibra,17,true

// Akses data di array pakai index (dimulai dari 0)
console.log("Hobi pertama: " + hobi[0]);   // game
console.log("Hobi kedua: " + hobi[1]);     // musik
console.log("Nilai ketiga: " + nilai[2]);  // 78

// Tambah data ke array
hobi.push("programming");
console.log("Hobi setelah ditambah: " + hobi); 
// Output: game,musik,olahraga,membaca,programming

// Hitung jumlah data di array
console.log("Jumlah hobi: " + hobi.length + " buah");

5. Object → UNTUK DATA TERSTRUKTUR 

javascript
// Object seperti FORMULIR atau KARTU IDENTITAS
let siswa = {
    nama: "Ibra",       // property: value
    umur: 17,
    kelas: "XII IPA",
    aktif: true,
    nilai: [85, 90, 78]
};

console.log("Tipe data Object:");
console.log("Data siswa:");
console.log("Nama: " + siswa.nama);      // Ibra
console.log("Umur: " + siswa.umur);      // 17
console.log("Kelas: " + siswa.kelas);    // XII IPA
console.log("Aktif? " + siswa.aktif);    // true
console.log("Nilai: " + siswa.nilai);    // 85,90,78

// Bisa juga pakai bracket notation
console.log("Nama (bracket): " + siswa["nama"]);

// Tambah property baru
siswa.alamat = "Jl. Merdeka No. 123";
console.log("Alamat baru: " + siswa.alamat);

// Object bisa nested (bersarang)
let sekolah = {
    nama: "SMA Negeri 1",
    alamat: {
        jalan: "Jl. Pendidikan",
        kota: "Jakarta",
        kodePos: "12345"
    }
};

console.log("Alamat sekolah: " + sekolah.alamat.jalan + ", " + sekolah.alamat.kota);

6. Null → KOSONG SENGAJA

javascript
// Null artinya "sengaja dikosongkan"
let dataKosong = null;

console.log("Tipe data Null:");
console.log("Data kosong: " + dataKosong);        // null
console.log("Tipe data: " + typeof dataKosong);   // object (ini spesial di JavaScript)

// Contoh penggunaan:
let nilaiUjian = null;  // Belum ada nilainya
if(nilaiUjian === null) {
    console.log("Nilai ujian belum diinput");
} else {
    console.log("Nilai ujian: " + nilaiUjian);
}

7. Undefined → BELUM DIISI

javascript
// Undefined artinya "belum diberi nilai"
let dataBelumDiisi;

console.log("Tipe data Undefined:");
console.log("Data belum diisi: " + dataBelumDiisi);  // undefined
console.log("Tipe data: " + typeof dataBelumDiisi);  // undefined

// Contoh perbedaan null vs undefined:
let kotak1 = null;      // Saya sengaja kosongkan kotak ini
let kotak2;             // Saya belum isi kotak ini (lupa)

console.log("Kotak 1: " + kotak1);      // null
console.log("Kotak 2: " + kotak2);      // undefined

3. CARA MEMBUAT VARIABEL

JavaScript punya 3 cara buat variabel:

1. var → Cara Lama (Masih Boleh Dipakai)

javascript
// var itu fleksibel tapi kurang aman
var namaLama = "Ibra Versi Lama";
console.log("var: " + namaLama);

// Masalah dengan var:
var x = 10;
if(true) {
    var x = 20;  // Ini mengubah x yang di luar!
    console.log("x di dalam if: " + x);  // 20
}
console.log("x di luar: " + x);  // 20 (seharusnya tetap 10)

2. let → Cara Modern (REKOMENDASI)

javascript
// let lebih aman, bisa diubah tapi scoped
let namaBaru = "Ibra Versi Baru";
console.log("let: " + namaBaru);

// Keunggulan let:
let y = 10;
if(true) {
    let y = 20;  // Ini membuat y baru, tidak ganggu y luar
    console.log("y di dalam if: " + y);  // 20
}
console.log("y di luar: " + y);  // 10 (tetap aman!)

// let bisa diubah nilainya
let counter = 0;
counter = 1;     // BOLEH
counter = 2;     // BOLEH
console.log("Counter: " + counter);

3. const → Tidak Bisa Diubah

javascript
// const = CONSTANT (tetap/tidak berubah)
const PI = 3.14159;
const NAMA_SEKOLAH = "SMA Negeri 1";
const TAHUN_LAHIR = 2006;

console.log("const:");
console.log("PI: " + PI);
console.log("Sekolah: " + NAMA_SEKOLAH);
console.log("Tahun lahir: " + TAHUN_LAHIR);

// const TIDAK BISA diubah!
// NAMA_SEKOLAH = "SMA Lain";  // ERROR!

// Tapi isi array/object masih bisa diubah
const HOBIS = ["game", "musik"];
HOBIS.push("olahraga");  // BOLEH
console.log("Hobi: " + HOBIS);  // game,musik,olahraga

// HOBIS = ["membaca"];  // ERROR! Tidak bisa ganti seluruh array

PERBANDINGAN var, let, const:

javascript
console.log("=== PERBANDINGAN var, let, const ===");

// 1. Deklarasi ulang
var a = 1;
var a = 2;  // BOLEH dengan var
console.log("var a: " + a);  // 2

let b = 1;
// let b = 2;  // ERROR dengan let

const c = 1;
// const c = 2;  // ERROR dengan const

// 2. Scope (jangkauan)
if(true) {
    var varDalam = "var dalam if";
    let letDalam = "let dalam if";
    const constDalam = "const dalam if";
}

console.log("varDalam di luar: " + varDalam);  // MASIH BISA
// console.log(letDalam);  // ERROR
// console.log(constDalam); // ERROR

// 3. Re-assignment (mengubah nilai)
var x = 10;
x = 20;  // BOLEH

let y = 10;
y = 20;  // BOLEH

const z = 10;
// z = 20;  // ERROR

console.log("\nREKOMENDASI:");
console.log("1. Pakai const dulu");
console.log("2. Kalau perlu diubah, pakai let");
console.log("3. Hindari var (kecuali harus support browser lama)");

4. OPERASI DENGAN TIPE DATA

Operasi dengan String

javascript
let namaDepan = "Ibra";
let namaBelakang = "Rahman";

// 1. Concatenation (gabung string)
let namaLengkap = namaDepan + " " + namaBelakang;
console.log("Nama lengkap: " + namaLengkap);  // Ibra Rahman

// 2. Template Literal (modern)
let salam = `Halo, nama saya ${namaDepan} ${namaBelakang}`;
console.log(salam);  // Halo, nama saya Ibra Rahman

// 3. Method String
let teks = "Hello World";
console.log("Panjang: " + teks.length);          // 11
console.log("Uppercase: " + teks.toUpperCase()); // HELLO WORLD
console.log("Lowercase: " + teks.toLowerCase()); // hello world
console.log("Posisi 'World': " + teks.indexOf("World")); // 6
console.log("Potong: " + teks.slice(0, 5));      // Hello
console.log("Ganti: " + teks.replace("World", "JavaScript")); // Hello JavaScript

Operasi dengan Number

javascript
let angka1 = 10;
let angka2 = 3;

// Operasi dasar
console.log("10 + 3 = " + (angka1 + angka2));  // 13
console.log("10 - 3 = " + (angka1 - angka2));  // 7
console.log("10 * 3 = " + (angka1 * angka2));  // 30
console.log("10 / 3 = " + (angka1 / angka2));  // 3.333...
console.log("10 % 3 = " + (angka1 % angka2));  // 1

// Method Number
console.log("10 to String: " + angka1.toString());  // "10"
console.log("10.456 to Fixed: " + (10.456).toFixed(2)); // "10.46"
console.log("Parse Int: " + parseInt("10.5"));      // 10
console.log("Parse Float: " + parseFloat("10.5"));  // 10.5

// Math Object (untuk operasi matematika)
console.log("Math.sqrt(16): " + Math.sqrt(16));     // 4
console.log("Math.pow(2, 3): " + Math.pow(2, 3));   // 8
console.log("Math.round(10.6): " + Math.round(10.6)); // 11
console.log("Math.floor(10.9): " + Math.floor(10.9)); // 10
console.log("Math.ceil(10.1): " + Math.ceil(10.1));   // 11
console.log("Math.random(): " + Math.random());     // angka random 0-1

Operasi dengan Boolean

javascript
// Operator logika
let sudahMakan = true;
let sudahMinum = false;

console.log("AND (&&): " + (sudahMakan && sudahMinum));      // false
console.log("OR (||): " + (sudahMakan || sudahMinum));       // true
console.log("NOT (!): " + (!sudahMakan));                    // false

// Truthy dan Falsy
console.log("\nTruthy dan Falsy:");
console.log("Boolean(1): " + Boolean(1));        // true
console.log("Boolean(0): " + Boolean(0));        // false
console.log("Boolean(''): " + Boolean(""));      // false
console.log("Boolean('halo'): " + Boolean("halo")); // true
console.log("Boolean(null): " + Boolean(null));  // false
console.log("Boolean(undefined): " + Boolean(undefined)); // false

Operasi dengan Array

javascript
let buah = ["apel", "jeruk", "mangga"];

// 1. Akses dan modifikasi
console.log("Buah pertama: " + buah[0]);  // apel
buah[1] = "pisang";  // Ganti jeruk jadi pisang
console.log("Buah setelah diganti: " + buah);  // apel,pisang,mangga

// 2. Method Array
buah.push("anggur");      // Tambah di akhir
console.log("Setelah push: " + buah);  // apel,pisang,mangga,anggur

buah.pop();               // Hapus dari akhir
console.log("Setelah pop: " + buah);   // apel,pisang,mangga

buah.unshift("semangka"); // Tambah di awal
console.log("Setelah unshift: " + buah); // semangka,apel,pisang,mangga

buah.shift();             // Hapus dari awal
console.log("Setelah shift: " + buah);  // apel,pisang,mangga

// 3. Iterasi
console.log("\nLooping array:");
for(let i = 0; i < buah.length; i++) {
    console.log("Buah ke-" + (i+1) + ": " + buah[i]);
}

// 4. Method lain
let angka = [5, 3, 8, 1, 9];
console.log("Array asli: " + angka);
console.log("Sorted: " + angka.sort());           // [1,3,5,8,9]
console.log("Reversed: " + angka.reverse());      // [9,8,5,3,1]
console.log("Index of 5: " + angka.indexOf(5));   // 2
console.log("Includes 10? " + angka.includes(10)); // false

Operasi dengan Object

javascript
let mahasiswa = {
    nama: "Ibra",
    umur: 17,
    jurusan: "Informatika"
};

// 1. Akses property
console.log("Nama: " + mahasiswa.nama);        // dot notation
console.log("Umur: " + mahasiswa["umur"]);     // bracket notation

// 2. Tambah property
mahasiswa.ipk = 3.5;
console.log("IPK: " + mahasiswa.ipk);

// 3. Hapus property
delete mahasiswa.jurusan;
console.log("Setelah delete: ", mahasiswa);

// 4. Cek property
console.log("Ada property nama? " + ("nama" in mahasiswa));  // true
console.log("Ada property alamat? " + ("alamat" in mahasiswa)); // false

// 5. Looping object
console.log("\nLooping object:");
for(let key in mahasiswa) {
    console.log(key + ": " + mahasiswa[key]);
}

// 6. Method Object
console.log("Keys: " + Object.keys(mahasiswa));    // ["nama","umur","ipk"]
console.log("Values: " + Object.values(mahasiswa)); // ["Ibra",17,3.5]

5. KONVERSI TIPE DATA

String ke Number

javascript
console.log("=== KONVERSI STRING → NUMBER ===");

let stringAngka = "123";
let stringDesimal = "123.45";
let stringBukanAngka = "123abc";

// Cara 1: parseInt() untuk integer
console.log("parseInt('123'): " + parseInt(stringAngka));        // 123
console.log("parseInt('123.45'): " + parseInt(stringDesimal));   // 123 (hilang desimal)
console.log("parseInt('123abc'): " + parseInt(stringBukanAngka)); // 123 (ambil angka awal)

// Cara 2: parseFloat() untuk desimal
console.log("\nparseFloat('123'): " + parseFloat(stringAngka));       // 123
console.log("parseFloat('123.45'): " + parseFloat(stringDesimal));    // 123.45
console.log("parseFloat('123abc'): " + parseFloat(stringBukanAngka)); // 123

// Cara 3: Number() (lebih strict)
console.log("\nNumber('123'): " + Number(stringAngka));        // 123
console.log("Number('123.45'): " + Number(stringDesimal));     // 123.45
console.log("Number('123abc'): " + Number(stringBukanAngka));  // NaN (Not a Number)

// Cara 4: Unary plus (+) (shortcut)
console.log("\n+'123': " + (+stringAngka));        // 123
console.log("+'123.45': " + (+stringDesimal));     // 123.45
console.log("+'123abc': " + (+stringBukanAngka));  // NaN

Number ke String

javascript
console.log("\n=== KONVERSI NUMBER → STRING ===");

let angka = 123;
let desimal = 123.456;

// Cara 1: toString()
console.log("(123).toString(): " + angka.toString());          // "123"
console.log("(123.456).toString(): " + desimal.toString());    // "123.456"

// Cara 2: String()
console.log("\nString(123): " + String(angka));                // "123"
console.log("String(123.456): " + String(desimal));            // "123.456"

// Cara 3: Concatenation dengan string kosong
console.log("\n123 + '': " + (angka + ""));                    // "123"
console.log("123.456 + '': " + (desimal + ""));                // "123.456"

Boolean ke String/Number

javascript
console.log("\n=== KONVERSI BOOLEAN ===");

// Boolean ke String
console.log("String(true): " + String(true));      // "true"
console.log("String(false): " + String(false));    // "false"
console.log("true.toString(): " + true.toString()); // "true"

// Boolean ke Number
console.log("\nNumber(true): " + Number(true));    // 1
console.log("Number(false): " + Number(false));    // 0
console.log("+true: " + (+true));                  // 1
console.log("+false: " + (+false));                // 0

Konversi Lainnya

javascript
console.log("\n=== KONVERSI LAINNYA ===");

// Array ke String
let array = [1, 2, 3];
console.log("Array [1,2,3] ke String: " + String(array));   // "1,2,3"
console.log("Array join: " + array.join("-"));               // "1-2-3"

// Object ke String
let obj = {nama: "Ibra"};
console.log("Object ke String: " + String(obj));             // "[object Object]"
console.log("JSON.stringify: " + JSON.stringify(obj));       // '{"nama":"Ibra"}'

// String ke Array
let teks = "hello";
console.log("String 'hello' ke Array: " + teks.split(""));   // ["h","e","l","l","o"]

6. PRAKTIK LANGSUNG

Project 1: Kalkulator Sederhana

javascript
console.log("=== KALKULATOR SEDERHANA ===");

// Deklarasi variabel dengan tipe data berbeda
const JUDUL = "Kalkulator Ibra";
let angka1 = 10;
let angka2 = 5;
let operator = "+";

console.log(JUDUL);
console.log(`Operasi: ${angka1} ${operator} ${angka2}`);

// Proses perhitungan
let hasil;
if(operator === "+") {
    hasil = angka1 + angka2;
} else if(operator === "-") {
    hasil = angka1 - angka2;
} else if(operator === "*") {
    hasil = angka1 * angka2;
} else if(operator === "/") {
    hasil = angka1 / angka2;
} else {
    hasil = "Operator tidak valid";
}

console.log(`Hasil: ${hasil}`);
console.log(`Tipe hasil: ${typeof hasil}`);

Project 2: Form Data Siswa

javascript
console.log("\n=== FORM DATA SISWA ===");

// Data siswa dalam object
const siswa = {
    // Data pribadi
    identitas: {
        nama: "Ibra Rahman",
        tempatLahir: "Jakarta",
        tanggalLahir: "2006-05-15",
        alamat: "Jl. Merdeka No. 123"
    },
    
    // Data akademik
    akademik: {
        nis: "2023001",
        kelas: "XII IPA",
        nilai: [85, 90, 78, 92, 88]
    },
    
    // Data status
    status: {
        aktif: true,
        organisasi: ["OSIS", "Pramuka"],
        prestasi: ["Juara 1 Lomba Coding", "Juara 2 OSN Matematika"]
    }
};

// Tampilkan data
console.log("DATA SISWA:");
console.log("Nama: " + siswa.identitas.nama);
console.log("Kelas: " + siswa.akademik.kelas);
console.log("NIS: " + siswa.akademik.nis);

console.log("\nNILAI:");
siswa.akademik.nilai.forEach((nilai, index) => {
    console.log(`  Mata pelajaran ${index + 1}: ${nilai}`);
});

console.log("\nPRESTASI:");
siswa.status.prestasi.forEach(prestasi => {
    console.log("  ✓ " + prestasi);
});

console.log("\nStatus aktif: " + (siswa.status.aktif ? "Aktif" : "Tidak Aktif"));

Project 3: Sistem Inventori Toko

javascript
console.log("\n=== SISTEM INVENTORI TOKO ===");

// Array of objects untuk barang
let inventori = [
    { id: 1, nama: "Laptop", kategori: "Elektronik", stok: 10, harga: 8000000 },
    { id: 2, nama: "Mouse", kategori: "Elektronik", stok: 50, harga: 150000 },
    { id: 3, nama: "Buku Tulis", kategori: "Alat Tulis", stok: 200, harga: 5000 },
    { id: 4, nama: "Pulpen", kategori: "Alat Tulis", stok: 300, harga: 3000 }
];

console.log("DAFTAR BARANG:");
console.log("ID | Nama Barang | Kategori | Stok | Harga");

// Loop untuk tampilkan semua barang
inventori.forEach(barang => {
    console.log(`${barang.id} | ${barang.nama} | ${barang.kategori} | ${barang.stok} | Rp${barang.harga}`);
});

// Hitung total nilai inventori
let totalNilai = 0;
inventori.forEach(barang => {
    totalNilai += barang.stok * barang.harga;
});

console.log(`\nTotal nilai inventori: Rp${totalNilai.toLocaleString()}`);

// Cari barang berdasarkan kategori
let kategoriDicari = "Elektronik";
console.log(`\nBarang kategori "${kategoriDicari}":`);

let barangElektronik = inventori.filter(barang => barang.kategori === kategoriDicari);
barangElektronik.forEach(barang => {
    console.log(`  - ${barang.nama} (Stok: ${barang.stok})`);
});

7. TIPS DAN TRIK

Tips 1: Penamaan Variabel yang Baik

javascript
// ❌ JANGAN seperti ini:
let a = "Ibra";
let b = 17;
let c = true;

// ✅ LEBIH BAIK seperti ini:
let namaSiswa = "Ibra";          // Deskriptif
let umurSiswa = 17;              // Jelas maksudnya
let isAktif = true;              // Boolean pakai prefix "is"
let nilaiMatematika = 85;        // Spesifik
let daftarHobi = ["game", "musik"]; // Pakai "daftar" untuk array
let dataSiswa = {                // Pakai "data" untuk object
    nama: "Ibra",
    umur: 17
};

console.log("Contoh penamaan variabel yang baik:");
console.log("Nama siswa: " + namaSiswa);
console.log("Umur: " + umurSiswa);
console.log("Aktif? " + isAktif);

Tips 2: Cek Tipe Data

javascript
let contoh = "Hello World";

console.log("=== CEK TIPE DATA ===");
console.log("typeof 'Hello World': " + typeof contoh);          // string
console.log("typeof 123: " + typeof 123);                       // number
console.log("typeof true: " + typeof true);                     // boolean
console.log("typeof [1,2,3]: " + typeof [1,2,3]);               // object (khusus array)
console.log("typeof {nama:'Ibra'}: " + typeof {nama:'Ibra'});   // object
console.log("typeof null: " + typeof null);                     // object (ini spesial!)
console.log("typeof undefined: " + typeof undefined);           // undefined

// Cara cek array yang benar
let array = [1, 2, 3];
console.log("\nCek array:");
console.log("Array.isArray([1,2,3]): " + Array.isArray(array)); // true
console.log("Array.isArray({}): " + Array.isArray({}));         // false

Tips 3: Default Values

javascript
console.log("=== DEFAULT VALUES ===");

// Cara memberikan nilai default
function sapa(nama) {
    // Jika nama tidak diberikan, pakai "Tamu"
    let namaPengguna = nama || "Tamu";
    console.log("Halo, " + namaPengguna + "!");
}

sapa("Ibra");    // Halo, Ibra!
sapa();          // Halo, Tamu!

// Cara modern dengan Nullish Coalescing (??)
let inputPengguna;
let nilaiDefault = inputPengguna ?? "Nilai Default";
console.log("Nilai dengan ?? : " + nilaiDefault); // Nilai Default

// Perbedaan || dan ??
let angka = 0;
console.log("0 || 10: " + (angka || 10));    // 10 (karena 0 dianggap falsy)
console.log("0 ?? 10: " + (angka ?? 10));    // 0 (hanya null/undefined yang diganti)

Tips 4: Destructuring

javascript
console.log("\n=== DESTRUCTURING ===");

// Destructuring array
let buah = ["apel", "jeruk", "mangga"];
let [buah1, buah2, buah3] = buah;
console.log("Buah 1: " + buah1);  // apel
console.log("Buah 2: " + buah2);  // jeruk
console.log("Buah 3: " + buah3);  // mangga

// Destructuring object
let siswa = {
    nama: "Ibra",
    umur: 17,
    kelas: "XII IPA"
};

let {nama, umur, kelas} = siswa;
console.log("\nDestructuring object:");
console.log("Nama: " + nama);    // Ibra
console.log("Umur: " + umur);    // 17
console.log("Kelas: " + kelas);  // XII IPA

// Dengan nama variabel berbeda
let {nama: namaSiswa, umur: usiaSiswa} = siswa;
console.log("\nDengan nama berbeda:");
console.log("Nama siswa: " + namaSiswa);  // Ibra
console.log("Usia siswa: " + usiaSiswa);  // 17

Tugas Latihan:

javascript
console.log("=== TUGAS LATIHAN ===");

// TUGAS 1: Buat data diri kamu
console.log("\nTugas 1: Data Diri");
// Buat variabel untuk menyimpan:
// 1. Nama lengkap (string)
// 2. Tempat tanggal lahir (string)
// 3. Umur (number)
// 4. Hobi (array)
// 5. Status siswa (boolean)
// 6. Data sekolah (object dengan nama, alamat, kelas)

// Contoh:
let namaLengkap = "Ibra Rahman";
// Lanjutkan sendiri...

// TUGAS 2: Kalkulator BMI
console.log("\nTugas 2: Kalkulator BMI");
// Rumus: BMI = berat(kg) / (tinggi(m) * tinggi(m))
// Buat variabel untuk berat dan tinggi
// Hitung BMI-nya
// Tampilkan hasil dengan kategori:
// - < 18.5: Kurus
// - 18.5-24.9: Normal
// - 25-29.9: Gemuk
// - >= 30: Obesitas

// TUGAS 3: Konversi Mata Uang
console.log("\nTugas 3: Konversi Mata Uang");
// Buat sistem konversi IDR ke USD
// 1 USD = 15,000 IDR
// Buat variabel untuk jumlah IDR
// Hitung berapa USD
// Tampilkan dengan format: "Rp10.000 = $0.67"
 

KESIMPULAN

Yang Sudah Dipelajari:

  1. 7 Tipe Data Utama:
  • String → untuk teks
  • Number → untuk angka
  • Boolean → untuk true/false
  • Array → untuk kumpulan data
  • Object → untuk data terstruktur
  • Null → sengaja dikosongkan
  • Undefined → belum diisi
  1. 3 Cara Buat Variabel:
  • let → bisa diubah (direkomendasikan)
  • const → tidak bisa diubah (untuk nilai tetap)
  • var → cara lama (hindari)
  1. Operasi Penting:
  • String: +, .length, .toUpperCase()
  • Number: + - * / %, Math. methods
  • Array: .push(), .pop(), .length
  • Object: . notation, [] notation

Aturan Penting:

  1. Nama variabel harus jelas dan deskriptif
  2. Gunakan const sebanyak mungkin
  3. Pilih let hanya jika nilai perlu diubah
  4. Selalu cek tipe data dengan typeof
  5. Hati-hati dengan konversi otomatis

Posting Komentar

0 Komentar