Penggunaan fungsi STATICMETHOD pada PHP

Overloading di PHP menyediakan sarana untuk secara dinamis ” menciptakan ” properti dan metode . Entitas dinamis ini diproses melalui “magic method” yang dapat menciptakan berbagai tindakan di dalam class .

Metode overloading dipanggil saat berinteraksi dengan properti atau method yang belum dinyatakan atau tidak terlihat dalam ruang lingkup saat ini. Sisa bagian ini akan menggunakan istilah ” properti tidak dapat diakses ” dan ” method tidak dapat diakses ” untuk merujuk pada kombinasi deklarasi dan visibilitas .


Semua method overloading harus didefinisikan sebagai publik .

Interpretasi PHP dari ” overloading ” berbeda dari kebanyakan pemrograman berorientasi objek lainnya seperti java. Overloading pada umumnya memberikan kemampuan untuk memiliki beberapa method dengan nama yang sama tetapi jumlah dan tipe argumen yang berbeda.

Properti Overloading

Dalam PHP ada empat properti overloading, yaitu:

  1. public void __set ( string $name , mixed $value )
  2. public mixed __get ( string $name )
  3. public bool __isset ( string $name )
  4. public void __unset ( string $name )

Keterangan :

  1. __set() dijalankan ketika menulis data pada properti yang tidak dapat diakses.
  2. __get() digunakan untuk membaca data dari properti yang tidak dapat diakses.
  3. __isset() dipicu dengan memanggil method isset() atau empty() pada properti yang tidak dapat diakses.
  4. __unset() dipanggil saat  method unset() digunakan pada properti yang tidak dapat diakses.

Argumen $name adalah nama dari method yang dipanggil dan $arguments merupakan enumerasi array yang berisi parameter yang dilewatkan pada method $name.

Object-Oriented Programming (OOP) merupakan paradigma pemrograman yang menjadikan suatu objek sebagai fokus dalam mengembangkan aplikasi. OOP bertujuan untuk mempermudah programmer dalam memahami permasalahan dalam pengembangan sistem karena OOP mendekatkan programmer memahami permasalahan pengembangan sistem sebagaimana menghadapi permasalahan sehari-hari.

Objek bisa diselaraskan dengan entitas, seperti manusia, hewan, furniture, dan lain-lain. Setiap objek memiliki karateristik dan perilaku (behavioral). Selain itu objek juga memiliki komponen-komponen (objekobjek lain) penyusunnya (misal mobil di dalamnya ada cases, roda, body, dan mesin). Objek bisa menurunkan sifat ke objek-objek lain. Objek juga bisa memiliki hubungan dengan objek-objek lain. Nampak sekali bahwa penjelasan tersebut sama seperti yang terjadi di dunia nyata.

Class

Class merupakan blueprint/rancangan dari suatu objek. Class adalah gambaran umum dari suatu objek. Dikatakan bahwa Anjing adalah class, maka class Anjing memiliki karakteristik/atribute dan perilaku/behavioral yang dimiliki oleh anjing pada umumnya. Untuk lebih jelasnya perhatikan ilustrasi berikut:

Penggunaan fungsi STATICMETHOD pada PHP

Ilustrasi diatas memperlihatkan bahwa class Dog memiliki attribute (age) dan bahavioral (bark, eat, dan chase cat). Attribute dan behavioral tersebut umum dimiliki oleh anjing sehingga setiap objek yang memiliki attribute dan behavioral tersebut dikategorikan sebagai anjing. Di Java, untuk mendeklarasikan class menggunakan kata kunci “class” yang diikuti dengan nama class-nya.

[code language=”java”]
class Dog {
int age;

void bark(){
System.out.println("anjing menggongong");
}

void eat(){
System.out.println("anjing makan");
}

void chaseCat(){
System.out.println("anjing mengejar
kucing");
}
}
[/code]

Pada baris 1 dideklarasikan “class Dog”. Class Dog ini memiliki attribut “age” dan behavioral “bark”, “eat”, dan “chaseCat” yang dideklarasikan di dalam kurung kurawal. Attribut dan behavioral tersebut merupakan anggota/member dari class Penjelasan detail tentang attribut dan behavioral dibahas pada bahasan berikutnya.

Penamaan class mengikuti aturan penamaan seperti variable namun ada perbedaan sedikit, yaitu setiap kata harus diawali dengan huruf kapital/huruf besar. Misal, class “mydog” terdiri dari kata “my” dan “dog” maka huruf “m” pada “my” huruf kapital dan huruf “d” pada “dog” harus kapital juga. Dari “mydog” menjadi “MyDog”. Hal ini dimaksud supaya nama suatu class itu mudah untuk dibaca.

Attribute

Attribute merupakan karakteristik dari suatu class. Attribut ini berupa suatu variable yang terletak tepat di dalam class. Variable yang berupa attribut ini juga disebut dengan variable global (kebalikan dari variable lokal) karena variabel global tersebut bisa diakses di setiap behavioral. Cara mendeklarasikan attribut sama dengan cara mendeklarasikan variable karena attribut juga merupakan variable.

Method

Method merupakan sebutan untuk behavioral/function di Java. Method selalu memiliku kurung lengkung atau “()”, kurung lengkung tersebut bisa juga disemati suatu variable atau parameter. Parameter sendiri adalah sebutan dari variabel yang terletak dalam kurung lengkung suatu method. Aturan penamaan method sama dengan aturan penamaan variable. Pembahasan tersebut bisa dilihat di penjelasan tentang variabel.

Method sendiri ada dua jenis: (1) void dan (2) return.

void Method

void method adalah method yang tidak mengembalikan suatu nilai. Dilihat sekilas, void method dapat diidentifikasi dengan adanya kata kunci “void” di depan nama method.

[code language=”java”]
void eat(){
System.out.println("anjing makan");
}
[/code]

Ilustrasi di atas adalah method void karena secara kasat mata method tersebut di depan nama method-nya (eat) memiliki kata kunci “void”. Void bisa disebut dengan method tidak mengembalikan nilai karena method ini ketika dipanggil tidak memiliki nilai yang bisa disimpan di suatu variabel.

return Method

return method adalah method yang mengembalikan nilai. Method ini bisa diidentifikasi dengan adanya data type di depan nama method-nya dan kata kunci return di dalam method-nya.

[code language=”java”]
int getAge(){
return 3;
}
[/code]

Pada baris 1 di depan nama method, “getAge” terdapat data type “int” sehingga di dalam method ini harus mengembalikan “int” juga. Kata kunci “return” digunakan untuk mengembalikan nilai. Dilihat pada baris 2, method “getAge” ini mengembalikan nilai 3, nilai 3 tersebut adalah nilai yang ber-data type “int”.

Object

Object adalah representasi dari class. Katakan bahwa Anjing adalah class-nya maka doggy, pretty, dan sweety adalah objectnya. Class masih berupa blueprint/rancangan sedangkan object adalah wujud nyatanya.Cara mendeklarasikan object sebagai berikut:

Penggunaan fungsi STATICMETHOD pada PHP

Untuk membuat object terlebih dahulu harus tahu class yang akan dibuatkan object-nya. Pada ilustrasi diatas “Dog” adalah class yang akan dibuatkan object-nya. Object dari class “Dog” tersebut bernama “pretty”. Berikutnya, untuk benar-benar “pretty” adalah object dari class “Dog” maka pada ilustrasi diatas ditambahkan assignment operator (=) yang digunakan untuk memberikan nilai object “pretty” ini dengan object baru dari class Dog, yaitu caranya dengan menambahkan kata kunci “new” yang diikuti dengan “constructor Dog“ / “Dog()”, constructor akan dibahas pada bahasan berikutnya. Sedangkan, penamaan object mengikuti penamaan pada variable. Sekali object tersebut dibuat, semua anggota (attribute dan method) bisa diakses oleh object tersebut.

Dog.java
[code language=”java”]
package Class;
class Dog {
int age;

int getAge(){
return 3;
}
void bark(){
System.out.println("anjing menggongong");

void eat(){
System.out.println("anjing makan");
}

void chaseCat(){
System.out.println("anjing mengejar
kucing");
}
}
[/code]

DogTest.java
[code language=”java”]
package Class;
public class DogTest {
public static void main(String [] args){
Dog pretty = new Dog();
pretty.bark();
pretty.eat();
pretty.chaseCat();
}
}
[/code]

Ada dua file java yang saling terkait, yaitu Dog.java dan DogTest.java. Dog.java adalah blueprint dari Dog sedangkan DogTest.java adalah penerapan blueprint tersebut dalam bentuk object. Pada file DogTest.java baris 5 menunjukkan sistem membuat object baru, pretty, dari class Dog. Sekali object tersebut dibuat, semua member (attribute / method) bisa diakses. Pada baris 6 – 8 menunjukkan cara mengakses member Dog, yaitu dengan cara memanggil nama object-nya diikuti dengan titik beserta member yang ingin diakses.

String

String adalah deretan dari karakter yang terangkum dalam tanda petik dua / double quote (“). Karakter tersebut bisa terdiri dari angka, huruf, dan special character. String juga adalah class yang disediakan oleh java untuk menjadi data type yang berjenis object reference untuk sekumpulan karakter.

String color = new String(“blue”)

Ilustrasi diatas merupakan cara untuk mendeklarasikan String karena String juga merupakan class maka cara mendeklarasikan object nya mirip seperti pada class Dog. Namun, ada cara singkatnya seperti mendeklarasikan variable data type primitive. Bentuk terakhir ini lah yang sering kali digunakan dalam pemrograman.

String color = “blue”

Parameter

Parameter adalah local variable yang terletak pada tanda kurung lengkung suatu method. Dengan adanya parameter suatu method akan lebih dinamis dalam menghasilkan suatu output.

[code language=”java”]
void bark(String name){
System.out.println(name + " menggongong");
}
[/code]

Pada baris 1 menunjukkan bahwa method bark memiliki parameter “String name” yang nantinya akan mempengaruhi output pada baris 2. Parameter pada method bisa terdiri lebih dari satu, dengan cara memisahkannya dengan tanda koma (,).

[code language=”java”]
void bark(String name, int amount){
System.out.println(name +" menggongong "+ amount
+" kali");
}
[/code]

Dengan adanya parameter tersebut, saat class tersebut dibuatkan objectnya dan memanggil method “bark” harus mengisi setiap parameter tersebut dengan nilai yang sesuai dengan data type-nya.

[code language=”java”]
public class DogTest {
public static void main(String [] args){
Dog pretty = new Dog();

pretty.bark("Pretty", 5);
}
}
[/code]

Method Overloading

Method Overloading Method overloading adalah method yang dalam satu class memiliki nama yang sama namun yang membedakan adalah data type dan jumlah parameter pada method-method tersebut.
[code language=”java”]
void bark(){
System.out.println("Anjing menggongong");
}

void bark(String name){
System.out.println(name +" menggongong");
}

void bark(int amount){
System.out.println("Anjing menggongong "
+amount+ " kali");
}

void bark(String name, int amount){
System.out.println(name+ " menggongong
"+amount + " kali");
}
[/code]

Terdapat empat “method bark” pada baris 1, 5, 9, dan 14. Keempat method tersebut memiliki nama yang sama, yaitu: bark, namun berbeda dari segi data type dan jumlah parameternya.

static Method

static method adalah method yang ketika diterapkan tidak memerlukan instance object sehingga untuk menggunakannya cukup dengan memanggil class-nya. Cara mendeklarasikan static method sebagai berikut:

static void methodName(argument){}static String methodName(argument){}

Untuk membuat static suatu method hanya menambahkan kata kunci “static” di depan method-nya sehingga untuk menggunakannya hanya memanggil nama class-nya.

ClassName.methodName(arguments)

[code language=”java”]
static void eat(){
System.out.println("anjing makan");
}
[/code]
[code language=”java”]
public class DogTest {
public static void main(String [] args){
Dog.eat();
}
}
[/code]

static Field

static Field adalah variable yang ketika diterapkan tidak memerlukan instance object sehingga untuk menggunakannya cukup dengan memanggil class-nya. Cara mendeklarasikan static field sebagai berikut:

static int r;

Untuk membuat static suatu variable hanya menambahkan kata kunci “static” di depan variable-nya sehingga untuk menggunakannya hanya memanggil nama class-nya.

this

Kata kunci “this” diletakkan didepan attribut dan method ketika dipanggil. “this” digunakan untuk emphasis / penekanan bahwa member tersebut milik dari class bersangkutan. Constructor adalah method yang memiliki nama yang sama dengan nama class-nya.

Apa itu method static?

Apa itu static method? Static method di dalam python adalah sebuah fungsi atau method pada sebuah kelas yang bersifat statis. Bersifat statis di sini berarti kita bisa memanggil fungsi tersebut secara langsung tanpa harus membuat instan dari kelas yang bersangkutan.

Apa fungsi dari static?

Dalam bahasa Java, static adalah perintah khusus yang memungkinkan sebuah property atau method diakses langsung tanpa melalui object, tapi cukup menulis nama class saja.

Apa itu static pada PHP?

Static property dan static method adalah property dan method yang langsung dapat diakses dari class tanpa instansiasi class (pembuatan object) terlebih dahulu. Cara mendeklarasikannya yaitu property atau method diawali menggunakan keyword static .

Apa perbedaan method static dan non static?

Fungsi static adalah fungsi yang dapat dieksekusi langsung tanpa harus melakukan instansiasi objek. Sedangkan funsi non-static adalah fungsi yang harus dieksekusi dari objek yang sudah diinstansiasi, di mana ini berkaitan dengan OOP.