Pertamax atau Pertalite, Bebas Ganti dengan Strategy Pattern

|

pertamax pertalite car

Bayangkan kamu punya mobil yang bisa menggunakan berbagai jenis bahan bakar seperti Pertalite hari ini dan beralih ke Pertamax besok. Dengan konsep strategy pattern, kamu tidak perlu membuat ulang mobil setiap kali ingin mengganti bahan bakar. Kamu cukup mengganti jenis bahan bakarnya, dan mobil tetap siap jalan.

Strategy Pattern adalah salah satu pola desain perilaku (behavioral design pattern) yang memungkinkan pemisahan algoritma dari objek yang menggunakannya. Menurut Gamma et al. dalam bukunya Design Patterns: Elements of Reusable Object-Oriented Software , pola ini mendefinisikan suatu keluarga algoritma, mengenkapsulasi masing-masing algoritma tersebut, dan membuatnya dapat dipertukarkan. Artinya, kamu bisa mengganti logika atau strategi secara dinamis tanpa mengubah struktur inti dari objek yang menggunakan strategi itu. Hal ini sangat membantu dalam menciptakan kode yang fleksibel dan mudah dirawat.

Mengapa Perlu Strategy Pattern ?

Di dunia pengembangan perangkat lunak modern, kebutuhan bisnis dan teknologi berubah dengan cepat. Beberapa alasan mengapa strategy pattern sangat penting sebagai berikut.

  • Fleksibilitas. Dengan memisahkan logika menjadi strategi-strategi yang terpisah, kamu bisa dengan mudah mengganti perilaku aplikasi tanpa harus memodifikasi keseluruhan kode.
  • Pemeliharaan. Kode yang terstruktur dengan baik memudahkan dalam melakukan perbaikan atau penambahan fitur baru.
  • Skalabilitas. Saat aplikasi berkembang, menambahkan strategi baru menjadi lebih mudah dan tidak mengganggu fungsionalitas yang sudah ada.

Pendekatan ini membantu mengurangi waktu dan biaya pengembangan serta meningkatkan responsivitas terhadap perubahan kebutuhan. Dengan demikian, implementasi strategy pattern tidak hanya meningkatkan kualitas kode, tetapi juga memberikan keunggulan kompetitif dalam lingkungan bisnis yang dinamis. Oya, kita bisa menjalankan code javascript ini melalui console browser.

tutorial javascript
menjalankan javascript melalui console browser

Mari kita praktikan dengan bahasa pemrograman Javascript, dengan mengikuti langkah berikut.

Membuat “Blueprint” Bahan Bakar

Pertama, kita buat semacam panduan dasar untuk bahan bakar. Panduan ini menjelaskan tiga hal utama:

  • Pengurangan: Bagaimana bahan bakar dikonsumsi saat mesin hidup.
  • Pemantauan: Cara memantau sisa bahan bakar yang ada.
  • Identifikasi Jenis: Mengetahui bahan bakar apa yang sedang digunakan.
class Fuel {
  decrease() {}
  monitorFuel(){}
  getType(){}
}

Membuat Varian Bahan Bakar

Dengan panduan dasar itu, kamu bisa menciptakan berbagai jenis bahan bakar. Misalnya:

  • Pertalite: Setiap kali mesin dinyalakan, bahan bakar berkurang satu unit.
  • Pertamax: Di sini, bahan bakar berkurang dua unit, mencerminkan perbedaan karakteristik konsumsi.

Dalam teori pemrograman berorientasi object, cara ini disebut dengan Inheritance

class Pertalite extends Fuel {
    
  constructor(volume) {
    super();
    this.volume = volume;
    this.name="Pertalite";
  }
  
  decrease() {
    this.volume--;
  }
  
  monitorFuel() {
    return this.volume;
  }
  getType(){
    return this.name;
  }
}
class Pertamax extends Fuel {
    
  constructor(volume) {
    super();
    this.volume = volume;
    this.name="Pertamax";
  }
  
  decrease() {
    this.volume = this.volume - 2;
  }
  
  monitorFuel() {
    return this.volume;
  }
  getType(){
    return this.name;
  }
}

Integrasi dengan Object Mobil

Mobil kamu tidak perlu pusing tentang detail-detail bahan bakar. Cukup pasang bahan bakar yang sudah sesuai dengan panduan, dan mobil akan bekerja dengan optimal. Artinya, kamu bisa dengan mudah mengubah dari Pertalite ke Pertamax tanpa perlu mengganti mobil—semuanya hanya dengan mengganti parameter pengisian bahan bakar.

class Car {
  refuel(fuel){
    this.fuel = fuel;
  }
  startEngine() {
    this.fuel.decrease();
  }
  
  checkFuel() {
    // Delegate the fuel monitoring to the fuel strategy
    return this.fuel.monitorFuel();
  }
  checkFuelType(){
      return this.fuel.getType();
  }
}

Menggabungkan Semuanya

Berikut adalah gambaran sederhana tentang bagaimana cara kerjanya dalam kode.

  • Buat Mobil: Kamu instansiasi mobil kamu.
  • Isi Bahan Bakar dengan Jenis Tertentu: Kamu mengisinya dengan sejumlah Pertalite atau Pertamax.
  • Nyalakan Mesin: Saat mesin dinyalakan, bahan bakar berkurang sesuai dengan jenis bahan bakar yang diberikan.
  • Cek Bahan Bakar: Kamu bisa mengecek jumlah bahan bakar yang tersisa dan jenis bahan bakar yang ada di mobil.
const calya = new Car();
calya.refuel(new Pertalite(10));
calya.startEngine();
console.log(calya.checkFuelType()+":"+calya.checkFuel());

//change the fuel

calya.refuel(new Pertamax(20));
calya.startEngine();
console.log(calya.checkFuelType()+":"+calya.checkFuel());

Output

Pertalite : 9
Pertamax : 18

Pendekatan ini, dengan menggunakan strategy pattern, membuat kode kamu fleksibel dan mudah disesuaikan. Kamu dapat mengganti jenis bahan bakar kapan saja, memastikan bahwa mobil (atau kode kamu) terus berjalan dengan lancar tanpa perlu restart total.

Selamat coding!

Leave a Reply

Your email address will not be published. Required fields are marked *