JavaScript - Metode Statik

Hai teman-teman, para ahli JavaScript masa depan! Hari ini, kita akan mandulkan diri kita ke dunia yang menarik dari metode statik. Jangan khawatir jika Anda masih baru dalam pemrograman - saya akan mengantar Anda melalui konsep ini langkah demi langkah, seperti yang saya lakukan bagi ratusan murid selama tahun-tahun mengajar saya. Jadi, ambil secangkir kopi (atau minuman favorit Anda), dan mari kita mulai perjalanan yang menarik ini bersama!

JavaScript - Static Methods

Apa Itu Metode Statik?

Definisi dan Tujuan

Metode statik adalah jenis khusus metode dalam JavaScript yang milik kelas itu sendiri, bukan milik instance khusus dari kelas. Pensejukkan pikiran Anda tentang mereka sebagai fungsi utilitas yang berkaitan dengan kelas tapi tidak memerlukan akses ke data objek individual.

Imaginasi sebuah kotak peralatan (kelas kita) dengan berbagai peralatan di dalamnya. Beberapa peralatan (metode biasa) dimaksudkan untuk digunakan pada objek khusus, sedangkan yang lain (metode statik) adalah peralatan umum yang dapat digunakan tanpa memerlukan objek tertentu.

Sintaks

Untuk membuat metode statik, kita gunakan kata kunci static sebelum nama metode. Berikut adalah sintaks dasar:

class ClassName {
static methodName() {
// Tubuh metode
}
}

Karakteristik Utama

  1. Metode statik dipanggil pada kelas itu sendiri, bukan pada instance kelas.
  2. Mereka tidak dapat mengakses data spesifik instance (yaitu, mereka tidak dapat menggunakan this untuk merujuk ke properti objek).
  3. Mereka sering digunakan untuk fungsi utilitas yang berkaitan dengan kelas.

Sekarang kita memiliki pengertian dasar, mari kita lihat beberapa contoh untuk benar-benar memperkuat konsep ini di pikiran kita.

Contoh

Contoh 1: Calculator Sederhana

Mari kita buat kelas Calculator dengan beberapa metode statik:

class Calculator {
static add(a, b) {
return a + b;
}

static subtract(a, b) {
return a - b;
}

static multiply(a, b) {
return a * b;
}

static divide(a, b) {
if (b === 0) {
return "Error: Division by zero";
}
return a / b;
}
}

// Menggunakan metode statik
console.log(Calculator.add(5, 3));      // Output: 8
console.log(Calculator.subtract(10, 4)); // Output: 6
console.log(Calculator.multiply(2, 6));  // Output: 12
console.log(Calculator.divide(15, 3));   // Output: 5
console.log(Calculator.divide(10, 0));   // Output: Error: Division by zero

Dalam contoh ini, kita telah membuat kelas Calculator dengan empat metode statik: add, subtract, multiply, dan divide. Perhatikan bagaimana kita memanggil metode ini langsung pada kelas Calculator, tanpa membuat instance kelas.

Metode-metode ini adalah kandidat yang sempurna untuk metode statik karena mereka melakukan perhitungan umum yang tidak memerlukan data objek spesifik.

Contoh 2: Format Penyajian Tanggal

Mari kita buat kelas DateFormatter dengan metode statik untuk memformat tanggal:

class DateFormatter {
static formatDate(date) {
const day = String(date.getDate()).padStart(2, '0');
const month = String(date.getMonth() + 1).padStart(2, '0'); // Bulan adalah indeks nol
const year = date.getFullYear();

return `${day}/${month}/${year}`;
}
}

const today = new Date();
console.log(DateFormatter.formatDate(today)); // Output: Tanggal saat ini dalam format DD/MM/YYYY

Dalam contoh ini, metode statik formatDate kita menerima objek Date dan mengembalikan string yang diformat. Kita dapat menggunakan metode ini tanpa membuat instance DateFormatter, yang membuatnya sangat praktis untuk tugas pemformatan tanggal cepat.

Contoh 3: Generator Nomor Acak

Mari kita buat kelas RandomGenerator dengan metode statik untuk menghasilkan nomor acak:

class RandomGenerator {
static getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}

static getRandomFloat(min, max) {
return Math.random() * (max - min) + min;
}

static getRandomBoolean() {
return Math.random() < 0.5;
}
}

console.log(RandomGenerator.getRandomInt(1, 10));    // Output: Nomor bulat acak antara 1 dan 10
console.log(RandomGenerator.getRandomFloat(0, 1));   // Output: Nomor pecahan acak antara 0 dan 1
console.log(RandomGenerator.getRandomBoolean());     // Output: true atau false secara acak

Kelas RandomGenerator ini menyediakan metode utilitas untuk menghasilkan jenis nilai acak berbeda. Metode-metode ini tidak memerlukan data objek spesifik, membuatnya kandidat yang sempurna untuk metode statik.

Contoh 4: Utilitas String

Mari kita buat kelas StringUtils dengan beberapa metode statik untuk manipulasi string:

class StringUtils {
static capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
}

static reverse(str) {
return str.split('').reverse().join('');
}

static countVowels(str) {
return (str.match(/[aeiou]/gi) || []).length;
}
}

console.log(StringUtils.capitalize("hELLO")); // Output: "Hello"
console.log(StringUtils.reverse("JavaScript")); // Output: "tpircSavaJ"
console.log(StringUtils.countVowels("Beautiful")); // Output: 5

Metode utilitas string ini adalah contoh yang bagus dari metode statik. Mereka melakukan operasi pada string tanpa memerlukan data instance spesifik.

Kapan Menggunakan Metode Statik

Metode statik sangat berguna dalam situasi berikut:

  1. Fungsi utilitas yang tidak memerlukan keadaan objek.
  2. Metode pabrik yang membuat instance kelas.
  3. Operasi yang berkaitan konseptual dengan kelas tapi tidak tergantung pada data instance.

Tabel Metode Statik

Berikut adalah ringkasan metode statik yang kita bahas dalam contoh:

Kelas Metode Deskripsi
Calculator add(a, b) Menambahkan dua angka
Calculator subtract(a, b) Mengurangi angka kedua dari yang pertama
Calculator multiply(a, b) Mengalikan dua angka
Calculator divide(a, b) Membagi angka pertama dengan angka kedua
DateFormatter formatDate(date) Memformat tanggal ke DD/MM/YYYY
RandomGenerator getRandomInt(min, max) Menghasilkan nomor bulat acak
RandomGenerator getRandomFloat(min, max) Menghasilkan nomor pecahan acak
RandomGenerator getRandomBoolean() Menghasilkan boolean secara acak
StringUtils capitalize(str) Membuat huruf pertama string menjadi besar
StringUtils reverse(str) Membalik string
StringUtils countVowels(str) Menghitung vokal di dalam string

Dan itu adalah nya, teman-teman! Kita telah menjelajahi dunia metode statik di JavaScript, dari definisi dasar hingga contoh praktis. Ingat, metode statik adalah seperti pisau Swiss Army di kotak peralatan JavaScript Anda - mereka multifungsi, praktis, dan tidak memerlukan objek untuk melakukan pekerjaannya.

Sekarang Anda teruskan perjalanan JavaScript Anda, Anda akan menemukan banyak penggunaan untuk metode statik. Mereka adalah fitur yang kuat dan dapat membuat kode Anda lebih bersih dan lebih terorganisir. Jadi, teruskan dan code, teman-teman saya, dan may your static methods always be useful and your bugs few!

Credits: Image by storyset