Dasar-dasar PHP-OOP

Senin, 10 Desember 2012
Lama ya nggak posting artikel tutorial… Haha, masih sibuk banget ma dunia nyata.. :)
Pada postingan kali ini saya akan membahas tentang OOP (Object Oriented Programming) yang ada pada PHP. Bicara tentang OOP, jenis pemrograman ini secara dominan telah digunakan di Java Programming. Karena PHP tidak mau kalah dengan java, dia menyediakan fasilitas untuk bisa menggunakan OOP tidak hanya pada java saja, namun juga bisa menggunakannya di PHP. Lalu apa kelebihan dari penggunaan jenis pemrograman OOP?

OOP yang merupakan kependekan kata Object Oriented Programming adalah suatu metode pemrograman yang menggunakan objek. Objek yang dimaksud adalah suatu benda. Anda bisa menggunakan benda-benda yang ada di sekitar Anda sebagai objek seperti komputer, HP, kursi, meja, gitar, gelas, dan bahkan Anda sendiri adalah objek. Lalu apa yang membedakan antara objek dengan yang bukan objek?
Setiap objek memiliki karakteristik atau sifat sendiri yang membedakan antara objek yang satu dengan objek yang lainnya. Coba bandingkan Anda dengan saya, kita memang sama-sama manusia, namun belum tentu kalau kita memiliki sifat yang sama, belum tentu kita memiliki wajah yang sama, belum tentu memiliki jenis kelamin yang sama, dan yang lainnya. Jadi sudah paham dengan yang dimaksud dengan objek? Oke, mari kita lanjutkan…
Dalam OOP selalu ada yang namanya class, method (behavior), property (attribute). Masih asing dengan istilah-istilah tersebut? Class bisa dikatakan sebagai cetakan untuk membuat objek. Method bisa dikatakan sebagai aksi yang dimiliki oleh class. Sedangkan attribute adalah karakteristik atau sifat-sifat yang dimiliki oleh objek yang dibuat nantinya. Pendeklarasian suatu class selalu terdapat sintak class yang kemudian diikuti dengan nama class dan setelah itu diikuti oleh body class. Body class selalu berada diantara kurung kurawal atau berada diantara tanda { dan }.
?
1
2
3
4
5
6
7
// deklarasi class Orang
class Orang {
// start body class
// attributes class
// methods class
// end body class
}
Dari deklarasi class Orang seperti yang saya contohkan di atas, kita bisa menentukan karakteristiknya sebagai atribut class tersebut seperti nama, jenis kelamin, pekerjaan, dll. Ingat, setiap objek belum tentu memiliki karakteristik yang sama, jadi jika kita mengambil contoh objeknya adalah orang, maka kita bisa menjadikan nama, jenis kelamin, dan pekerjaan sebagai atribut classnya. Secara defaultnya suatu atribut class dideklarasikan dengan menggunakan sintak var yang kemudian diikuti dengan nama atributnya yang kemudian diakhiri dengan tanda semicolon ;.
?
1
2
3
4
5
6
7
8
9
10
11
class Orang {
// start body class
 
// attributes class
var $nama;
var $jenis_kelamin;
var $pekerjaan;
 
// methods class
// end body class
}
Adapun pendeklarasian atribut yang menggunakan sintak public, protected, dan private. Sintak-sintak tersebut dinamakan dengan access modifier yang digunakan untuk membatasi hak akses. Untuk soal access modifier ini kita bahas di artikel selanjutnya.
Setelah atribut-atribut yang dibutuhkan telah kita tentukan, sekarang kita buat method-method class tersebut. Pendeklarasian method pada OOP di PHP menggunakan sintak function. Pendeklarasian method ini mirip dengan pendeklarasian fungsi-fungsi yang ada di PHP pada umumnya. Misalnya saja kita buat agar objek yang kita buat nantinya bisa menyapa, makan, dan minum.
?
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
class Orang {
// start body class
 
// attributes class
var $nama;
var $jenis_kelamin;
var $pekerjaan;
 
// methods class
function menyapa()
{
echo '<p>Halo, nama saya adalah '. $this->nama .'<br />';
echo 'Saya adalah seorang '. $this->jenis_kelamin .' ';
echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>';
}
 
function makan()
{
echo '<p>'. $this->nama .' sedang makan.</p>';
}
 
function minum()
{
echo '<p>'. $this->nama .' sedang minum.</p>';
}
 
// end body class
}
Pada script di atas terdapat keyword $this, sudah tahu maksud dari keyword $this ini? Keyword $this menandakan kalau sedang mengakses atribut class itu sendiri. Penggunaanya dengan cara menuliskan keyword $this yang diikuti dengan tanda -> dan setelah itu diikuti dengan nama atribut yang ada dalam kelas tersebut tanpa tanda dollar $.
Nah, selanjutnya mau diapakan class yang sudah dibuat tersebut? Apakah Anda sudah bisa menggunakan method-method yang ada dalam class tersebut? Saya yakin Anda belum bisa menggunakannya. Ingat, class adalah cetakan untuk membuat objek, lalu sudahkah Anda membuat objeknya? Method yang ada didalam class hanya bisa digunakan oleh objek, hal pertama yang perlu Anda lakukan setelah membuat cetakan objeknya adalah membuat objeknya.
Sisipkan kode berikut dibawah pendeklarasian class Orang di atas.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$aga   = new Orang();
$aga->nama = 'Aga';
$aga->jenis_kelamin = 'Laki-laki';
$aga->pekerjaan = 'Mahasiswa';
 
// memanggil method yang ada dalam class
$aga->menyapa();
$aga->makan();
$aga->minum();
 
$ina  = new Orang();
$ina->nama = 'Ina';
$ina->jenis_kelamin = 'Perempuan';
$ina->pekerjaan = 'Mahasiswa';
 
// memanggil method yang ada dalam class
$ina->menyapa();
$ina->makan();
$ina->minum();
Untuk membuat objek, Anda harus melakukan instansiasi class dengan cara mengunakan sintak new yang diikuti dengan nama classnya dan kemudian diikuti dengan tanda kurung buka dan tutup seperti pemanggilan fungsi. Nah, tahu kenapa pada saat instansiasi class terdapat tanda kurung buka dan tutup padahal tidak ada method yang bernama Orang()?
Di dalam class selalu terdapat method yang selalu dijalankan ketika objek dibuat. Method ini disebut dengan constructor. Jadi ketika Anda membuat suatu object, sebenarnya Anda juga menjalankan method constructor ini. Apa itu constructor? Constructor adalah method yang akan dijalankan ketika objek dibuat. Secara umum constructor adalah method yang memiliki nama yang sama dengan nama class tersebut.
Lalu apakah Anda melihat ada method Orang() dalam class Orang? Walaupun constructor tidak Anda tuliskan, class secara otomatis akan membuat constructornya sendiri. Pada PHP versi 5.3, pendeklarasian constructor tidak dengan cara menuliskan nama method yang sama dengan nama class tetapi dengan menuliskan nama method __construct() yang menandakan suatu constructor.
?
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
29
30
31
32
33
34
35
class Orang {
// start body class
 
// attributes class
var $nama;
var $jenis_kelamin;
var $pekerjaan;
 
// methods class
function __construct($nama, $jenis_kelamin, $pekerjaan)
{
$this->nama = $nama;
$this->jenis_kelamin = $jenis_kelamin;
$this->pekerjaan = $pekerjaan;
}
 
function menyapa()
{
echo '<p>Halo, nama saya adalah '. $this->nama .'<br />';
echo 'Saya adalah seorang '. $this->jenis_kelamin .' ';
echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>';
}
 
function makan()
{
echo '<p>'. $this->nama .' sedang makan.</p>';
}
 
function minum()
{
echo '<p>'. $this->nama .' sedang minum.</p>';
}
 
// end body class
}
Anda juga bisa memberikan parameter input pada setiap method yang ada di dalamnya. Pada pendeklarasian constructor di atas saya memberikan parameter input nama, jenis kelamin, dan pekerjaan. Jadi saat instansiasi, Anda bisa langsung melakukan set atribut class.
?
1
2
3
4
5
6
7
8
9
10
11
12
$aga   = new Orang('Aga', 'Laki-laki', 'Mahasiswa');
$ina  = new Orang('Ina', 'Perempuan', 'Mahasiswa');
 
// memanggil method yang ada dalam class
$aga->menyapa();
$aga->makan();
$aga->minum();
 
// memanggil method yang ada dalam class
$ina->menyapa();
$ina->makan();
$ina->minum();
Kedua script di atas (yang tidak menggunakan constructor dan yang menggunakan constructor) kurang lebih akan menghasilkan tampilan seperti yang ada pada gambar di bawah.
Dasar Object Oriented Programming (OOP) di PHP
Nah, dari sini apakah ada yang tidak dipahami? Saya sudah menyediakan file yang bisa Anda coba sendiri dirumah, silakan download saja, link downloadnya ada di bawah. Dan silakan komentar saja kalau ada yang kurang dimengerti… :)
Download Dasar Object Oriented Programming di PHP (160)

Source : http://www.agacry.com/2011/07/dasar-oop-di-php-class-method-object-di-php/

Tidak ada komentar:

Posting Komentar