Skip to main content

Static Method didalam Class Javascript

Seluruh kendaraan pasti butuh yang namanya perawatan bukan? Jika iya, tentu kita perlu membuat method repair untuk memperbaiki kendaraan tersebut. 
Dalam analogi dunia nyata, ketika kendaraan mengalami kerusakan maka kendaraan tersebut akan diperbaiki di bengkel (factory), sehingga kita perlu membuat class baru yang berperan sebagai factory, sebutlah class tersebut VehicleFactory. Di dalam kelas VehicleFactory terdapat satu method repair() yang dapat menerima banyak kendaraan sebagai parameternya.

  1. class Vehicle {

  2.   constructor(licensePlate, manufacture) {

  3.       this.licensePlate = licensePlate;

  4.       this.manufacture = manufacture;

  5.       this.engineActive = false;

  6.   }

  7.    /*

  8.   kode lainnya

  9.   */

  10. }

  11.  

  12. /* kode lainnya dalam pembuatan class Car, 

  13. Motorcycle, dsb. */

  14.  

  15.  

  16. class VehicleFactory {

  17.  repair(vehicles) {

  18.     vehicles.forEach(vehicle => {

  19.       console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)

  20.     })

  21.   }

  22. }


Untuk mengakses method dari class, sejauh ini kita perlu membuat instance dari classnya terlebih dahulu. Sehingga untuk memanggil repair(), kita perlu membuat instance dari class VehicleFactory

  1. const johnCar = new Car("H121S", "Honda", 4);

  2. const tomMotor = new Motorcycle("GF121J", "Yamaha", 2);

  3. const dimasCar = new Car("TA1408K", "Tesla", 4);

  4.  

  5. /* Membuat instance untuk memanggil fungsi repair */

  6. const vehicleFactory = new VehicleFactory();

  7. vehicleFactory.repair([johnCar, tomMotor, dimasCar]);

  8.  

  9. /* output:

  10. Kendaraan H121S sedang melakukan perawatan

  11. Kendaraan GF121J sedang melakukan perawatan

  12. Kendaraan TA1408K sedang melakukan perawatan

  13. */


Kode tersebut berjalan sesuai harapan namun tidak efektif. Mengapa? Karena kita perlu membuat instance untuk sekedar memanggil satu fungsi dari class-nya tersebut. Membuat instance adalah membuat sebuah objek baru yang terbentuk melalui blueprint sehingga membutuhkan memori ekstra. Jika kita dapat mengakses method tersebut tanpa melalui instance mengapa tidak? Pada kasus inilah kita membutuhkan sebuah static method. Static method merupakan method yang tidak dapat dipanggil oleh instance dari class, namun dapat dipanggil melalui class-nya sendiri.
Pada ES6 class kita dapat membuat static method dengan menambahkan keyword static sebelum deklarasi method-nya:

  1. class Vehicle {

  2.   constructor(licensePlate, manufacture) {

  3.       this.licensePlate = licensePlate;

  4.       this.manufacture = manufacture;

  5.       this.engineActive = false;

  6.   }

  7.    /*

  8.   kode lainnya

  9.   */

  10. }

  11.  

  12. /* kode lainnya dalam pembuatan class Car, 

  13. Motorcycle, dsb. */

  14.  

  15. class VehicleFactory {

  16.  static repair(vehicles) {

  17.     vehicles.forEach(vehicle => {

  18.       console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)

  19.     })

  20.   }

  21. }


Kemudian untuk memanggil methodnya kita bisa panggil melalui class Vehicle kemudian repair().
Seluruh kendaraan pasti butuh yang namanya perawatan bukan? Jika iya, tentu kita perlu membuat method repair untuk memperbaiki kendaraan tersebut. Dalam analogi dunia nyata, ketika kendaraan mengalami kerusakan maka kendaraan tersebut akan diperbaiki di bengkel (factory), sehingga kita perlu membuat class baru yang berperan sebagai factory, sebutlah class tersebut VehicleFactory. Di dalam kelas VehicleFactory terdapat satu method repair() yang dapat menerima banyak kendaraan sebagai parameternya. 

  1. class Vehicle {

  2.   constructor(licensePlate, manufacture) {

  3.       this.licensePlate = licensePlate;

  4.       this.manufacture = manufacture;

  5.       this.engineActive = false;

  6.   }

  7.    /*

  8.   kode lainnya

  9.   */

  10. }

  11.  

  12. /* kode lainnya dalam pembuatan class Car, 

  13. Motorcycle, dsb. */

  14.  

  15.  

  16. class VehicleFactory {

  17.  repair(vehicles) {

  18.     vehicles.forEach(vehicle => {

  19.       console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)

  20.     })

  21.   }

  22. }


Untuk mengakses method dari class, sejauh ini kita perlu membuat instance dari classnya terlebih dahulu. Sehingga untuk memanggil repair(), kita perlu membuat instance dari class VehicleFactory

  1. const johnCar = new Car("H121S", "Honda", 4);

  2. const tomMotor = new Motorcycle("GF121J", "Yamaha", 2);

  3. const dimasCar = new Car("TA1408K", "Tesla", 4);

  4.  

  5. /* Membuat instance untuk memanggil fungsi repair */

  6. const vehicleFactory = new VehicleFactory();

  7. vehicleFactory.repair([johnCar, tomMotor, dimasCar]);

  8.  

  9. /* output:

  10. Kendaraan H121S sedang melakukan perawatan

  11. Kendaraan GF121J sedang melakukan perawatan

  12. Kendaraan TA1408K sedang melakukan perawatan

  13. */


Kode tersebut berjalan sesuai harapan namun tidak efektif. Mengapa? Karena kita perlu membuat instance untuk sekedar memanggil satu fungsi dari class-nya tersebut. Membuat instance adalah membuat sebuah objek baru yang terbentuk melalui blueprint sehingga membutuhkan memori ekstra. Jika kita dapat mengakses method tersebut tanpa melalui instance mengapa tidak? Pada kasus inilah kita membutuhkan sebuah static method. Static method merupakan method yang tidak dapat dipanggil oleh instance dari class, namun dapat dipanggil melalui class-nya sendiri.
Pada ES6 class kita dapat membuat static method dengan menambahkan keyword static sebelum deklarasi method-nya:

  1. class Vehicle {

  2.   constructor(licensePlate, manufacture) {

  3.       this.licensePlate = licensePlate;

  4.       this.manufacture = manufacture;

  5.       this.engineActive = false;

  6.   }

  7.    /*

  8.   kode lainnya

  9.   */

  10. }

  11.  

  12. /* kode lainnya dalam pembuatan class Car, 

  13. Motorcycle, dsb. */

  14.  

  15. class VehicleFactory {

  16.  static repair(vehicles) {

  17.     vehicles.forEach(vehicle => {

  18.       console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)

  19.     })

  20.   }

  21. }


Kemudian untuk memanggil methodnya kita bisa panggil melalui class Vehicle kemudian repair().

Comments

Popular posts from this blog

Contoh Menggunakan API Dan Fetch di dalam Web Sederhana

Apakah Anda sudah berhasil menerapkan Fetch dalam menampilkan data dari API TheSportDB? Jika belum, yuk kita lakukan bersama-sama! Pada dokumentasi API menyebutkan bahwa, untuk mendapatkan daftar klub olahraga kita dapat menggunakan target url:  https://www.thesportsdb.com/api/v1/json/1/searchteams.php?t=Arsenal Sebelum menuliskan langsung pada proyek dengan fetch, biasakan ketika hendak mengkonsumsi API biasakan untuk mencobanya menggunakan aplikasi Postman terlebih dahulu. Jika target url tersebut diakses melalui Postman dengan GET Request, maka akan menghasilkan response dengan struktur JSON yang tampak pada  tab Body . Pada response JSON yang dihasilkan menampung satu  key  dengan nama  teams  yang memiliki  value  berupa sebuah array. Di dalam array tersebut menampilkan banyak data terkait klub olahraga yang memiliki nama Arsenal. Kita dapat memanfaatkan key  strTeam  untuk mendapatkan nama klub,  strTeamBadge  untuk mendapatkan logo klub, dan  strDescriptionEN  untuk mendapatkan

Contoh Penggunaan Default Parameters Di Javascript

Dengan menggunakan default parameters, nilai pada parameter tidak akan menghasilkan  undefined  walaupun kita tidak memberikan nilai ketika fungsi tersebut dipanggil. Default parameter dapat digunakan pada regular function ataupun arrow function. Berikut contoh dari penggunaan default parameter: Regular Function function sayHello ( name = "Stranger" , greet = "Hello" ) {     console . log ( `${greet} ${name}!` ); }   sayHello ( "Dimas" ,   "Hai" ); sayHello ();   /* output: Hai Dimas! Hello Stranger! */ Arrow Function const sayHello = ( name = "Stranger" , greet = "Hello" ) => console . log ( `${greet} ${name}!` );     sayHello ( "Dimas" ,   "Hai" ); sayHello ();     /* output: Hai Dimas! Hello Stranger! */ Pada contoh di atas, kita menggunakan tanda assignment (=) untuk menetapkan parameter  name  dengan nilai default  “Stranger” , dan parameter greet dengan nilai default  “Hello” . Hal ini

Belajar Babel Loader Javascript ES6

Apa itu  babel  atau  babel.js ? Babel merupakan sebuah transpiler yang bertugas untuk mengubah sintaks JavaScript modern (ES6+) menjadi sintaks yang dapat didukung penuh oleh seluruh browser. JavaScript merupakan bahasa pemrograman yang berkembang sangat pesat. Komunitasnya besar, dan tiap tahun selalu terdapat versi yang baru.  Namun perkembangan yang pesat tadi ternyata membutuhkan waktu yang lama untuk diadaptasi oleh browser atau Node.js. Lalu jika kita ingin mencoba sintaks terbaru di JavaScript apakah kita perlu menunggu hingga seluruh browser berhasil mengadaptasi pembaharuan tersebut? Tentu tidak!  Dengan babel Anda dapat menuliskan sintaks JavaScript versi terbaru tanpa khawatir memikirkan dukungan pada browser. Karena babel akan mengubah sintaks yang kita tuliskan menjadi kode yang dapat diterima browser. Jika Anda penasaran bagaimana cara babel bekerja, babel menyediakan sebuah playground yang dapat kita manfaatkan untuk mengubah sintaks JavaScript modern (ES6+) menjadi sin