Tipe Data: number
Tujuan Pembelajaran
Section titled “Tujuan Pembelajaran”Setelah membaca halaman ini, kamu akan mampu:
- Menggunakan tipe
numberuntuk menyimpan angka - Membedakan bilangan bulat dan desimal dalam TypeScript
- Melakukan operasi aritmatika dasar
- Menggunakan metode berguna pada angka
Pendahuluan
Section titled “Pendahuluan”number adalah tipe data yang digunakan untuk menyimpan nilai angka — baik bilangan bulat (1, 2, 100) maupun bilangan desimal (3.14, 0.5, -2.7).
Di TypeScript (dan JavaScript), tidak ada perbedaan antara tipe “integer” dan “float” seperti di bahasa lain — semuanya masuk ke dalam satu tipe: number.
Analogi: Kalkulator
Section titled “Analogi: Kalkulator”Bayangkan tipe number seperti kalkulator. Kalkulator hanya mengerti angka — tidak bisa dimasukkan teks “dua ratus”. Ia hanya menerima: 200, 3.14, -50, dan sebagainya.
Variabel bertipe number pun seperti itu — ia hanya mau menerima angka.
Jenis-jenis Nilai number
Section titled “Jenis-jenis Nilai number”// Bilangan bulat (integer)let jumlahSiswa: number = 36let peringkat: number = 1let tahun: number = 2024let suhu: number = -5 // bisa negatif
// Bilangan desimal (float)let nilaiRataRata: number = 87.5let beratBadan: number = 52.3let pi: number = 3.14159
// Notasi ilmiahlet jarakBumi: number = 1.496e11 // 149.600.000.000 meter
// Hexadecimal (basis 16)let warnaHex: number = 0xFF // 255 dalam basis 10
// Nilai khususlet tidakValid: number = NaN // Not a Numberlet takTerhingga: number = Infinitylet negatifTakTerhingga: number = -InfinityOperasi Aritmatika
Section titled “Operasi Aritmatika”TypeScript mendukung semua operasi matematika dasar:
| Operator | Nama | Contoh | Hasil |
|---|---|---|---|
+ |
Penjumlahan | 5 + 3 |
8 |
- |
Pengurangan | 10 - 4 |
6 |
* |
Perkalian | 6 * 7 |
42 |
/ |
Pembagian | 15 / 4 |
3.75 |
% |
Modulus (sisa bagi) | 17 % 5 |
2 |
** |
Pangkat | 2 ** 8 |
256 |
Mari Mencoba
Section titled “Mari Mencoba”Buat file src/bab1/number.ts:
// Deklarasi variabel numberconst nilaiMatematika: number = 85const nilaiIndonesia: number = 90const nilaiInggris: number = 78const jumlahMapel: number = 3
// Operasi aritmatikaconst totalNilai: number = nilaiMatematika + nilaiIndonesia + nilaiInggrisconst rataRata: number = totalNilai / jumlahMapel
console.log("=== LAPORAN NILAI ===")console.log("Matematika :", nilaiMatematika)console.log("Indonesia :", nilaiIndonesia)console.log("Inggris :", nilaiInggris)console.log("Total Nilai :", totalNilai)console.log("Rata-rata :", rataRata)
// Operasi tambahanconst nilaiDibulatkan: number = Math.round(rataRata)const nilaiMaksimum: number = Math.max(nilaiMatematika, nilaiIndonesia, nilaiInggris)const nilaiMinimum: number = Math.min(nilaiMatematika, nilaiIndonesia, nilaiInggris)
console.log("---")console.log("Dibulatkan :", nilaiDibulatkan)console.log("Nilai max :", nilaiMaksimum)console.log("Nilai min :", nilaiMinimum)Jalankan:
tsx src/bab1/number.tsOutput:
=== LAPORAN NILAI ===Matematika : 85Indonesia : 90Inggris : 78Total Nilai : 253Rata-rata : 84.33333333333333---Dibulatkan : 84Nilai max : 90Nilai min : 78Penjelasan Baris per Baris
Section titled “Penjelasan Baris per Baris”const totalNilai: number = nilaiMatematika + nilaiIndonesia + nilaiInggrisMenjumlahkan tiga variabel angka dan menyimpan hasilnya ke totalNilai.
const rataRata: number = totalNilai / jumlahMapelMembagi total nilai dengan jumlah mata pelajaran. Hasilnya berupa desimal.
const nilaiDibulatkan: number = Math.round(rataRata)Math.round() adalah fungsi bawaan TypeScript untuk membulatkan angka ke bilangan bulat terdekat.
const nilaiMaksimum: number = Math.max(nilaiMatematika, nilaiIndonesia, nilaiInggris)Math.max() mengembalikan nilai terbesar dari semua angka yang diberikan.
Metode Math yang Sering Digunakan
Section titled “Metode Math yang Sering Digunakan”Math.round(4.6) // 5 — bulatkan ke terdekatMath.floor(4.9) // 4 — bulatkan ke bawahMath.ceil(4.1) // 5 — bulatkan ke atasMath.abs(-10) // 10 — nilai absolut (hapus tanda negatif)Math.sqrt(25) // 5 — akar kuadratMath.pow(2, 10) // 1024 — pangkat (sama dengan 2**10)Math.max(1, 5, 3) // 5 — nilai terbesarMath.min(1, 5, 3) // 1 — nilai terkecilMengubah Number ke String dan Sebaliknya
Section titled “Mengubah Number ke String dan Sebaliknya”// Number ke Stringlet nilai: number = 90let nilaiStr: string = nilai.toString()let nilaiStr2: string = String(nilai)console.log(typeof nilaiStr) // "string"
// String ke Numberlet inputUser: string = "85"let nilaiNum: number = Number(inputUser)let nilaiNum2: number = parseInt(inputUser)console.log(typeof nilaiNum) // "number"Kesalahan Umum
Section titled “Kesalahan Umum”❌ Operasi angka dengan string menghasilkan hasil tak terduga
Section titled “❌ Operasi angka dengan string menghasilkan hasil tak terduga”let nilai: number = 90let bonus: string = "10"
let total = nilai + bonus // Bukan 100!console.log(total) // "9010" — string digabung, bukan dijumlah!Mengapa? Karena + antara number dan string diinterpretasikan sebagai penggabungan string, bukan penjumlahan.
Cara memperbaiki:
let total = nilai + Number(bonus) // 100 ✓❌ Pembagian menghasilkan NaN
Section titled “❌ Pembagian menghasilkan NaN”let hasil = 0 / 0console.log(hasil) // NaN
let cek = Number("abc")console.log(cek) // NaN — "abc" bukan angka validLatihan
Section titled “Latihan”Buat file src/bab1/latihan-number.ts:
- Buat variabel untuk menyimpan panjang dan lebar sebuah ruangan (dalam meter)
- Hitung luas ruangan (panjang × lebar)
- Hitung keliling ruangan (2 × (panjang + lebar))
- Tampilkan hasil dengan format yang rapi
Ringkasan
Section titled “Ringkasan”numbermenyimpan semua jenis angka: bulat, desimal, negatif- Operasi aritmatika:
+,-,*,/,%,** Mathmenyediakan banyak fungsi matematika berguna- Hati-hati operasi
+antara number dan string — bisa menghasilkan penggabungan string - Konversi:
Number("85")untuk string ke number,.toString()untuk number ke string