Learn
Next →

Hari 1: Pengenalan TypeScript & Type Annotations

60 min Last updated 09 Apr 2026

Mengapa TypeScript?

TypeScript adalah JavaScript dengan type system statis. TypeScript dikompilasi ke JavaScript biasa, sehingga berjalan di mana saja JS bisa jalan.

Type Annotations Dasar

// JavaScript (tidak aman)
let nama = "Budi";
nama = 42; // OK di JS, tapi salah secara logika!

// TypeScript (aman)
let namaTipe: string = "Budi";
// namaTipe = 42; // Error: Type "number" is not assignable to type "string"

// Basic types
let angka: number = 42;
let desimal: number = 3.14;
let teks: string = "Halo";
let benar: boolean = true;
let kosong: null = null;
let belumAda: undefined = undefined;
let apa: any = "apapun"; // hindari! kehilangan keamanan TypeScript

Type Inference — TypeScript Bisa Tebak Sendiri

// TypeScript otomatis menentukan tipe
let pesan = "Halo, Dunia!"; // TypeScript tahu ini string
let total = 100;             // TypeScript tahu ini number

// Jadi sama saja dengan:
let pesan2: string = "Halo, Dunia!";
let total2: number = 100;

// Tapi selalu anotasi untuk parameter fungsi!
function sapa(nama: string, umur: number): string {
    return `Halo, ${nama}! Umur: ${umur} tahun.`;
}
sapa("Budi", 25);   // ✅ OK
// sapa(25, "Budi"); // ❌ Error: argument types wrong

💡 Notice: TypeScript mendeteksi error tipe saat compile, bukan saat runtime. Ini membuat bug terdeteksi lebih awal.

Assignment

Buat fungsi hitungGaji(nama: string, gajiPokok: number, bonus: number): string yang return string "Nama: X, Gaji: Y, Total: Z". Panggil dengan data nyata dan tampilkan hasilnya.

Expected output:

Nama: Budi Santoso, Gaji: 5,000,000, Total: 6,500,000
TS index.ts
Solution
Output