Ko n s e p d a n Te k n i k
Menguasai Modern OOP di PHP
Awan Pribadi Basuki
CV. LOKOMEDIA
Konsep dan Teknik Menguasai Modern OOP di PHP Perpustakaan Nasional : Katalog Dalam Terbitan (KDT) Penulis : Awan Pribadi Basuki Konsep dan Teknik Menguasai Modern OOP di PHP - Cet. I. - Yogyakarta : Penerbit Lokomedia, 2017 194 halaman; 14 x 21 cm ISBN : 978-602-6231-09-3
Penerbit Lokomedia, Cetakan Pertama : April 2017
Editor : Lukmanul Hakim Cover : Subkhan Anshori Layout : Lukmanul Hakim
Diterbitkan pertama kali oleh : CV. LOKOMEDIA Jl. Jambon, Perum. Pesona Alam Hijau 2 Kav. B-4, Kricak Yogyakarta 55242. email :
[email protected] website : www.bukulokomedia.com Copyright © Lokomedia, 2017
Hak Cipta dilindungi oleh Undang-Undang Dilarang memperbanyak, mencetak ataupun menerbitkan sebagian maupun seluruh isi buku ini tanpa izin tertulis dari penerbit.
ii
KATA PENGANTAR
PHP pada awalnya diciptakan sebagai bahasa scripting sederhana yang bersifat prosedural dan tidak mendukung Object Oriented Programming (OOP). Namun pada perkembangannya, ada kebutuhan bahwa PHP perlu mendukung OOP secara penuh mengingat manfaatnya dalam dunia pemrograman modern. Dengan OOP akan membuat pemrograman menjadi lebih mudah dan efisien. Lahirnya berbagai Framework PHP yang menggunakan OOP sebagai cara kerjanya menandakan penerimaan konsep OOP pada komunitas PHP. Sebut saja Codeigniter, Symfony, Laravel, Yii, CakePHP dan sebagainya semuanya menerapkan OOP. Tentu saja penerapannya berbeda-beda pada tiap-tiap framework tersebut. Tentu saja, untuk menggunakan framework-framework tersebut secara efisien dibutuhkan pengetahuan dan pemahaman yang cukup dasar-dasar OOP di PHP. Sayangnya tidak banyak referensi yang dapat dipakai oleh programmer PHP, terutama tingkat pemula yang ingin meningkatkan kemampuannya dalam menerapkan OOP pada PHP. Buku ini ditulis sebagai petunjuk sederhana untuk memulai mempelajari OOP pada PHP. Pembahasan meliputi konsep-konsep inti OOP, yaitu konsep-konsep terkini yang banyak diterapkan pada pemrograman PHP modern, dan tentunya juga diterapkan pada framework-framework PHP masa kini. Diharapkan buku ini akan menjadi panduan yang mudah dan cepat bagi para pemula untuk menguasai dan menerapkan OOP pada PHP. Terima kasih Penerbit Lokomedia, yang untuk ke-sekian kalinya bersedia bekerja sama untuk menerbitkan buku yang saya tulis. Buku ini tentu jauh dari sempurna. Untuk itu jika Anda mempunyai pertanyaan, saran atau kritik seputar buku ini bisa Anda sampaikan melalui email.
Pasirian, Desember 2016 Awan Pribadi Basuki
[email protected] iii
Halaman ini Sengaja Dikosongkan www.bukulokomedia.com
iv
DAFTAR ISI
BAB. Pembuka...................................................................................................1 Mengapa OOP?....................................................................................................2 Untuk Siapa Buku Ini Ditulis?.............................................................................2 Catatan Penggunaan Istilah..................................................................................3 Komputer dan PHP yang Penulis Gunakan........................................................3 Cara Menjalankan Skrip PHP..............................................................................4 Membuat Folder Tempat Menyimpan File Latihan............................................8 BAB 1. Memahami Class dan Object..............................................................9 1.1. Membuat Class............................................................................................10 1.2. Menambahkan Property..............................................................................11 1.3. Membuat Object dari Sebuah Class...........................................................12 1.4. Mengakses Property....................................................................................14 1.5. Mengatur Nilai Property.............................................................................15 1.6. Menambahkan Method dan Menjalankannya............................................16 1.7. Membuat Beberapa Object dari Suatu Class.............................................17 BAB 2. Keyword $this.....................................................................................19 2.1. Keyword $this untuk Property....................................................................20 2.2. Keyword $this untuk Method.....................................................................21 BAB 3. Method Chaining................................................................................23 3.1. Mengenal Method Chaining.......................................................................24 v
3.2. Tanpa Method Chaining.............................................................................24 3.3. Dengan Method Chaining...........................................................................25 3.4. Penerapan Method Chaining pada Aplikasi Nyata....................................26 BAB 4. Magic Method dan Magic Constant................................................29 4.1. Magic Method.............................................................................................30 4.2. Magic Constant...........................................................................................33 BAB 5. Encapsulation......................................................................................35 5.1. Public vs Private Access Modifier..............................................................36 5.2. Public...........................................................................................................36 5.3. Private..........................................................................................................37 5.4. Setter dan Getter..........................................................................................39 5.5. Mengapa Kita Membutuhkan Access Modifier?.......................................40 5.6. Contoh Private Method...............................................................................42 5.7. OOP dan Encapsulation..............................................................................43 BAB 6. Inheritance...........................................................................................45 6.1. Membuat Turunan Class.............................................................................46 6.2. Menambahkan Property dan Method di Child Class.................................48 6.3. Protected Access Modifier..........................................................................49 6.4. Property dan Method Overriding...............................................................51 6.4. Mencegah Method Overriding...................................................................52 6.4. Mencegah Inheritance.................................................................................54 BAB 7. Abstract Class dan Abstract Method...............................................55 7.1. Mengenal Abstract Class dan Abstract Method.........................................56
vi
7.2. Menambah Property dan Method di Abstract Class..................................59 BAB 8. Interface...............................................................................................63 8.1. Membuat dan Mengimplementasikan Interface........................................64 8.2. Mengimplementasikan Lebih Dari Satu Interface.....................................66 8.3. Perbedaan Abstract Class dan Interface.....................................................68 BAB 9. Polymorphism.....................................................................................71 9.1. Mengenal Polymorphism............................................................................72 9.2. Menerapkan Polymorphism dengan Interface...........................................72 BAB 10. Type Hinting......................................................................................75 10.1. Array Type Hinting...................................................................................76 10.2. Object Type Hinting..................................................................................77 10.3. Type Hinting untuk Tipe Data Dasar........................................................80 BAB 11. Interface Type Hinting.....................................................................83 11.1. Kenapa Kita Memerlukan Interface Type Hinting?.................................84 11.2. Interface Type Hinting dengan Abstract Class.........................................88 11.3. Interface Type Hinting dengan Interface PHP.........................................91 BAB 12. Static dan Constant..........................................................................95 12.1. Membuat Static Method dan Static Property...........................................96 12.2. Cara Tepat Memakai Static Method dan Static Property .......................98 12.3. Static untuk Counter.................................................................................99 12.4. Static untuk Utility Class .......................................................................100 12.5. Constant...................................................................................................102
vii
BAB 13. Trait..................................................................................................103 13.1. Mengenal Trait........................................................................................104 13.2. Membuat Trait dan Menggunakannya ..................................................105 13.3. Menggunakan Lebih Dari Satu Trait......................................................106 13.4. Kelebihan dan Kekurangan Menggunakan Trait...................................108 13.5. Cara Menggunakan Trait yang Tepat.....................................................108 BAB 14. Dependency Injection.................................................................... 111 14.1. ”Tigh Coupling” di Antara Class............................................................112 14.2. Membuat Dependency Injection............................................................114 14.2. Type Hinting pada Dependency Injection..............................................115 BAB 15. Namespace.......................................................................................119 15.1. Mengapa Kita Membutuhkan Namespace?...........................................120 15.2. Susunan File dan Folder pada Aplikasi PHP Modern...........................120 15.3. Mendefinisikan Namespace dan Cara Memakainya.............................126 15.4. Mengimport Namespace.........................................................................131 15.5. Membuat Alias untuk Class dengan Namespace...................................133 BAB 16. Composer dan Autoload................................................................135 16.1. Mengenal Composer...............................................................................136 16.2. Instalasi Composer..................................................................................136 16.3. Autoload dengan Classmap....................................................................142 16.4. Autoload dengan PSR-4..........................................................................145 BAB 17. Composer dan Packagist...............................................................147 17.1. Menginstall Package...............................................................................148
viii
17.2. Mengupdate Package..............................................................................152 17.3. Menghapus Package...............................................................................152 BAB 18. MVC (Model View Controller).....................................................155 18.1. Mengapa MVC?......................................................................................156 18.2. MVC tanpa OOP.....................................................................................157 18.2.1. Spaghetti Code............................................................................157 18.2.2. Memisahkan Presentation...........................................................159 18.2.3. Memisahkan Domain Logic.......................................................160 18.2.4. Memisahkan Layout...................................................................162 18.2.5. Menambahkan Detail Page.........................................................163 18.2.6. Front Controller..........................................................................166 18.3. MVC dengan OOP..................................................................................168 BAB 19. Operasi CRUD dengan OOP dan MVC......................................175 19.1. Persiapan.................................................................................................176 19.1.1. Instalasi Bootstrap dan Mengubah Template.............................176 19.1.2. Menyempurnakan Rooting pada File index.php.......................178 19.1.3. Membuat Library Database........................................................179 19.2. Menampilkan Daftar Anggota................................................................180 19.3. Menampilkan Detail Anggota................................................................184 19.4. Menambahkan Anggota..........................................................................185 19.5. Mengedit Anggota...................................................................................190 19.6. Menghapus Anggota...............................................................................192 Daftar Pustaka................................................................................................194
ix
Halaman ini Sengaja Dikosongkan www.bukulokomedia.com
x
BAB
Pembuka
BAB
Pembuka
Mengapa OOP? Pada awalnya PHP ditujukan untuk pemrograman prosedural. Seiring dengan perkembangan zaman, pemrograman prosedural mulai ditinggalkan karena memiliki banyak keterbatasan. OOP hadir sebagai solusi untuk mengatasi keterbatasan yang ada pada pemograman prosedural. Sebagai bahasa pemrograman modern yang terus berkembang, PHP juga mulai mendukung OOP. Dimulai pada PHP 5, dukungan terhadap OOP di PHP menjadi lebih “serius”, tidak seperti di PHP 4. Oleh karena itu, para programmer di komunitas PHP juga mulai mengadopsi OOP untuk pembuatan kodenya. Perkembangan OOP di PHP tidak lepas dengan munculnya berbagai framework PHP yang memakai OOP sebagai cara kerjanya. Jadi, para programmer harus mulai menguasai OOP jika ingin bekerja dengan framework-framework tersebut. Jadi mengapa kita perlu mempelajari OOP di PHP? Sudah jelas, karena kebanyakan kode PHP sekarang sudah ditulis dalam bentuk OOP. Agar tidak tertinggal, maka kita juga harus mempelajari OOP.
Untuk Siapa Buku Ini Ditulis? Buku ini BUKAN untuk Anda yang sudah mahir dan sudah terbiasa melakukan pemrograman OOP di PHP, Anda akan kecewa. Semua materi yang ada di buku ini akan terlalu mudah bagi Anda. Buku ini juga BUKAN untuk Anda yang benar-benar baru mulai dengan pemrograman PHP, atau bahkan baru mulai mengenal dunia pembuatan web. Anda akan mengalami kesulitan. Buku ini ditujukan bagi Anda yang sudah mengetahui dasar pembangunan web, dan sudah pernah menggunakan PHP. Buku ini ditujukan bagi Anda yang ingin meningkatkan skill PHP dengan menguasai teknik Object Oriented Programming (OOP) di PHP. Oleh karena itu, diasumsikan bahwa Anda sudah memahami
2
Konsep & Teknik Menguasai Modern OOP di PHP
konsep-konsep dasar PHP, misalnya tentang variabel, variable scope, fungsi, constant, percabangan (if…else; switch), loop (for; foreach). Lebih baik lagi jika Anda sudah sempat membaca dan mengetahui sedikit tentang dasar-dasar OOP, tapi belum mantap dalam pemahaman Anda. Itu akan sangat membantu dalam mengikuti pembahasan di buku ini.
Catatan Tentang Penggunaan Istilah Dalam dunia Object Oriented Programming, banyak sekali jargon dan istilah teknis untuk mewakili suatu konsep. Kebanyakan istilah-istilah tersebut berasal dari Bahasa Inggris. Misalnya: class, object, inheritance, polymorphism, abstract, public, protected, private dan sebagainya. Penjelasan tentang istilah-istilah dan konsep-konsep tersebut akan diberikan pada bagiannya masing-masing. Namun selanjutnya penyebutan istilah-istilah tersebut akan tetap memakai istilah-istilah aslinya, yaitu dalam bentuk Bahasa Inggris. Istilah-istilah tersebut tidak disebutkan dalam terjemahan Bahasa Indonesia. Mengapa? Hal itu penulis lakukan agar penggunaan istilah-istilah tersebut konsisten dan tidak menimbulkan salah pengertian. Berikut ini contoh istilah-istilah tersebut: Class: blueprint / cetak biru yang menjadi struktur dasar object. Terdiri dari method dan property. Selanjutnya istilah class tetap akan ditulis sebagai class, bukan kelas. Istilah kelas lebih mengacu pada ruang kelas (tempat belajar) atau tingkatan / level (SMA kelas XII) Object: hasil instansiasi dari suatu class. Selanjutnya istilah object tetap ditulis sebagai object bukan obyek. Istilah obyek mengacu pada suatu benda. Private Property: variabel pada suatu class yang hanya dapat diakses dari class itu sendiri. Selanjutnya istilah private property tetap ditulis sebagai private property bukan properti pribadi. Istilah properti pribadi lebih mengacu pada tanah / bangunan aset. Ketentuan ini juga berlaku untuk istilah-istilah OOP yang lainnya. Sekali lagi itu agar penggunaan istilah-istilah tersebut konsisten dan tidak menimbulkan salah pengertian.
Komputer dan PHP yang Penulis Gunakan Untuk membuat semua tutorial di buku ini, penulis memakai komputer yang
Bab. Pembuka
3
menjalankan Windows 7 SP1 yang sudah terinstal paket aplikasi Wampserver 3.0.6. Di dalamnya sudah termasuk PHP 5.6.25 dan PHP 7.0.10. Karena WampServer 3.0.6 secara default menawarkan 2 versi PHP seperti yang sudah disebutkan, maka penulis mengaktifkan PHP 7.0.10. Untuk mengaktifkan PHP 7.0.10 di Wampserver: Langkah 1: Jalankan program Wampserver. Langkah 2: Klik icon Wampserver di status bar > PHP > Version. Pilih versi PHP yang akan dijalankan, dalam hal ini PHP 7.0.10.
Cara Menjalankan Skrip PHP Ada 2 yang biasa dilakukan untuk menjalankan skrip PHP: Melalui Browser Untuk menjalankan skrip PHP dari browser cukup memanggil URL skrip PHP yang akan dijalankan. Tentu saja server sudah harus dalam kondisi “on”. Melalui Command Prompt Untuk menjalankan skrip PHP melalui command prompt, maka command prompt harus mengenali perintah php. Agar perintah php dapat dikenali di jendela command prompt, yang harus dilakukan adalah menambahkan environment path file executable PHP (php.exe). Berikut ini cara menambahkan environment path PHP: Langkah 1: Klik start menu Windows, ketik “envi” (tanpa tanda petik). Pilih Edit the system environment variabels. Lihat gambar 1. Langkah 2: Pada jendela System Properties, pilih tab Advanced > Environment Variables. Lihat gambar 2.
4
Konsep & Teknik Menguasai Modern OOP di PHP
Gambar 1 Menjalankan environment variables
Gambar 2. Jendela System Properties
Bab. Pembuka
5
Langkah 3: Pada opsi System Variables, pilih item path. Klik tombol Edit. Lihat gambar 3.
Gambar 3 Jendela Environment Variables
Langkah 4: Pada jendela Edit System Variable, pada kotak Variable value, letakkan kursor pada bagian paling akhir. Ketik ;C:\wamp\bin\php\php7.0.10; seperti yang tampak pada gambar 4.
6
Konsep & Teknik Menguasai Modern OOP di PHP
Gambar 4 Jendela Edit System Variable
Path C:\wamp\bin\php\php7.0.10 adalah lokasi file php.exe untuk PHP 7.0.10 pada Wampserver yang penulis pakai. Tanda titik koma di awal dan di akhir path PHP berfungsi sebagai delimiter (pembatas) dengan path-path program lain. Jika Anda memakai aplikasi lain misalnya Anda memakai XAMPP, silakan menyesuaikan path file php.exe sesuai dengan aplikasi server yang Anda pakai. Pada prinsipnya sama saja. Langkah 5: Untuk menguji apakah perintah php sudah dapat dikenali dan dijalankan, buka command prompt, kemudian ketik php –v. Jika path PHP sudah ditambahkan dengan benar, maka akan muncul tampilan seperti gambar berikut yang menunjukkan versi PHP yang berjalan pada komputer yang kita gunakan. Lihat gambar 5.
Gambar 5 Menjalankan perintah php melalui command prompt
Jika masih belum dikenali, tutup jendela command prompt, kemudian buka jendela command prompt baru. Ketik lagi perintah di atas.
Bab. Pembuka
7
Membuat Folder Tempat Menyimpan File Latihan Seperti yang sudah penulis sebutkan sebelumnya bahwa penulis memakai Wampserver 3.0.6, maka lokasi default untuk menyimpan file web (file PHP) adalah di folder C:/wamp/www. Agar file-file latihan yang kita buat lebih teratur, buat sebuah folder bernama oop di dalam folder C:/wamp/www. Sehingga nanti kita akan menyimpan file-file latihan di C:/wamp/www/oop.
8
Konsep & Teknik Menguasai Modern OOP di PHP
BAB I
Memahami Class dan Object
BAB 1
Memahami Class dan Object 1.1 Membuat Class Pada dasarnya, cara kerja utama OOP adalah mengelompokkan variabel dan fungsi yang sejenis ke dalam satu class. Yang dimaksud dengan “sejenis” di \sini adalah yang memiliki kedekatan satu sama lain. Misalnya pada sebuah blog, terdapat 3 komponen: user, post dan comment. Kita bisa mengelompokkan fungsi-fungsi dan variabel-variabel pada blog tersebut ke dalam 3 class: User{}, Post{} dan Comment{}. Tiap-tiap class nantinya akan berisi variabel-variabel dan fungsi-fungsi yang berkaitan dengan object tersebut. Misalnya pada class User{}, maka akan terdapat variabel: $username, $password, $lastLogin. Selain itu, juga terdapat fungsi: setUsername(), ubahPassword() dan sebagainya. Pada class Post{} terdapat variabel: $judul, $isiPost, $tanggal dan lainnya. Selain itu, juga terdapat fungsi: simpanPost(), editPost(), hapusPost() dan sebagainya. Demikian juga pada class Comment{} didalamnya terdapat variabelvariabel dan fungsi-fungsi yang berkaitan dengan komentar. Sebelum digunakan, object harus dirancang dulu dalam bentuk sebuah class. Boleh dikatakan bahwa sebuah class adalah cetak biru / rancangan / cetakan dari sebuah object. Sehingga, dari sebuah class nanti bisa diciptakan banyak object. Misalnya untuk menangani aplikasi yang berkaitan dengan mobil, maka kita bisa membuat sebuah class bernama Mobil{} seperti berikut: Buat sebuah file bernama latihan.php, simpan di C:/wamp/www/oop. Anda masih ingat, kita sudah membuat folder oop pada bab sebelumnya bukan? 1 2 3 4 5 6
Nomor urut didepan kode program tidak usah diketik, itu hanya digunakan sebagai bantuan untuk menunjukkan nomor baris program.
10
Konsep & Teknik Menguasai Modern OOP di PHP
Selanjutnya, file latihan.php akan kita gunakan untuk menuliskan kode-kode program untuk beberapa latihan ke depan. Penjelasan Script: Baris 3. Untuk membuat sebuah class, kita memakai keyword class, di ikuti nama class, dalam hal ini Mobil. Nama class diawali dengan huruf kapital. Jika nama class terdiri dari beberapa kata, maka kata kedua dan seterusnya juga ditulis bersambung dan diawali pula dengan huruf kapital. Misalnya: MobilJepang, MobilEropa. Nama class di ikuti dengan tanda pembuka dan penutup kurung kurawal {}. Kode program untuk class akan ditulis diantara kedua tanda tersebut. Catatan: Untuk membedakan antara nama variabel, fungsi dan class, maka dalam penjelasan penulis menambahkan tanda {} di belakang nama class, misalnya: Mobil{}, Post{}, Comment{}. Sedangkan untuk menunjukkan nama fungsi / method maka penulis menambahkan tanda () di belakang nama fungsi, misalnya: setJudul(), hapusComment(). Demikian juga untuk variabel, penulis menambahkan tanda $ di depan nama variabel, misalnya: $nama, $tanggalPosting.
1.2 Menambahkan Property Anda sudah mengenal variabel bukan? Variabel berfungsi untuk menyimpan data sementara pada saat program berjalan. Seorang manusia tentu memiliki nama, tanggal lahir, kota lahir dan beberapa informasi yang melekat kepadanya. Dengan kata lain pada sebuah class bernama Manusia{} memiliki variabel-variabel: $nama, $kotaLahir, $tanggalLahir. Sebuah mobil tentu memiliki merk, tahun keluaran, tipe / model, warna. Boleh dikatakan bahwa sebuah class Mobil memiliki variabel-variabel $merk, $tahun $warna, dan $tipe. Dalam konteks OOP, kita menyebut istilah variabel sebagai property. Jadi, property adalah variabel-variabel yang melekat pada sebuah class.
Bab I. Memahami Class dan Object
11
Untuk menambahkan property ke dalam class Mobil: Pada file latihan.php, tambahkan kode berikut: 1 2 3 4 5 6 7 8 9
Penjelasan Script: Untuk mendeklarasikan sebuah property pada suatu class diawali keyword public, di ikuti nama variabel / property. Keyword public berarti property tersebut dapat diakses langsung dari luar class. Selain public, ada beberapa tipe variabel lain yaitu protected dan private. Kita akan membahasnya di bagian yang lain. Tata cara pemberian nama property sama dengan pemberian nama variabel biasa pada PHP. Pada standar PHP nama variabel biasanya di awali dengan huruf kecil. Contoh: $nama, $merk, $warna. Jika nama property lebih dari satu kata, kata pertama diawali huruf kecil, kata-kata berikutnya ditulis bersambung dan diawali dengan huruf kapital. Misal: $tanggalLahir, $jenisKelamin, $namaBuahFavorit, dan sebagainya. Kita bisa memberikan nilai default (nilai awal) pada sebuah property. Misalnya pada Baris 8, property $warna kita memiliki nilai default ‘biru’.
1.3 Membuat Object dari Sebuah Class Sebelum menggunakan sebuah class, kita harus membuat object dari class tersebut. Kita tidak dapat menggunakan rancangan sebuah mobil, karena itu hanyalah rancangan. Yang kita pakai adalah object mobil, yang benar-benar kita kendarai. Bukankah demikian? Proses pembuatan object dari sebuah class disebut instantiation. Sehingga sebuah object merupakan instance dari suatu class. Untuk membuat object dari class Mobil{}, caranya: Ubah latihan.php menjadi:
12
Konsep & Teknik Menguasai Modern OOP di PHP
1 2 3 4 5 6 7 8 9 10 11 12
Penjelasan Skrip: Baris 11. Untuk membuat object, gunakan keyword new di ikuti nama class-nya. Untuk menjalankan skrip, buka command prompt. Masuk ke folder C:/wamp/ www/oop. Untuk menjalankan skrip lewat command prompt harus berada di folder tempat menyimpan file yang akan dijalankan. Kemudian ketik perintah: php
latihan.php
Arti perintah di atas adalah menjalankan skrip php latihan.php. Lihat gambar 1.1.
Gambar 1.1 Hasil contoh script pembuatan object dari sebuah class
Jika Anda mendapatkan tampilan seperti gambar 1.1, maka Anda sudah berhasil membuat object dari class Mobil{}.
Bab I. Memahami Class dan Object
13
1.4 Mengakses Property Sebelumnya kita sudah membuat class Mobil{} dan membuat object dari class tersebut. Di dalam class Mobil{} terdapat beberapa property. Bagaimana caranya jika kita ingin menampilkan nilai property-property tersebut? Untuk mengakses nilai property: Ubah latihan.php menjadi: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
merk \n”; echo “Model $mobil->tipe \n”; echo “Tahun $mobil->tahun \n”;
Penjelasan Skrip: Baris 11. Membuat object dari class Mobil{}, kemudian menyimpannya ke dalam variabel $mobil. Baris 12. Mengakses property $merk dari object $mobil. Perhatikan tanda dollar ( $ ) ditulis sebelum nama variabel yang menyimpan instance object ($mobil). Sedangkan pada nama property tidak usah ditulis tanda dollar, sebagai gantinya tanda minus ( - ) dan lebih besar ( > ) yang membentuk tanda panah, kemudian diikuti nama property. Jadi: $mobil->merk; Dibaca: property $merk dari object Mobil{}. Perintah echo untuk mencetak ke layar, perintah \n untuk ganti baris. Baris 13. Mengakses property $tipe dari object / class Mobil{}. Baris 14. Mengakses property $tahun dari object / class Mobil{}. Jalankan skrip latihan.php, maka hasilnya dapat dilihat pada gambar 1.2.
14
Konsep & Teknik Menguasai Modern OOP di PHP
Gambar 1.2 Mengakses nilai property
1.5 Mengatur Nilai Property Cara mengatur nilai property pada suatu object sangat mirip dengan cara mengakses nilainya. Kita tinggal memberikan nilai yang kita kehendaki seperti saat kita memberikan nilai pada suatu variabel. Untuk mengatur nilai pada property. Ubah latihan.php menjadi: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
merk = ‘Suzuki’; $mobil->tipe = ‘Ertiga’; $mobil->tahun = 2014; $mobil->warna = ‘Hitam’; // Mencetak echo “Mobil echo “Model echo “Tahun echo “Warna
nilai property $mobil->merk \n”; $mobil->tipe \n”; $mobil->tahun \n”; $mobil->warna \n”;
Bab I. Memahami Class dan Object
15
Penjelasan Skrip: Baris 14 - 17. Mengatur property $merk, $tipe, $tahun dan $warna. Object $mobil sudah memiliki nilai default (Baris 5 - 8). Kode pada Baris 14 - 17 akan mengubah nilai default property-property tersebut. Baris 20 - 23. Menampilkan nilai property. Jalankan skrip latihan.php, maka hasilnya dapat dilihat pada gambar 1.3.
Gambar 1.3 Mengatur nilai property
1.6 Menambahkan Method dan Menjalankannya Anda pasti sudah tahu tentang fungsi, bukan? Kita bisa membuat suatu fungsi di dalam sebuah class. Nah dalam konteks OOP, kita menyebut fungsi yang ada di dalam suatu class sebagai method. Untuk membuat method: Ubah latihan.php menjadi: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
16
}
public function maju() { echo ‘Brooooommmm...’; }
Konsep & Teknik Menguasai Modern OOP di PHP
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
$mobil = new Mobil(); // Mengatur nilai property $mobil->merk = ‘Suzuki’; $mobil->tipe = ‘Ertiga’; $mobil->tahun = 2014; $mobil->warna = ‘Hitam’; // Mencetak echo “Mobil echo “Model echo “Tahun echo “Warna
nilai property $mobil->merk \n”; $mobil->tipe \n”; $mobil->tahun \n”; $mobil->warna \n”;
// Menjalankan method maju() $mobil->maju();
Penjelasan Skrip: Baris 10 - 13. Membuat method maju(). Baris 31. Untuk menjalankan method maju(), caranya hampir sama dengan mengakses nilai property. Sebutkan saja nama method-nya, disertai pula tanda () di belakang nama method tersebut. Jalankan skrip latihan.php, maka hasilnya dapat dilihat pada gambar 1.4.
Gambar 1.4 Membuat dan menjalankan method
1.7 Membuat Beberapa Object dari Suatu Class Seperti yang sudah disebutkan bahwa class adalah cetak biru / rancangan / cetakan dari suatu object, maka kita dapat membuat banyak object dari suatu class.
Bab I. Memahami Class dan Object
17
Untuk membuat beberapa object dari suatu class. Ubah latihan.php menjadi: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
}
public function maju() { return “Brooooommmm...\n”; }
// Membuat dan mengatur property object 1 $mobil1 = new Mobil(); $mobil1->merk = ‘Suzuki’; $mobil1->tipe = ‘Ertiga’; // Mencetak property & menjalankan method maju() object 1 echo $mobil1->merk . “ “ . $mobil1->tipe . “ “ .$mobil1->maju(); // Membuat dan mengatur property object 2 $mobil2 = new Mobil(); $mobil2->merk = ‘Ford’; $mobil2->tipe = ‘Mustang’; // Mencetak property & menjalankan method maju() object 2 echo $mobil2->merk . “ “ . $mobil2->tipe . “ “ .$mobil2->maju();
Jalankan skrip latihan.php, maka hasilnya dapat dilihat pada gambar 1.5.
Gambar 1.5 Beberapa object dari suatu class
Dengan OOP, kita dapat menciptakan beberapa instance object dari suatu class. Dengan demikian, kode program yang kita buat pada suatu class bersifat reusable, dapat digunakan kembali. Sehingga pembuatan kode lebih efisien.
18
Konsep & Teknik Menguasai Modern OOP di PHP