TypeScript - Accessors (Penggunaan Aksesors)

Halo sana, para pemrogram yang sedang belajar! Hari ini, kita akan mendalamkan diskusi tentang dunia yang menarik dari TypeScript accessors. Jangan khawatir jika Anda baru dalam programming - saya akan memandu Anda melalui topik ini secara bertahap, seperti yang saya lakukan untuk ribuan murid selama tahun-tahun mengajar saya. Jadi, ambil secangkir minuman kesukaan Anda, dan mari kita mulai!

TypeScript - Accessors

Apa Itu Accessors?

Sebelum kita masuk ke detil accessors TypeScript, mari kita mengerti apa itu accessors secara umum. Bayangkan Anda memiliki sebuah peti harta (itu adalah objek kita), dan Anda ingin mengendalikan bagaimana orang lain berinteraksi dengan harta di dalamnya (properti objek). Accessors adalah seperti kunci magis yang memungkinkan Anda mendapatkan atau mengatur harta tersebut secara terkontrol.

Dalam TypeScript, kita memiliki dua jenis accessors:

  1. Getters: Ini membantu kita mendapatkan nilai properti.
  2. Setters: Ini memungkinkan kita mengatur nilai properti.

Sekarang, mari kita jelajahi masing-masing dari ini.

Getters di TypeScript

Apa Itu Getter?

Sebuah getter adalah jenis method khusus yang memungkinkan Anda mengakses properti objek. Itu seperti memiliki seorang asisten pribadi yang mengambil informasi bagi Anda.

Bagaimana Mendefinisikan Getter

mari kita lihat contoh sederhana:

class Person {
private _name: string;

constructor(name: string) {
this._name = name;
}

get name(): string {
console.log("Mengambil nama");
return this._name;
}
}

let person = new Person("Alice");
console.log(person.name); // Output: Mengambil nama \n Alice

Dalam contoh ini:

  • Kita memiliki kelas Person dengan properti pribadi _name.
  • Kita mendefinisikan getter bernama name menggunakan kata kunci get.
  • Ketika kita mengakses person.name, ia memanggil method getter kita.

Mengapa Menggunakan Getters?

  1. Properti Terhitung: Getters dapat mengembalikan nilai yang dihitung.
class Circle {
private _radius: number;

constructor(radius: number) {
this._radius = radius;
}

get area(): number {
return Math.PI * this._radius ** 2;
}
}

let circle = new Circle(5);
console.log(circle.area); // Output: 78.53981633974483
  1. Lazy Loading: Getters dapat membantu meningkatkan kinerja dengan memuat data hanya saat diperlukan.
class DataFetcher {
private _data: string | null = null;

get data(): string {
if (this._data === null) {
console.log("Mengambil data...");
this._data = "Data yang mahal";
}
return this._data;
}
}

let fetcher = new DataFetcher();
console.log(fetcher.data); // Output: Mengambil data... \n Data yang mahal
console.log(fetcher.data); // Output: Data yang mahal (tidak ada pengambilan data kali ini)

Setters di TypeScript

Apa Itu Setter?

Sebuah setter adalah seperti lawan dari getter. Itu adalah method yang mengatur nilai properti, biasanya dengan logika tambahan.

Bagaimana Mendefinisikan Setter

Berikut adalah contoh dasar:

class Temperature {
private _celsius: number = 0;

set celsius(value: number) {
if (value < -273.15) {
throw new Error("Suhu di bawah nol mutlak tidak mungkin");
}
this._celsius = value;
}

get celsius(): number {
return this._celsius;
}
}

let temp = new Temperature();
temp.celsius = 25; // Ini memanggil setter
console.log(temp.celsius); // Output: 25

// temp.celsius = -300; // Ini akan mengeluarkan kesalahan

Dalam contoh ini:

  • Kita memiliki kelas Temperature dengan properti _celsius yang pribadi.
  • Kita mendefinisikan setter untuk celsius yang memeriksa nilai valid sebelum mengaturnya.

Mengapa Menggunakan Setters?

  1. Validasi Data: Setters dapat memastikan bahwa hanya nilai yang valid saja diberikan ke properti.

  2. Efek Samping: Setters dapat memicu tindakan lain saat properti diubah.

class User {
private _name: string = "";
private _lastUpdated: Date = new Date();

set name(value: string) {
this._name = value;
this._lastUpdated = new Date();
}

get name(): string {
return this._name;
}

get lastUpdated(): Date {
return this._lastUpdated;
}
}

let user = new User();
user.name = "Bob";
console.log(user.name); // Output: Bob
console.log(user.lastUpdated); // Output: Tanggal dan waktu saat ini

Tabel Metode Aksesors

Berikut adalah ringkasan metode aksesors yang kita bahas:

Tipe Aksesors Kata Kunci Tujuan Contoh
Getter get Mengambil nilai properti get name(): string { return this._name; }
Setter set Mengatur nilai properti set name(value: string) { this._name = value; }

Kesimpulan

Accessors di TypeScript menyediakan cara yang kuat untuk mengendalikan bagaimana properti objek diakses dan diubah. Mereka memungkinkan Anda menambahkan logika, validasi, dan properti terhitung ke kelas Anda, membuat kode Anda lebih kuat dan mudah dipelihara.

Ingat, seperti belajar keterampilan baru, menguasai accessors memerlukan latihan. Jangan frustasi jika itu tidak langsung berjalan - terus coding, terus mencoba, dan segera Anda akan menggunakan getters dan setters seperti seorang ahli!

Seperti yang saya selalu katakan kepada murid-muridku, programming adalah seperti belajar bahasa baru. Awalnya, itu mungkin tampak membingungkan, tetapi dengan kesabaran dan latihan, Anda akan segera "berbicara" TypeScript secara lancar. Selamat coding, dan jangan lupa bersenang-senang di jalannya!

Credits: Image by storyset