Pertemuan 4 — Array & Object di TypeScript
Pertanyaan Pemantik
- Bagaimana cara menyimpan banyak data dengan rapi?
- Apa yang terjadi jika isi array tidak konsisten tipenya?
- Kenapa backend hampir selalu memakai object?
1. Array Bertipe
Array di TypeScript bisa ditentukan tipenya agar isinya konsisten.
let scores: number[] = [80, 90, 100];
Jika kamu mencoba:
scores.push("A");
TypeScript akan langsung memberi error.
2. Generic Array (Alternatif)
let names: Array<string> = ["Ani", "Budi", "Citra"];
Fungsinya sama, hanya beda gaya penulisan.
3. Object Bertipe
Object biasanya mewakili satu entitas (user, produk, jasa).
let user: { name: string; age: number } = {
name: "Nur",
age: 20
};
Jika properti kurang atau salah tipe, TypeScript akan menolak.
4. Array of Object (Pola Industri)
Ini adalah pola paling sering dipakai di backend.
let services: { name: string; price: number }[] = [
{ name: "Cuci Motor", price: 15000 },
{ name: "Cuci Mobil", price: 30000 }
];
5. Mengakses & Mengubah Data
console.log(services[0].name);
services[1].price = 35000;
Latihan
Latihan 1 — Daftar Produk
Buat file latihan4-1.ts.
let products: { name: string; price: number }[] = [
{ name: "Sabun", price: 5000 },
{ name: "Sampo", price: 7000 }
];
console.log(products);
Tugas:
- Tambahkan 1 produk baru
- Ubah harga salah satu produk
Latihan 2 — Data User
Buat file latihan4-2.ts.
Buat array user:
let users: { username: string; isActive: boolean }[] = [
{ username: "admin", isActive: true },
{ username: "guest", isActive: false }
];
Tugas:
- Tambahkan user baru
- Ubah status user tertentu
Tantangan Logika
Tantangan 1 — Data Tidak Lengkap
Kasus: Seseorang mencoba menambahkan data service seperti ini:
{ name: "Cuci AC" }
Pertanyaan:
1. Apakah TypeScript mengizinkan data ini?
2. Kenapa ini berbahaya jika lolos ke backend?
3. Apa solusi paling sederhana yang sudah kamu pelajari?
Tantangan 2 — Data Tidak Masuk Akal
Kasus:
{ name: "Cuci Motor", price: -5000 }
Pertanyaan:
1. Apakah TypeScript otomatis menolak harga negatif?
2. Kalau tidak, di bagian mana seharusnya logika pengecekan dibuat?
3. Kenapa ini penting di dunia kerja?
Tantangan 3 — Cari Data (Logika Dasar)
Buat fungsi:
function findServiceByName(
services: { name: string; price: number }[],
name: string
) {
// TODO
}
Tugas:
- Cari service berdasarkan nama
- Jika tidak ditemukan, tampilkan pesan yang sesuai
Petunjuk:
- Gunakan loop for...of
- Tidak perlu fitur baru
Studi Kasus Mini (Arah Industri / Backend)
Di backend: - Data sering disimpan sebagai array of object (sementara, cache, atau hasil query) - Satu data rusak bisa merusak proses berikutnya
Diskusi:
1. Apakah TypeScript cukup untuk menjaga data tetap “bersih”?
2. Kapan kita perlu validasi tambahan?
3. Kenapa backend sering memisahkan “data” dan “logika”?
Ringkasan
- Array bertipe menjaga konsistensi data.
- Object bertipe memastikan struktur jelas.
- Array of object adalah pola inti backend.
- TypeScript membantu, tapi logika tetap penting.
Tugas (Output Pertemuan 4)
Kumpulkan:
1. latihan4-1.ts
2. latihan4-2.ts
3. Jawaban tertulis untuk tantangan logika
Refleksi Pembelajaran
Jawab singkat:
1. Masalah apa yang paling sering muncul saat mengelola banyak data?
2. Apakah TypeScript cukup untuk menjaga data tetap valid?
3. Menurutmu, apa peran developer backend dalam menjaga kualitas data?