Hallo, Belajar PHP OOP kembali! Maaf ya kawan-kawan, jangka waktu dari edisi 11 ke 12 ini lama sekali. Belakangan ini saya sedang mengeksplore Ubuntu dan menyelesaikan beberapa tugas kuliah tentang UML. Di tengah belajar UML, tetiba kepikiran, hei ini gimana ngodingnya ya? Kalau dari sequence diagram sama class diagram, ini implementasi di PHP nya gimana? Dan berbagai pertanyaan random lainnya. Oleh karena itu, di edisi kali ini saya ingin coba membahas bagaimana cara implementasi salah satu diagram dari UML, yaitu class diagram, ke dalam bahasa pemrograman PHP.

Apa itu Class Diagram?

Dalam analisis dan desain sistem berorientasi objek, Class Diagram ini memiliki peran penting dalam memodelkan suatu sistem. Class diagram merupakan bagian dari Unified Modeling Language (UML) dan digunakan untuk desain sistem berorientasi objek.

Di dalam UML sendiri terdapat dua tipe diagram, yaitu behavioral diagram dan structural diagram. Class Diagram ini termasuk ke dalam tipe structural diagram. Fungsinya itu untuk mendeskripsikan struktur sistem yang akan kita kembangkan dengan menjabarkan class-class yang terdapat dalam sistem, seperti atribut, method dan relasi antar objek.

Yep, OOP banget bukan?

Class Diagram ini memang blok utama dalam perancangan untuk pemrograman berorientasi objek. Selain itu, bisa digunakan baik untuk modelling konsep dari sistematik aplikasi yang akan dibangun dan juga perancangan detail sistem yang nantinya diimplementasikan ke dalam bahasa pemrograman.

Learning Overview

Seperti yang sudah disebutkan sebelumnya, pada edisi Belajar PHP OOP kali ini kita akan bahas implementasi Class Diagram dalam PHP dan contoh penggunaannya. Studi kasus yang akan kita pakai itu sederhana. Kita akan coba buat class diagram untuk Lingkaranku. Untuk membuat class diagram kita bisa pakai tools draw.io, yang sebelumnya sempat saya tulis di postingan tentang draw.io offline.

Setelah kita buat class diagram, kita coba terjemahkan atau implementasikan ke dalam bahasa PHP. Dan tahapan terakhir kita uji coba program hasil implementasi dari class diagram.

Step 1 - Membuat Class Diagram Sederhana

Misalkan kita punya Class Diagram untuk memodelkan sebuah lingkaran dengan nama class Lingkaranku yang memiliki atribut jari-jari dan method getter dan setter untuk atribut jari-jari.

Kita buka draw.io, terus kita coba buat Class Diagram seperti gambar di bawah ini:

class diagram

Step 2 - Implementasi Class Diagram di PHP

Coba kita perhatikan kembali Class Diagram di atas. Bisa kita lihat di Class Lingkaranku ada beberapa poin yang bisa kita tangkap:

  1. Terdapat private atribut, yaitu jarijari, yang dinotasikan dengan simbol minus (-) dalam class diagram
  2. Terdapat beberapa public method yang dinotasikan dengan simbol plus (+) seperti getJarijari, setJarijari dan method lainnya.
  3. Terus ada juga return type dari atribut dan method yang dinotasikan dengan simbol titik dua (:) lalu diikuti oleh tipe data. Misalnya, jarijari:number dan getJarijari():number.

Dari poin-poin tersebut, kita bisa implementasikan ke dalam PHP. Buka text editor kesayanganmu, lalu ketik sintaks kode di bawah ini:

 <?php

 // Lingkaranku.php
/**
 * Class Lingkaranku memodelkan sebuah lingkaran dengan jari-jari
 */
class Lingkaranku
{
    // private variable
    private $jarijari;  // jarijari dari lingkaran

    /**
    * Constructor untuk sebuah instance dan inisialisai private variable-nya
    * @param number $jarijari: jarijari dari lingkaran, dengan default nilai = 1
    */
    public function __construct($jarijari = 1)
    {
        $this->jarijari = $jarijari;
        // "$this" merujuk pada instance.
        echo 'Membuat sebuah instance dari ', __CLASS__, ' dengan jari-jari = ', $this->jarijari, ".<br/>";
        // "__CLASS__" konstanta yang menyimpan nama class.
    }

    /**
    * Destructor - dipanggil sebelum instance didealokasi
    */
    public function __destruct()
    {
        echo 'Destructed instance ', $this, ' dari class ', __CLASS__, ".<br/>";
    }

    /**
    * Getter untuk jarijari.
    * @return number: jarijari lingkaran.
    */
    public function getJarijari()
    {
        return $this->jarijari;
    }

    /**
    * Setter untuk jarijari.
    * @param number $jarijari: jarijari lingkaran.
    */
    public function setJarijari($jarijari)
    {
        $this->jarijari = $jarijari;
    }

    /**
    * Return representasi string dari instance yang dibuat.
    * @return string: in the form of 'Lingkaranku[jarijari=r]'.
    */
    public function __toString()
    {
        return __CLASS__ . '[jarijari=' . $this->jarijari . ']';
    }
    /**
    * Return luas lingkaran
    * @return number: luas lingkaran.
    */
    public function getLuas()
    {
        return $this->jarijari * $this->jarijari * pi();
    }
}

Simpan sintaks kode di atas dengan nama Lingkaranku.php.

Sekarang kita coba pakai class Lingkaranku di dalam file baru. Kita buat file baru dengan nama TesLingkaranku.php. Lalu, ketik sintaks kode di bawah ini:

 <?php // TestLingkaranku.php 

      require_once 'Lingkaranku.php'; 

      // membuat instance baru dari class Lingkaranku 

      $c1 = new Lingkaranku(1.1); // Test constructor 

      // Nyobain beberapa cara buat cetak objek 

      var_dump($c1); 

      echo "<br/>"; 

      print_r($c1); 

      echo "<br/>"; 

      var_export($c1); 

      echo "<br/>"; 

      echo "Jari-jari lingkaran = {$c1->getJarijari()}"; // Test getter 

      echo "<br/><br/>"; 

      $c1->setJarijari(5);      // Test setter 

      echo "$c1<br/>";        // Call __toString() implicitly 

      echo "luas lingkaran = {$c1->getLuas()}";  // Test getArea() 

      echo "<br/><br/>"; 

      $c2 = new Lingkaranku();  // Test construtor with default argument 

      echo "$c2"; 

      echo "<br/>"; 

      echo "Selesai."; 

      echo "<br/><br/>"; 

      echo "############################################################################"; 

      echo "<br/><br/>"; 

      // Run the destructor before deallocating the instances at end of file. 

 ?> 

Setelah selesai, save kembali file TesLingkaranku.php.

Step 3 - Uji coba

Semua kode yang diperlukan sudah kita coding, langkah selanjutnya adalah uji coba run di browser.

Buka browser, lalu kita coba run. Output dari file TesLingkaranku.php menampilkan tampilan seperti gambar di bawah ini:

uji coba program - qadrLabs

Penutup

Class Diagram itu memiliki peran penting dalam memodelkan suatu sistem. Selain digunakan untuk modelling konsep dari sistematik aplikasi yang akan dibangun, Class diagram juga digunakan untuk perancangan detail sistem yang nantinya akan diimplementasikan ke dalam bahasa pemrograman. Dan supaya kita bisa mengimplementasikan class diagram, kita perlu memahami konsep OOP.

Semoga bermanfaat.. Semangat terus ya belajarnya! ^^


Referensi:

Gun Gun Priatna
Software Engineer, Content Writer and Founder qadrlabs.com
Komentar

blog comments powered by Disqus