Introduction
Di JavaScript, class adalah template atau blueprint untuk membuat objek dengan properti dan metode tertentu. Instance adalah objek yang dibuat berdasarkan class. Membuat instance dari sebuah class adalah langkah pertama dalam menggunakan konsep object-oriented programming (OOP) di JavaScript. Dalam artikel ini, kita akan membahas cara membuat instance dalam class di JavaScript, cara kerjanya, dan bagaimana Anda bisa memanfaatkan fitur ini untuk membuat aplikasi yang lebih terstruktur dan mudah dipelihara.
1. Apa Itu Instance dalam Class di JavaScript?
Instance adalah objek yang dibuat berdasarkan class. Sebuah class dapat dianggap sebagai cetak biru atau template, sementara instance adalah objek nyata yang dibuat dengan menggunakan class tersebut. Setiap instance dapat memiliki nilai yang berbeda-beda pada properti yang didefinisikan dalam class.
Sintaks Membuat Instance:
Untuk membuat instance dari sebuah class, Anda harus menggunakan kata kunci new
diikuti dengan nama class.
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
const person1 = new Person("Alice", 25);
const person2 = new Person("Bob", 30);
Pada contoh di atas:
Person
adalah class yang memiliki konstruktor untuk menginisialisasi propertiname
danage
.person1
danperson2
adalah instance dari classPerson
, masing-masing dengan nilainame
danage
yang berbeda.
2. Membuat Instance Menggunakan Constructor
Setelah Anda mendefinisikan sebuah class, Anda dapat membuat instance dari class tersebut dengan menggunakan kata kunci new
. Constructor yang ada di dalam class akan dipanggil secara otomatis ketika Anda membuat instance baru.
Contoh Membuat Instance Menggunakan Constructor:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const person1 = new Person("Alice", 25);
const person2 = new Person("Bob", 30);
person1.greet(); // Output: Hello, my name is Alice and I am 25 years old.
person2.greet(); // Output: Hello, my name is Bob and I am 30 years old.
Pada contoh ini:
person1
danperson2
adalah dua instance yang dibuat dari classPerson
.- Metode
greet()
dapat diakses oleh kedua instance dengan nilai yang berbeda sesuai dengan properti mereka.
3. Membuat Instance dengan Nilai Default
Dalam beberapa kasus, Anda mungkin ingin memberikan nilai default jika argumen tidak diberikan saat membuat instance. Ini bisa dilakukan dengan menggunakan default parameters pada konstruktor.
Contoh Instance dengan Nilai Default:
class Person {
constructor(name = "Anonymous", age = 18) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const person1 = new Person("Alice", 25);
const person2 = new Person();
person1.greet(); // Output: Hello, my name is Alice and I am 25 years old.
person2.greet(); // Output: Hello, my name is Anonymous and I am 18 years old.
Di sini, jika Anda tidak memberikan nilai pada saat membuat instance person2
, maka nilai default Anonymous
dan 18
akan digunakan.
4. Mengakses Properti dan Metode pada Instance
Setelah membuat instance dari sebuah class, Anda dapat mengakses properti dan metode yang ada pada instance tersebut menggunakan notasi titik (.
).
Contoh Mengakses Properti dan Metode:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const person1 = new Person("Alice", 25);
console.log(person1.name); // Output: Alice
console.log(person1.age); // Output: 25
person1.greet(); // Output: Hello, my name is Alice and I am 25 years old.
Pada contoh ini, kita mengakses properti name
dan age
serta metode greet()
dari instance person1
.
5. Menggunakan Instance untuk Pewarisan (Inheritance)
Salah satu keuntungan menggunakan class di JavaScript adalah kemampuan untuk me-inherit
(mewarisi) properti dan metode dari class lain. Anda dapat membuat instance dari class induk dan class turunan.
Contoh Pewarisan dalam Class:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a sound.`);
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name); // Memanggil constructor class induk
this.breed = breed;
}
speak() {
console.log(`${this.name} barks!`);
}
}
const dog = new Dog("Buddy", "Golden Retriever");
dog.speak(); // Output: Buddy barks!
Pada contoh ini:
Dog
mewarisi classAnimal
dan menambahkan propertibreed
.- Dengan menggunakan
new Dog()
, kita membuat instance baru dari classDog
yang juga mewarisi metodespeak()
dari classAnimal
.
6. Membuat Instance dengan Metode Statis
Kadang-kadang, Anda mungkin ingin mendefinisikan metode yang tidak terkait dengan instance, melainkan dengan class itu sendiri. Metode seperti itu disebut metode statis dan diakses menggunakan nama class.
Contoh Metode Statis dalam Class:
class MathOperations {
static add(a, b) {
return a + b;
}
}
const result = MathOperations.add(5, 3); // Output: 8
console.log(result);
Di sini, add()
adalah metode statis, yang dipanggil langsung dari class MathOperations
, bukan dari instance.
Kesimpulan
Membuat instance dalam class di JavaScript adalah langkah penting dalam pemrograman berbasis objek. Dengan menggunakan class dan constructor, Anda dapat membuat objek yang memiliki struktur dan perilaku yang konsisten. Penggunaan instance memungkinkan Anda untuk bekerja dengan banyak objek dengan nilai dan metode yang berbeda, tetapi dengan struktur yang sama. Dengan pemahaman yang baik tentang cara membuat dan bekerja dengan instance, Anda dapat menulis kode JavaScript yang lebih terstruktur dan efisien.