Enkapsulasi PHP


Assalamualaikum wr wb, kembali lagi di blog saya. Pada kali ini saya membagikan sedikit materi mengenai enkapsulasi pada PHP tepatnya pada OOP PHP. Langsung saja ke materinya ,sebelum itu siapkan seperti biasa text editor,dan XAMPP nya.

Pengertian Enkapsulasi

       Enkapsulasi adalah  adalah salah satu yang paling terpenting di dalam pemrograman berorientasi objek(OOP). karena tahap enkapsulasi lah yang menentukan pemberian hak akses pada setiap property atau method. Enkapsulasi juga merupakan adalah metode untuk mengatur struktur pada class. dengan tujuan untuk menentukan hak akses pada property atau method. Enkapsulasi ini bertujuan untuk menyembunyikan informasi dari method dan property dengan alasan keamanan.


Studi Kasus

Pada studi kasus kali ini saya akan memberi contoh kodingan yang menggunakan konsep OOP dan menggunakan enkapsulasi . Langsung saja ke kodingannya

class HewanPeliharaan.php

<?php 
include 'KelompokMakan.php';
class HewanPeliharaan extends KelompokMakan{
    private $nama;
    private $jenis;

    public function setNama($nama){
        $this->nama = $nama;
    }

    public function setJenisHewan($jenis){
        $this->jenis = $jenis;
    }

    public function getNama() {
        return $this->nama;
    }

    public function getJenisHewan(){
        return $this->jenis;
    }

    public function bersuara() {
        $jenis = $this->jenis;
        switch($jenis) {
            case 'Kucing' : return '<audio src="assets/sound/kucing.mp3" controls></audio>';
            case 'Domba' : return '<audio src="assets/sound/domba.mp3" controls></audio>';
            case 'Ular' : return '<audio src="assets/sound/ular.mp3" controls></audio>';
            case 'Beruang' : return '<audio src="assets/sound/beruang.mp3" controls></audio>';
        }
    }

    public function berkembangbiak(){
        $jenis = $this->jenis;
        switch($jenis) {
            case 'Kucing' : return 'Vivipar';
            case 'Domba' : return 'Vivipar';
            case 'Ular' : return 'Ovovivipar';
            case 'Beruang' : return 'Vivipar';
        }
    }

    public function habitat(){
        $jenis = $this->jenis;
        switch($jenis) {
            case 'Kucing' : return 'Darat';
            case 'Domba' : return 'Darat';
            case 'Ular' : return 'Amfibi';
            case 'Beruang' : return 'Darat';
        }
    }

    public function __CONSTRUCT ($nama,$jenis,$makanan){
        $this->nama=$nama;
        $this->jenis=$jenis;
        $this->makanan=$makanan;
    }
}
?>

Penjelasan : di class ini semua variable dibuat private agar dijaga keamanannya, setelah itu kita enkapsulasi variable yang private agar bisa diakases oleh class lain.


class KelompokMakan.php

<?php 

// Deklarasi Interface Makan
interface makan{
    public function jenis();
}

// Mengimplementasi Interface Makan
class KelompokMakan implements makan{
    protected $makanan;

    public function jenis(){
        $makanan = $this->makanan;
        switch($makanan) {
            case 'Segala' : return 'Omnivora';
            case 'Daging' : return 'Karnivora';
            case 'Rumput' : return 'Herbivora';
        }
    }
}
?>

Penjelasan : di class ini variablenya saya bikin protected dikarenakan biar lebih mudah aja diakses nya oleh class turunannya tapi keamanan datanya tetap terjaga. di class ini juga ada interface dan pengimplementasiannya.


class index.php

<?php   
    include 'HewanPeliharaan.php';      
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Studi Kasus OOP PHP</title>
    <link rel="stylesheet" href="assets/css/style.css">
</head>
<body>
<center>
    <h1>Daftar Hewan OOP PHP</h1>
    <table border="1" width="50%" cellspacing="0">
        <tr>
            <th>Foto</th>
            <th>Nama</th>
            <th>Jenis</th>
            <th>Suara</th>
            <th>Tipe</th>
            <th>Berkembang</th>
            <th>Habitat</th>
        </tr>
        <tr align="center" class="cat">
            <td><img src="assets/img/cat.png" width="90"></td>
            <?php $sato1  = new HewanPeliharaan('Kitty','Kucing','Daging'); 
                echo '
                <td>'.$sato1->getNama().'</td>
                <td>'.$sato1->getJenisHewan().'</td>
                <td>'.$sato1->bersuara().'</td>
                <td>'.$sato1->jenis().'</td>
                <td>'.$sato1->berkembangbiak().'</td>
                <td>'.$sato1->habitat().'</td>';
            ?>
        </tr>
        <tr align="center" class="domba">            
            <td><img src="assets/img/domba.png" width="90"></td>
            <?php $sato2 = new HewanPeliharaan('Beni','Domba','Rumput'); 
                echo '
                <td>'.$sato2->getNama().'</td>
                <td>'.$sato2->getJenisHewan().'</td>
                <td>'.$sato2->bersuara().'</td>
                <td>'.$sato2->jenis().'</td>
                <td>'.$sato2->berkembangbiak().'</td>
                <td>'.$sato2->habitat().'</td>';
            ?>
        </tr>
        <tr align="center" class="snake">            
            <td><img src="assets/img/snake.png" width="90"></td>
            <?php $sato3 = new HewanPeliharaan('Manda','Ular','Daging'); 
                echo '
                <td>'.$sato3->getNama().'</td>
                <td>'.$sato3->getJenisHewan().'</td>
                <td>'.$sato3->bersuara().'</td>
                <td>'.$sato3->jenis().'</td>
                <td>'.$sato3->berkembangbiak().'</td>
                <td>'.$sato3->habitat().'</td>';
            ?>
        </tr>
        <tr align="center" class="bear">            
            <td><img src="assets/img/bear.png" width="90"></td>
            <?php $sato4 = new HewanPeliharaan('Makarov','Beruang','Segala'); 
                echo '
                <td>'.$sato4->getNama().'</td>
                <td>'.$sato4->getJenisHewan().'</td>
                <td>'.$sato4->bersuara().'</td>
                <td>'.$sato4->jenis().'</td>
                <td>'.$sato4->berkembangbiak().'</td>
                <td>'.$sato4->habitat().'</td>';
            ?>
        </tr>
    </table>
    </center>
</body>
</html>

Penjelasan : di class index ini kita hanya pemanggilan objek dari class HewanPeliharaan untuk ditampilkan di broswer

Hasil Dari Kodingan di atas :



Mungkin cukup sekian materi yang dapat saya berikan semoga bermanfaat dan bisa membantu teman teman yang merasa kesulitan engenai materi ini. Mohon maaf bila ada kesalahan wassalamualaikum wr wb

0 Comments