Tipe Data: bigint
Tujuan Pembelajaran
Section titled “Tujuan Pembelajaran”Setelah membaca halaman ini, kamu akan mampu:
- Menjelaskan mengapa
bigintdibutuhkan - Menulis nilai bigint dengan benar
- Membedakan
numberdanbigint - Menghindari kesalahan mencampur keduanya
Pendahuluan
Section titled “Pendahuluan”Tipe number sangat cukup untuk hampir semua kebutuhan siswa: nilai ujian, harga barang, umur, tinggi badan, dan jumlah siswa. Tapi ada batas angka yang bisa disimpan dengan aman oleh number.
Untuk angka bulat yang sangat besar, TypeScript menyediakan tipe bigint.
Penjelasan Materi
Section titled “Penjelasan Materi”Angka number di JavaScript disimpan menggunakan format yang punya batas presisi. Batas angka bulat aman adalah:
Number.MAX_SAFE_INTEGER// 9007199254740991Jika angka lebih besar dari itu, beberapa digit dapat berubah tanpa kamu sadari. bigint dibuat untuk menyimpan bilangan bulat besar dengan presisi tetap.
Analogi: Kalkulator Biasa vs Kalkulator Super
Section titled “Analogi: Kalkulator Biasa vs Kalkulator Super”Bayangkan:
numberadalah kalkulator biasa. Cukup untuk menghitung nilai, uang jajan, dan luas ruangan.bigintadalah kalkulator super. Dipakai saat menghitung jumlah transaksi bank skala besar, nomor identitas raksasa, atau data astronomi.
Kamu tidak membawa kalkulator super untuk menghitung 2 + 3, tapi alat itu penting saat angka sudah terlalu besar untuk alat biasa.
Cara Menulis bigint
Section titled “Cara Menulis bigint”Tambahkan huruf kecil n di akhir bilangan bulat:
const jumlahBintang: bigint = 999999999999999999999999nconst saldoSangatBesar: bigint = 9007199254740992nconst nol: bigint = 0nconst utang: bigint = -1000000000000000000nHuruf n adalah penanda bahwa angka tersebut bertipe bigint, bukan number.
Ilustrasi
Section titled “Ilustrasi”number┌──────────────────────────────┐│ aman sampai 9.007.199...e15 │└──────────────────────────────┘
bigint┌──────────────────────────────────────────┐│ dapat menyimpan bilangan bulat jauh lebih││ besar dengan digit tetap tepat │└──────────────────────────────────────────┘Mari Mencoba
Section titled “Mari Mencoba”Buat file src/bab1/bigint.ts:
const batasNumberAman: number = Number.MAX_SAFE_INTEGERconst angkaBesar: bigint = 9007199254740992nconst jumlahData: bigint = 123456789012345678901234567890n
console.log("Batas number aman:", batasNumberAman)console.log("Angka bigint:", angkaBesar)console.log("Jumlah data besar:", jumlahData)
const dataBaru: bigint = jumlahData + 500nconsole.log("Setelah ditambah 500:", dataBaru)Jalankan:
tsx src/bab1/bigint.tsOutput akan menampilkan angka besar tanpa pembulatan.
Penjelasan Baris per Baris
Section titled “Penjelasan Baris per Baris”const angkaBesar: bigint = 9007199254740992nconst— nilai tidak akan diubahangkaBesar— nama variabel: bigint— variabel hanya boleh menyimpan bigint9007199254740992n— angka besar dengan penandan
const dataBaru: bigint = jumlahData + 500nKedua nilai adalah bigint. Karena itu, TypeScript mengizinkan penjumlahan tersebut.
number dan bigint Tidak Boleh Dicampur Langsung
Section titled “number dan bigint Tidak Boleh Dicampur Langsung”const jumlahSiswa: number = 36const jumlahData: bigint = 1000000000000000000n
// const total = jumlahSiswa + jumlahData// Error! Operator '+' cannot be applied to types 'number' and 'bigint'.Jika memang perlu, ubah salah satu tipe secara sengaja:
const total: bigint = BigInt(jumlahSiswa) + jumlahDataconsole.log(total)Keterbatasan bigint
Section titled “Keterbatasan bigint”bigint hanya menyimpan bilangan bulat. Tidak bisa menyimpan desimal:
const harga: bigint = 12.5n// Error! BigInt literals must be integers.Jika kamu butuh angka desimal, gunakan number.
Kesalahan Umum
Section titled “Kesalahan Umum”❌ Lupa huruf n
Section titled “❌ Lupa huruf n”const angka: bigint = 999999999999999999// Error! Nilai di atas dibaca sebagai number, bukan bigint.Perbaikan:
const angka: bigint = 999999999999999999n❌ Mencampur number dan bigint
Section titled “❌ Mencampur number dan bigint”const hasil = 10n + 5// Error saat runtime jika dijalankanPerbaikan:
const hasil = 10n + 5nLatihan
Section titled “Latihan”Buat file src/bab1/latihan-bigint.ts:
- Buat konstanta
jumlahPendudukDuniabertipe bigint dengan angka besar - Buat konstanta
jumlahPendudukIndonesiabertipe bigint - Tambahkan keduanya ke dalam variabel
totalPenduduk - Tampilkan semua hasil
- Pastikan semua angka bigint diakhiri huruf
n
Ringkasan
Section titled “Ringkasan”bigintmenyimpan bilangan bulat sangat besar secara tepat- Tulis bigint dengan
ndi akhir:123n biginttidak bisa menyimpan desimalnumberdanbiginttidak boleh dicampur langsung- Untuk data normal,
numbertetap pilihan yang tepat