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.
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.
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.
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:
Coba kita perhatikan kembali Class Diagram di atas. Bisa kita lihat di Class Lingkaranku
ada beberapa poin yang bisa kita tangkap:
jarijari
, yang dinotasikan dengan simbol minus (-) dalam class diagramgetJarijari
, setJarijari
dan method lainnya.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
.
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:
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:
© 2024 qadrLabs . All rights reserved. 000515268