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 class SegiEmpat //properti// var $panjang; var $lebar; 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 include "segi_empat.inc"; $kotak = new SegiEmpat; $kotak->set_sisi(10,20); echo "Belajar Kelas Kotak"; Pemrograman 2 Framework Yii (Badiyanto, S.Kom.,M.Kom) 2-2
printf("panjang %d",$kotak->panjang); printf("labar %d",$kotak->lebar); 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 include "segi_empat.inc"; class Kubus extends SegiEmpat var $tebal; function set_tebal($tb) $this->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 include "kubus.inc"; $kotak = new SegiEmpat; $kotak->set_sisi(10,20); echo "Belajar Kelas Kotak"; printf("panjang %d",$kotak->panjang); printf("labar %d",$kotak->lebar); printf("luas %d",$kotak->luas()); $balok= new Kubus; $balok->set_sisi(10,5); $balok->set_tebal(5); echo "Belajar Hitung Volume balok"; printf("panjang %d",$balok->panjang); printf("labar %d",$balok->lebar); printf("tebal %d",$balok->tebal); 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 //pegawai.php class Pegawai private $nopeg = null; private $nama = null; public function KonsPegawai($no,$nm) //construtor $this->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"; printf("nomor Pegawai : %s",$dataprib->ambilnopeg()); printf("nama Pegawai : %s",$dataprib->ambilnama()); echo "Yes Sukses"; Manggunakan Konstruktor include "pegawai.inc"; $dataprib = new Pegawai; $dataprib->konspegawai("950122","maria Mustikawati"); echo "Data Pegawai"; printf("nomor Pegawai : %s",$dataprib->ambilnopeg()); printf("nama Pegawai : %s",$dataprib->ambilnama()); echo "Yes Sukses"; Pemrograman 2 Framework Yii (Badiyanto, S.Kom.,M.Kom) 2-6
Manciptkan Objek dengan Perluasan Kelas Pegawai file gaji_pegawai.inc //file gaji_pegawai.inc include "pegawai.inc"; class GajiPegawai extends Pegawai private $gajipokok = 0; private $tunjangan = 0; public function isikangajipokok($gapok) $this->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 //file gaji.php include "gaji_pegawai.inc"; $gaji1 = new GajiPegawai; $gaji1->konspegawai("950122","maria Mustikawati"); $gaji1->isikangajipokok(2500000); $gaji1->isikantunjangan(2600000); echo "Data Pegawai"; printf("nomor Pegawai : %s",$gaji1->ambilnopeg()); printf("nama Pegawai : %s",$gaji1->ambilnama()); printf("gaji Pokok : %d",$gaji1->ambilgajipokok()); printf("tunjangan : %d",$gaji1->ambiltunjangan()); printf("jumlah Gaji : %d",$gaji1->hitunggaji()); echo "Yes Sukses"; akhir file gaji.php Hasil Tampilan Pemrograman 2 Framework Yii (Badiyanto, S.Kom.,M.Kom) 2-8