Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

PHP Berorientasi Objek dengan Kelas dan Objek

by
Difficulty:BeginnerLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Imam Firmansyah (you can also view the original English article)

Pada artikel ini, kita akan mengeksplorasi dasar-dasar pemrograman berorientasi objek dalam PHP. Kita akan mulai dengan pengantar kelas (class) dan objek(object), dan kita akan membahas beberapa konsep canggih seperti pewarisan (inheritance) dan polimorfisme di bagian akhir artikel ini.

Apa itu Pemrograman Berorientasi Objek (OOP)?

Pemrograman berorientasi objek, yang biasa disebut sebagai OOP, adalah pendekatan yang membantu Anda mengembangkan aplikasi yang kompleks dengan cara yang mudah dipelihara dan terukur dalam jangka panjang. Dalam dunia OOP, entitas dunia nyata seperti Person, Car, atau Animal diperlakukan sebagai object. Dalam pemrograman berorientasi objek, Anda berinteraksi dengan aplikasi dengan menggunakan objek. Ini berbeda dengan pemrograman prosedural, terutama dimana Anda berinteraksi dengan fungsi dan variabel global.

Di OOP, ada konsep "class", yang digunakan untuk memodelkan atau memetakan entitas dunia nyata ke templat data(properti) dan fungsionalitas (method). "Object" adalah turunan dari sebuah class, dan Anda dapat membuat banyak instance dari class yang sama. Sebagai contoh, ada class Person tunggal, tetapi banyak object Person dapat menjadi instance dari class ini — dan, zainab, hector, dll.

Class mendefinisikan properti. Misalnya, untuk class Person, Kami mungkin memiliki name, age, dan phoneNumber. Kemudian setiap object dari Person akan memiliki nilai sendiri untuk properti tersebut.

Anda juga dapat mendefinisikan method di class yang memungkinkan Anda untuk memanipulasi nilai properti object dan melakukan operasi pada object. Sebagai contoh, Anda bisa menentukan method save yang menyimpan informasi object ke database.

Apa itu Class pada PHP?

Class adalah template yang mewakili entitas dunia nyata, dan mendefinisikan properti dan method entitas. Pada bagian ini, kita akan membahas tipikal anatomi dasar class pada PHP.

Cara terbaik untuk memahami konsep baru adalah dengan sebuah contoh. Jadi mari kita lihat class Employee pada potongan kode berikut, yang mewakili entitas dari employee (karyawan).

Pernyataan class Employee pada baris pertama mendefinisikan class Employee. Kemudian, kita akan mendeklarasikan properti, konstruktor, dan method class lainnya.

Properti Class pada PHP

Anda bisa menganggap properti class sebagai variabel yang digunakan untuk menyimpan informasi tentang object. Dalam contoh di atas, kami telah menetapkan tiga properti — first_name, last_name, dan age. Dalam kebanyakan kasus, properti class diakses melalui object yang dipakai.

Properti ini bersifat private, yang berarti mereka hanya dapat diakses dari dalam class. Ini adalah tingkat akses teraman untuk properti. Kami akan membahas berbagai tingkat akses untuk properti dan method class nanti di artikel ini.

Konstruktor untuk Kelas PHP

Konstruktor adalah method class khusus yang dipanggil secara otomatis ketika Anda instantiate sebuah object. Kami akan melihat cara membuat instance object di beberapa bagian berikutnya, tetapi untuk sekarang Anda hanya perlu tahu bahwa konstruktor digunakan untuk menginisialisasi properti object ketika object sedang dibuat.

Anda dapat mendefinisikan konstruktor dengan mendefinisikan method __construct.

Method untuk Class PHP

Kita dapat menganggap method class sebagai fungsi yang melakukan tindakan spesifik yang terkait dengan object. Dalam kebanyakan kasus, mereka digunakan untuk mengakses dan memanipulasi properti object dan melakukan operasi terkait.

Dalam contoh di atas, kami telah mendefinisikan method getLastName, yang mengembalikan nama belakang yang dikaitkan dengan object.

Jadi itu adalah pengantar singkat tentang struktur class pada PHP. Di bagian selanjutnya, kita akan melihat cara membuat instance object dari class Employee.

Apakah object dalam PHP?

Pada bagian sebelumnya, kita membahas struktur dasar sebuah class di PHP. Sekarang, ketika Anda ingin menggunakan class, Anda harus melakukan instantiate, dan hasil akhirnya adalah sebuah object. Jadi kita bisa menganggap class sebagai cetak biru, dan sebuah object adalah hal aktual yang dapat Anda kerjakan.

Dalam konteks class Employee yang baru saja kita buat di bagian sebelumnya, mari kita lihat bagaimana membuat instance object dari class tersebut.

Anda harus menggunakan kata kunci new ketika Anda ingin membuat instance suatu object dari setiap class bersama dengan nama class nya, dan Anda akan mendapatkan kembali contoh object baru dari kelas tersebut.

Jika kelas telah mendefinisikan method __construct dan membutuhkan argumen, Anda harus meneruskan argumen tersebut saat Anda membuat instance sebuah object. Dalam kasus kami, konstruktor class Employee memerlukan tiga argumen, dan karenanya kami telah melewati ini ketika kami membuat objek $objEmployee. Seperti yang kita bahas sebelumnya, method __construct dipanggil secara otomatis ketika object dipakai.

Selanjutnya, kami telah memanggil method class pada object $objEmployee untuk mencetak informasi yang diinisialisasi selama pembuatan object. Tentu saja, Anda dapat membuat beberapa object dari class yang sama, seperti yang ditunjukkan pada potongan kode berikut.

Gambar berikut ini adalah representasi grafis dari class Employee dan beberapa instance-nya.

Object Instantiation

Sederhananya, class adalah cetak biru yang dapat Anda gunakan untuk membuat object yang terstruktur.

Enkapsulasi

Di bagian sebelumnya, kami membahas cara membuat instance objek dari class Employee. Sangat menarik untuk dicatat bahwa object $objEmployee itu sendiri membungkus bersama properti dan method class. Dengan kata lain, ia menyembunyikan detail tersebut dari sisa program. Dalam dunia OOP, ini disebut enkapsulasi data.

Enkapsulasi adalah aspek penting dari OOP yang memungkinkan Anda untuk membatasi akses ke properti atau method dari object tertentu. Dan itu membawa kita ke topik lain untuk didiskusikan: tingkat akses.

Tingkat Akses

Saat Anda mendefinisikan properti atau method dalam sebuah class, Anda dapat mendeklarasikannya memiliki salah satu dari tiga level akses ini public, private, atau protected.

Akses Public

Saat Anda mendeklarasikan properti atau method sebagai public, properti dapat diakses dari mana saja di luar class. Nilai properti public dapat dimodifikasi dari mana saja dalam kode Anda.

Mari kita lihat contoh untuk memahami tingkat akses public.

Seperti yang Anda lihat pada contoh di atas, kami telah melakukan deklarasi properti name untuk public. Karenanya, Anda dapat mengaturnya dari mana saja di luar class, seperti yang kami lakukan di sini.

Akses Private

Ketika Anda mendeklarasikan properti atau method sebagai private, itu hanya dapat diakses dari dalam class. Ini berarti bahwa Anda perlu mendefinisikan method get dan set untuk mendapatkan dan mengatur nilai properti tersebut.

Sekali lagi, mari kita revisi contoh sebelumnya untuk memahami tingkatan akses private.

Jika Anda mencoba mengakses properti private dari luar class, itu akan menimbulkan kesalahan yang fatal Cannot access private property Person::$name. Dengan demikian, Anda perlu mengatur nilai properti pribadi menggunakan method setter, seperti yang kami lakukan menggunakan method setName.

Ada alasan bagus mengapa Anda mungkin ingin menjadikan properti private. Misalnya, mungkin beberapa tindakan harus diambil (memperbarui basis data, mengatakan, atau merender ulang template) jika properti itu berubah. Dalam hal ini, Anda dapat mendefinisikan method setter dan menangani logika khusus ketika properti diubah.

Akses Protected

Akhirnya, ketika Anda mendeklarasikan properti atau method sebagai protected, itu dapat diakses oleh class yang sama yang telah mendefinisikannya dan class yang mewarisi class tersebut. Kami akan membahas inheritance pada bagian selanjutnya, jadi kami akan kembali ke tingkat akses yang dilindungi sedikit sebentar lagi.

Inheritance

Inheritance adalah aspek penting dari paradigma pemrograman berorientasi objek yang memungkinkan Anda mewarisi properti dan method class lain dengan melakukan extend. class yang diwariskan disebut parent class (class induk), dan class yang mewarisi kelas lain disebut child class. Ketika Anda melakukan instantiate sebuah object dari child class, itu akan mewarisi properti dan method dari parent class juga.

Mari kita lihat screenshot berikut untuk memahami konsep dari pewarisan (inheritance).

Inheritance

Dalam contoh di atas, class Person adalah parent class, dan class Employee memperluas (extend) atau mewarisi class Person dan disebut child class.

Mari kita coba melalui contoh dunia nyata untuk memahami cara kerjanya.

Yang penting untuk diperhatikan di sini adalah bahwa class Employee telah menggunakan kata kunci extends untuk mewarisi class Person. Sekarang, class Employee dapat mengakses semua properti dan method dari class Person yang dinyatakan sebagai public atau protected. (Itu tidak dapat mengakses anggota yang dinyatakan sebagai private).

Dalam contoh di atas, objek $employee dapat mengakses method getName dan setName yang didefinisikan dalam class Person karena mereka dinyatakan sebagai public.

Selanjutnya, kami telah mengakses method callToProtectedNameAndAge menggunakan method getNameAndAge yang didefinisikan dalam class Employee, karena dinyatakan sebagai protected. Akhirnya, object $employee tidak dapat mengakses method callToPrivateNameAndAge dari class Person karena dideklarasikan sebagai private.

Di sisi lain, Anda dapat menggunakan object $employee untuk melakukan set pada properti age dari class Person, seperti yang kami lakukan pada method setAge yang didefinisikan dalam class Employee, karena properti age dinyatakan sebagai protected.

Jadi itu pengantar singkat tentang pewarisan (inheritence). Ini membantu Anda mengurangi duplikasi kode, dan dengan demikian mendorong konsep reusability (penggunaan kembali kode).

Polimorfisme

Polimorfisme adalah konsep penting lainnya dalam dunia pemrograman berorientasi objek yang mengacu pada kemampuan untuk memproses objek secara berbeda berdasarkan tipe datanya.

Misalnya, dalam konteks pewarisan, jika child class ingin mengubah perilaku (behavior) dari method class parent, itu dapat menggantikan metode tersebut. Ini disebut metode overriding. Mari kita segera melihat contoh yang sesungguhnya untuk memahami konsep dari method overriding.

Seperti yang Anda lihat, kami telah mengubah perilaku dari method formatMessage dengan melakukan override pada class BoldMessage. Yang penting adalah bahwa pesan diformat berbeda berdasarkan jenis object, apakah itu turunan dari parent class atau child class.

(Beberapa bahasa berorientasi objek juga memiliki semacam kelebihan method yang memungkinkan Anda mendefinisikan beberapa method class dengan nama yang sama tetapi jumlah argumen yang berbeda. Ini tidak didukung secara langsung dalam PHP, tetapi ada beberapa solusi untuk mencapai yang serupa fungsionalitasnya)

Kesimpulan

Pemrograman berorientasi objek adalah subjek yang luas, dan kami hanya menggores permukaan kompleksitasnya. Saya berharap tutorial ini membantu Anda memulai dengan dasar-dasar OOP dan memotivasi Anda untuk terus belajar topik OOP yang lebih tinggi.

Pemrograman berorientasi objek merupakan aspek penting dalam pengembangan aplikasi, terlepas dari teknologi yang Anda gunakan. Hari ini, dalam konteks PHP, kami membahas beberapa konsep dasar OOP, dan kami juga mengambil kesempatan untuk memperkenalkan beberapa contoh dalam kehidupan nyata.

Jangan ragu untuk mengirimkan pertanyaan Anda menggunakan kolom komentar di bawah ini!

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.