2. OOP PHP Object Oriented Programming (OOP) merupakan paradigma pemrograman yang berorientasikan kepada obyek. Semua data dan fungsi pada paradigma ini dibungkus dalam kelas-kelas atau obyek-obyek. Bandingkan dengan logika pemrograman terstruktur, setiap obyek dapat menerima pesan, memproses data, dan mengirim pesan ke obyek lainnya. OOP diciptakan untuk mengatasi keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah semua pemecahan masalah dibagi ke dalam obyek. Dalam konsep OOP data dan fungsifungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai obyek. Objek
Sederhananya, sebuah objek adalah kumpulan dari variabel dan fungsi yang dibungkus menjadi satu entitas. Entitas tersebut dapat berupa variabel biasa. Sebuah objek diciptakan melalui sebuah kelas atau dengan istilah instance dari kelas. Obyek memiliki 2 elemen utama:
Attributes atau Properties: Yaitu nilai-nilai yang tersimpan dalam objek tersebut dan secara langsung maupun tidak langsung menentukan karakteristik dari objek tersebut. Method: Yaitu suatu aksi yang akan dijalankan atau dikerjakan oleh objek tersebut.
Kelas
Kelas atau Class dapat didefinisikan sebagai struktur data dari suatu objek. Lebih jelasnya adalah sebuah bentuk dasar yang mendefinisikan variabel, method umum pada semua obyek. Obyek sendiri adalah kumpulan variabel dan fungsi yang dihasilkan dari template khusus atau disebut class. Perhatikan contoh class di berikut ini. class namaKelas { var deklarasiVariabel_1 var deklarasiVariabel_2 deklarasi fungsi_1 deklarasi fungsi_1 }
contoh berikut memberikan gambaran pendefinisian kelas bernama SegiEmpat yang memiliki dua buah properti dan dua buah metode. file segi_empat.inc
Pemrograman 2 – Framework Yii (Badiyanto, S.Kom.,M.Kom)
2- 1
// methode (fungsi) function set_sisi($pj,$lb) { $this->panjang=$pj; $this->lebar=$lb; } function luas() { return $this->panjang * $this->lebar; } } ?>
akhir file segi_empat.inc
pada contoh di atas, $this berarti objek dari kelas itu sendiri yaitu kelas SegiEmpat, dan tanda -> digunakan untuk mengakses metode dan properti. contoh : $this->panjang properti tanggal milik objek itu sendiri sedangakan peryataan: $this->panjang=$pj; merupakan perintah yang menghasilkan argumen $tg ke properti $tanggal;
Menciptakan Objek Setetalah kelas didefinisikan, objek atau disebut dengan istilah instan kelas dapat dibentuk melalui pernyataan new. Contoh : $kotak = new SegiEmpat;
file kotak.php set_sisi(10,20); echo "Belajar Kelas Kotak"; echo "
";
Pemrograman 2 – Framework Yii (Badiyanto, S.Kom.,M.Kom)
2- 2
printf("Panjang %d",$kotak->panjang); echo "
"; printf("Labar %d",$kotak->lebar); echo "
"; printf("Luas %d",$kotak->luas()); ?>
akhir file kotak.php penjelasan : pernyataan include "segi_empat.inc" adalah menyetakan file segi_empat.inc ke dalam file kota.php. $kotak = new SegiEmpat : menciptakan objek $kotak merupakan kelas dari SegiEmpat $kotak->set_sisi(10,20) : memanggil fungsi set_sisi(10,20), 10 nilai isi paramerter panajan dan 20 nilai isi parameter lebar
Kelas Extends Sebuah kelas dapat merupakan perluasan dari kelas yang ada sebelumnya. Misalnya pada contoh kelas SegiEmpat hanya terdapat fungsi set_sisi(), luas() dan mungkin itu dirasakan kurang. Jika ingin menciptakan kelas baru Kubus yang menggunakan fungsi yang ada didalam kelas SegiEmpat, serta ditambahkan menambahankan fungsi volume(), maka dengan melakukan perluasan terhadap sebuah kelas. Adapun caranya menggukan pernyataan extends yang sintaksnya adalah sebagai berikut: class Kubus extends SegiEmpat { //properti var $tebal; //methode function volume() { …………….. } } berikut contoh cara pembuatan kelas baru dengan nama Kubus merupakan kelas perluasan dari SegiEmpat
file kubus.inc tebal=$tb; } function volume() { return $this->tebal * $this->lebar *$this->panjang; }
Pemrograman 2 – Framework Yii (Badiyanto, S.Kom.,M.Kom)
2- 3
} ?>
akhir file kubus.inc Setelah kelas baru dengan perluasan kelas sebelumya disefinisikan dengan perintah extend, maka membuat objek baru misal $balok=new Kubus; file balok.php set_sisi(10,20); echo "Belajar Kelas Kotak"; echo "
"; printf("Panjang %d",$kotak->panjang); echo "
"; printf("Labar %d",$kotak->lebar); echo "
"; printf("Luas %d",$kotak->luas()); echo "
"; $balok= new Kubus; $balok->set_sisi(10,5); $balok->set_tebal(5); echo "Belajar Hitung Volume balok"; echo "
"; printf("Panjang %d",$balok->panjang); echo "
"; printf("Labar %d",$balok->lebar); echo "
"; printf("Tebal %d",$balok->tebal); echo "
"; printf("Volume %d",$balok->volume()); ?>
akhir file balok.php penjelasan: $kotak = new SegiEmpat : objek $kotak merupakan turunan dari kelas SegiEmpat dan $balok = new Kubus : objek $balok, merupakan turunan dari kelas Kubus, dan Kubus perulasan dari kelas SegiEmpat. Jadi kelas Kubus juga mempunyai fungsi set_sisi(), dan fungsi luas().
Pemrograman 2 – Framework Yii (Badiyanto, S.Kom.,M.Kom)
2- 4
Contoh : kelas Pagawai nopeg = $no; $this->nama = $nm; } public function isikanNopeg($no){ $this->nopeg = $no; } public function ambilNopeg(){ return $this->nopeg; } public function isikanNama($nm){ $this->nama = $nm; } public function ambilNama(){ return $this->nama; } } ?>
Cara Menggunkan Kelas Pegawai ?php include "pegawai.inc"; $dataPrib = new Pegawai; $dataPrib->isikanNopeg("941001");
Pemrograman 2 – Framework Yii (Badiyanto, S.Kom.,M.Kom)
2- 5
$dataPrib->isikanNama("Badiyanto"); echo "Data Pegawai"; echo "
"; printf("Nomor Pegawai : %s",$dataPrib->ambilNopeg()); echo "
"; printf("Nama Pegawai : %s",$dataPrib->ambilNama()); echo "
"; echo "Yes Sukses"; ?>
Manggunakan Konstruktor KonsPegawai("950122","Maria Mustikawati"); echo "Data Pegawai"; echo "
"; printf("Nomor Pegawai : %s",$dataPrib->ambilNopeg()); echo "
"; printf("Nama Pegawai : %s",$dataPrib->ambilNama()); echo "
"; echo "Yes Sukses"; ?>
Pemrograman 2 – Framework Yii (Badiyanto, S.Kom.,M.Kom)
2- 6
Manciptkan Objek dengan Perluasan Kelas Pegawai file gaji_pegawai.inc gajiPokok = $gapok; } public function ambilGajiPokok(){ return $this->gajiPokok; } public function isikanTunjangan($tunj){ $this->tunjangan = $tunj; } public function ambilTunjangan(){ return $this->tunjangan; } public function hitungGaji(){ //$gaji = 0; $jumlahGaji = $this->gajiPokok + $this->tunjangan; return $jumlahGaji; } }
?> akhir file gaji_pegawai.inc
Manggunakan Kelas Pemrograman 2 – Framework Yii (Badiyanto, S.Kom.,M.Kom)
2- 7
file gaji.php KonsPegawai("950122","Maria Mustikawati"); $gaji1->isikanGajiPokok(2500000); $gaji1->isikanTunjangan(2600000); echo "Data Pegawai"; echo "
"; printf("Nomor Pegawai : %s",$gaji1->ambilNopeg()); echo "
"; printf("Nama Pegawai : %s",$gaji1->ambilNama()); echo "
"; printf("Gaji Pokok : %d",$gaji1->ambilGajiPokok()); echo "
"; printf("Tunjangan : %d",$gaji1->ambilTunjangan()); echo "
"; printf("Jumlah Gaji : %d",$gaji1->hitungGaji()); echo "
"; echo "Yes Sukses"; ?>
akhir file gaji.php Hasil Tampilan
Pemrograman 2 – Framework Yii (Badiyanto, S.Kom.,M.Kom)
2- 8