Tipe Primitif dan Tipe Referensi dalam TypeScript


TypeScript, sebagai superset dari JavaScript, menyediakan berbagai tipe data yang digunakan untuk mendefinisikan struktur dan perilaku data dalam aplikasi. Dalam TypeScript, tipe data dapat dibagi menjadi dua kategori utama: Tipe Primitif dan Tipe Referensi. Memahami perbedaan antara keduanya sangat penting karena dapat memengaruhi cara data disalin, dimodifikasi, dan diakses dalam program.
1. Apa Itu Tipe Primitif?
Tipe primitif adalah tipe data dasar yang memiliki nilai yang tidak dapat diubah setelah didefinisikan (immutable). Tipe ini menyimpan nilai itu sendiri secara langsung dalam memori. Artinya, ketika kita bekerja dengan tipe primitif, kita bekerja langsung dengan nilai tersebut, bukan referensinya.
Contoh tipe primitif dalam TypeScript:
string
: Digunakan untuk menyimpan teks. Contoh:"hello"
,'world'
.number
: Digunakan untuk menyimpan angka, baik bilangan bulat maupun pecahan. Contoh:42
,3.14
.boolean
: Digunakan untuk nilai benar atau salah. Contoh:true
,false
.null
: Tipe yang hanya memiliki satu nilai, yaitunull
.undefined
: Tipe yang menunjukkan bahwa suatu variabel belum diinisialisasi.symbol
: Digunakan untuk membuat identifier yang unik.bigint
: Untuk bekerja dengan angka yang lebih besar daripada yang dapat ditangani oleh tipenumber
.
Karakteristik Tipe Primitif:
Nilai disalin secara langsung, bukan referensi.
Nilai tersebut tidak dapat diubah setelah ditetapkan (immutable).
Perbandingan dilakukan berdasarkan nilai itu sendiri, bukan referensinya.
Contoh Penggunaan Tipe Primitif:
let a: number = 10;
let b: number = a; // Salinan nilai dari 'a' ke 'b'
b = 20;
console.log(a); // Output: 10 (nilai 'a' tidak berubah)
2. Apa Itu Tipe Referensi?
Tipe referensi, di sisi lain, mengacu pada tipe data yang lebih kompleks, seperti objek, array, atau fungsi. Ketika Anda bekerja dengan tipe referensi, Anda sebenarnya bekerja dengan referensi atau alamat memori yang menunjuk ke nilai tersebut. Artinya, variabel yang berisi tipe referensi tidak menyimpan nilai secara langsung, melainkan menyimpan lokasi memori tempat data tersebut disimpan.
Contoh tipe referensi dalam TypeScript:
Object
: Struktur data yang berisi properti dan metode.Array
: Koleksi data dengan tipe tertentu (atau campuran tipe).Function
: Fungsi juga merupakan tipe referensi.Class
: Sebuah blueprint untuk membuat objek.Map
,Set
: Tipe struktur data lain yang termasuk dalam tipe referensi.
Karakteristik Tipe Referensi:
Nilai disimpan dalam lokasi memori terpisah dan variabel hanya berisi referensi ke lokasi tersebut.
Nilai dapat diubah setelah penetapan (mutable).
Perbandingan dilakukan berdasarkan referensi (alamat memori), bukan nilai yang disimpan.
Contoh Penggunaan Tipe Referensi:
const obj1 = { value: 10 };
const obj2 = obj1; // obj2 merujuk ke alamat memori yang sama dengan obj1
obj2.value = 20;
console.log(obj1.value); // Output: 20 (obj1 berubah karena referensinya sama)
3. Perbedaan Antara Tipe Primitif dan Tipe Referensi
Perbedaan antara tipe primitif dan tipe referensi sangat penting dalam pengelolaan data di dalam program. Berikut adalah ringkasan perbedaannya:
Aspek | Tipe Primitif | Tipe Referensi |
Penyimpanan | Nilai disalin secara langsung. | Referensi (alamat memori) disalin. |
Mutabilitas | Immutable (tidak bisa diubah). | Mutable (dapat diubah). |
Perbandingan | Membandingkan nilai langsung. | Membandingkan referensi (alamat memori). |
Contoh Perbandingan:
let x = 10;
let y = x; // Salinan nilai
y = 15;
console.log(x); // Output: 10
const a = { value: 10 };
const b = a; // Referensi yang sama
b.value = 15;
console.log(a.value); // Output: 15 (karena a dan b merujuk ke objek yang sama)
4. Kesimpulan
Tipe Primitif cocok digunakan untuk menyimpan data yang tidak membutuhkan perubahan setelah ditetapkan, seperti angka atau string. Mereka lebih efisien dalam hal memori dan sering digunakan dalam perhitungan atau kondisi logika.
Tipe Referensi digunakan ketika data yang lebih kompleks diperlukan, seperti objek dan array. Tipe ini lebih fleksibel, tetapi perlu diperhatikan bahwa perubahan pada satu variabel dapat mempengaruhi variabel lain yang merujuk ke objek atau array yang sama.
Memahami perbedaan ini sangat penting dalam pengelolaan memori dan efektivitas kode di TypeScript. Dengan memilih tipe yang tepat untuk data Anda, Anda dapat menghindari potensi bug yang disebabkan oleh pengelolaan referensi yang tidak benar dan meningkatkan kinerja aplikasi Anda.
Semoga artikel ini membantu Anda memahami konsep Tipe Primitif dan Tipe Referensi dalam TypeScript! Jika Anda memiliki pertanyaan lebih lanjut, jangan ragu untuk bertanya. ๐
Subscribe to my newsletter
Read articles from Ariska Hidayat directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Ariska Hidayat
Ariska Hidayat
I am an enthusiastic researcher and developer with a passion for using technology to innovate in business and education.