Nulis-Ilmu.com

Tutorial Elektronika dan Komputer

  • Home
  • Elektronika
  • Komputer
  • Javascript

Tutorial PHP OOP Part 13 : Pengertian Class Abstrak

28 November 2014 By Eko Purnomo

pengertian class abstrak

Pada PHP 5 kita mengenal class abstrak dan method abstrak. Class abstrak (abstract class) didefinisikan sebagai class yang tidak bisa diinstantisasi menjadi object. Sebuah class abstrak setidaknya memiliki satu method abstrak (abstract method). Untuk menggunakan sebuah class abstrak, kita harus membuat class turunan dari class abstrak tersebut.

Tujuan dari dibuat abstrak class adalah agar setiap class turunan menggunakan method abstrak pada class induk secara fleksibel. Jadi pada method abstrak di class induk hanya terdapat signature saja tanpa isi yang konkrit.

Membuat Class Abstrak

Untuk membuat class abstrak, kita menggunakan keyword “abstract” didepan keyword class. Sebuah class abstrak harus memiliki setidaknya satu method abstrak. Namun class abstrak juga bisa memiliki properti dan method normal layaknya class konkrit.

abstract class AbstractClass {
....//harus berisi setidaknya satu method abstrak
}

Membuat Method Abstrak

Untuk membuat method abstrak, kita menggunakan keyword “abstract” didepan keyword function. Jika didefinisikan hak akses-nya seperti public, private dan protected maka kita menempatkan keyword abstract tadi didepan hak akses, misal abstract public function namaFunction().

 abstract class AbstractClass  {  
// membuat method abstrak didalam class abstrak
abstract protected function abstractMethod();
}

Yang unik dalam membuat method abstrak ini adalah kita tidak perlu membuat isi method, karena memang method ini abstrak alias tidak nyata. Kita baru akan mengisi method nanti didalam class turunan. Jadi kita hanya bisa membuat method abstrak ini didalam class induk saja.

Penggunaan Class Abstrak dan Method Abstrak

Dalam penggunaan class abstrak dan method abstrak, kita harus memperhatikan beberapa hal penting yang jika tidak dipenuhi akan berakibat error dan program tidak jalan. Hal-hal tersebut diantaranya adalah sebagai berikut :

1. Class Abstrak tidak bisa diinstatisasi

Sebuah class abstrak tidak bisa langsung diinstantisasi menjadi object. Class Abstrak hanya bisa diinstantisasi menjadi object melalui class turunan. Jadi class sbstrak hanya merupakan bluprint dari class turunan.

Contoh berikut ini akan menghasilkoan error ” Fatal error: Cannot instantiate abstract class” jika dieksekusi :

<?php  
abstract class Rumus {
abstract public function luas_lingkaran();
}
$rumus=new Rumus();
?>

2. Class turunan harus mengimplementasi semua method abstrak pada class induk.

Ketika kita membuat class turunan dari class induk yang abstrak, maka kita harus mengimplementasi semua method abstrak yang ada pada class tersebut. Jika ada satu saja method abstrak yang tidak diimplementasi akan muncul error.

Contoh berikut ini akan menghasilkan error ” Fatal error: Class … contains 1 abstract method and must therefore be declared abstract or implement the remaining methods ” jika dieksekusi :

<?php  
abstract class Rumus {
abstract public function luas_lingkaran();
abstract public function luas_persegi();
}

class Luas extends Rumus {
public function luas_lingkaran() {
return "Ini method luas lingkaran";
}
}

$luas=new Luas();
echo $luas->luas_lingkaran();
?>

3. Class abstrak bisa memiliki properti, method dan static

Dalam class abstrak kita bisa membuat properti, method dan static seperti layaknya class konkrit. Untuk lebih jelas perhatikan contoh berikut ini :

<?php  
abstract class Rumus {
var $diameter;

public function jari () {
return $this->diameter / 2;
}

public static $pi=3.14;

abstract public function luas_lingkaran();
}

class Luas extends Rumus {
public function luas_lingkaran() {
return parent::$pi * $this->jari() * $this->jari();
}
}

$luas=new Luas();
$luas->diameter = 10;
echo "Luas Lingkaran dengan diameter ".$luas->diameter." = ".$luas->luas_lingkaran();
?>

Pada script diatas terdapat sebuah class abstrak Rumus yang memiliki sebuah method abstrak luas_lingkaran() tanpa isi. Kemudian class abstrak Rumus juga properti $diameter, sebuah method jari() dan sebuah static $pi.

Selanjutnya class abstrak dicetak pada class turunan Luas dan method abstraknya diimplementasi pada class tersebut sehingga syarat pada item no.2 diatas telah terpenuhi. Pada method luas_lingkaran() di class turunan kita mengakses static $pi dan method jari() pada class induk untuk menghitung luas lingkaran.

Dan untuk melihat hasilnya kita instantisasi class Luas menjadi object, kemudian kita set nilai diameternya=10 dan kita tampilkan hasil perhitungan dari method luas_lingkaran().

Jika benar maka script diatas akan menghasilkan tampilan :

Luas Lingkaran dengan diameter 10 = 78.5

Referensi :

  • //php.net/manual/en/language.oop5.abstract.php

Filed Under: PHP

Tutorial PHP OOP Part 12 : Apa itu Static, Parent dan Self ?

27 November 2014 By Eko Purnomo

Static, Parent dan Self adalah keyword pada PHP OOP yang merupakan perintah dalam membuat dan menangani sebuah static properti atau static method didalam class. Keyword “static” dipakai saat membuat static properti atau static method sedangkan keyword “parent” dan “self” dipakai untuk mengakses properti atau method tersebut didalam class dan class turunannya.

Keuntungan dari membuat static properti dan static method adalah kita bisa mengaksesnya tanpa membuat instantisasi object. Hal ini telah dibahas pada tulisan sebelumnya tentang operator Scope Resolution (::) .

Membuat Static Properti dan Static Method

Untuk membuat static properti dan static method kita menggunakan keyword “static”. Kita juga bisa menggunakan teknik enkapsulasi seperti public, private dan protected dalam membuat static properti dan static method.

Membuat Static Properti

class Classname {
public static $var = Value;
}

Membuat Static Method

class Classname {
public static function aStaticMethod() {
// ...
}
}

Contoh Membuat Static Properti dan Static Method

 <?php  
class Sekolah
{
public static $namaSekolah = 'SMPN 1 WELAHAN';

public static function showSekolah() {
return self::$namaSekolah;
}
}

?>

Mengakses Static Properti dan Static Method

Dalam mengakses  static properti dan static method kita menggunakan operator scope resolution (::). Kita bisa mengakses  static properti dan static method didalam dan diluar class. Untuk mengakses dari luar class kita gunakan nama class, operator :: dan nama static, contoh : MyClass::CONSTANT.

Dan untuk mengakses  static properti dan static method didalam class kita gunakan keyword “self”. Untuk mengakses  static properti dan static method pada class induk (diakses dari class turunan) kita gunakan keyword “parent”. Dengan demikian kita tidak perlu menggunakan variabel $this saat akan mengakses static properti dan static method didalam class.

Mengakses Static Properti dan Static Method pada class (Induk)

 <?php  
class Sekolah {
public static $namaSekolah = 'SMPN 1 WELAHAN';

public function showSekolah() {
return self::$namaSekolah;
}
}

//mengakses static properti secara langsung
print Sekolah::$namaSekolah . "<br/>";

//mengakses static properti dengan static method
print Sekolah::showSekolah() . "<br/>";
?>

Mengakses Static Properti dan Static Method pada class turunan

 <?php  
class Sekolah
{
public static $namaSekolah = 'SMPN 1 WELAHAN';

public static function showSekolah() {
return self::$namaSekolah;
}
}

class Siswa extends Sekolah
{
public static $namaSiswa = 'SABRINA';

public static function showSiswa() {
return self::$namaSiswa ." dari ".parent::$namaSekolah;
}
}

//mengakses static properti class induk secara langsung
print Sekolah::$namaSekolah . "<br/>";

//mengakses static properti class induk dengan method
print Sekolah::showSekolah() . "<br/>";

//mengakses static properti class anak secara langsung
print Siswa::$namaSiswa . "<br/>";

//mengakses static properti class induk dan class anak dengan method
print Siswa::showSiswa() . "<br/>";
?>

Pada program diatas kita membuat dua cuah class, yaitu class Sekolah (class induk) dan class Siswa yang merupakan turunan dari class Sekolah.

Pada class Sekolah terdapat sebuah static properti $namaSekolah dan static method showSekolah(). Pada method showSekolah terlihat kita mengakses static properti $namaSekolah dengan keyword self.

Pada class Siswa yang merupakan turunan dari class Sekolah, sebuah static properti $namaSiswa dan static method showSiswa(). Pada method showSiswa ini terlihat kita mengakses dua buah static properti yaitu $namaSekolah dan $namaSiswa.

Karena  berada pada class induk maka kita mengakses Statis properti $namaSekolah dengan keyword parent. Sementara untuk mengakses static properti $namaSiswa kita menggunakan keyword self.

Jika script diatas dijalankan akan tampil seperti ini :

SMPN 1 WELAHAN
SMPN 1 WELAHAN
SABRINA
SABRINA dari SMPN 1 WELAHAN

Referensi :

  • //php.net/manual/en/language.oop5.static.php

Filed Under: PHP

Tutorial PHP OOP Part 11 : Mengenal Operator Scope Resolution (::)

26 November 2014 By Eko Purnomo

mengenal operator scope resolution::

Operator scope resolution (::) atau dalam bahasa indonesia berarti operator resolusi ruang lingkup adalah operator yang membuat kita diijinkan untuk mengakses static, konstanta, properti dan method pada sebuah class. Operator ini juga disebut dengan Paamayim Nekudotayim. Dengan operator (::) kita bisa mengakses secara langsung sesuatu tanpa instantisasi object. Kita pernah membahas operator ini pada tulisan konstanta pada class.

Ketika kita mereference item ini dari luar definisi class, kita harus menggunakan nama class. Mulai pada PHP 5.3.0 dimungkinkan mereferen class menggunakan variabel. Yang penting nilai variabel tidak boleh berupa keyword, seperti self, parent dan static.

Untuk lebih jelas perhatikan cara menggunakan operator :: berikut ini :

1. Menggunakan operator :: dari luar class

 <?php  
//membuat class
class MyClass {
const KONSTANTA = 'Nilai Konstan';
}

//memanggil konstanta pada class tanpa instantisasi object
echo MyClass::KONSTANTA."<br/>";

//menggunakan variabel dalam mereferen class
$classname = 'MyClass';
echo $classname::KONSTANTA; // As of PHP 5.3.0
?>

2. Menggunakan operator :: dari dalam class

Ada tiga keyword khusus yang bisa dipakai dalam menggunakan operator :: didalam class, yaitu : static, parent dan self.

 <?php  
class MyClass {
const KONSTANTA = 'Nilai Konstan';
}

//membuat class anak turunan dari MyClass
class Anak extends MyClass
{
public static $my_static = 'Variabel Static';
public static function doubleColon() {

echo parent::KONSTANTA . "<br/>";
echo self::$my_static . "<br/>";
}
}

//memanggil method pada class tanpa instantisasi object
//dengan mereferen dari variabel
$classname = 'Anak';
echo $classname::doubleColon(); // As of PHP 5.3.0

//memanggil method pada class tanpa instantisasi object
Anak::doubleColon();
?>

3. Memanggil method pada parent class (class induk)

Ketika class turunan menimpa method yang ada pada class induk (parent class) maka PHP tidak akan memanggil method pada class induk. Jadi bergantung pada class turunan mau menggunakan method pada class induk atau tidak. Cara ini juga dipakai pada Constructors,  Destructors, Overloading, dan definisi Magic method.

 <?php  
class MyClass
{
protected function myFunc() {
echo "MyClass::myFunc()<br/>";
}
}

class Anak extends MyClass
{
// Membuat function yang menimpa function pada induk
public function myFunc()
{
// tapi masih bisa mengakses method dari class induk
parent::myFunc();

echo "Anak::myFunc()<br/>";
}
}

$class = new Anak();
$class->myFunc();
?>

Pada contoh terdapat class induk MyClass yang mempunyai method myFunc dengan perintah menampilkan “MyClass::myFunc()” untuk menandai bahwa tampilan ni dihasilkan oleh method myFunc() pada class induk.

Kemudian kita membuat class turunan bernama Anak dan membuat method bernama myFunc() juga, sama dengan method pada class induk. Kemudian pada method tersebut kita membuat dua perintah, yaitu { parent::myFunc(); } untuk mengakses method myFunc() pada class induk dan { echo “Anak::myFunc()<br/>”; } untuk menampilkan tulisan “Anak::myFunc()”.

Referensi :

  • //php.net/manual/en/language.oop5.paamayim-nekudotayim.php

Filed Under: PHP

Tutorial PHP OOP Part 10 : Membuat Autoloading Class

26 November 2014 By Eko Purnomo

membuat autoloading class


Autoloading class adalah sebuah cara untuk memanggil sebuah class pada file lain tanpa menggunakan fungsi include. Seperti telah dijelaskan sebelumnya bahwa kita sebaiknya membuat class pada file tersendiri, yang selanjutnya ini kita sebut dengan modul.

Dengan membuat class pada file terpisah, kita tidak harus mengulang menulis sebuah class yang sama, namun cukup menyertakannya saja. Nah, autoloading class ini membuat cara menyertakan class menjadi lebih ringkas tanpa harus menuliskan perintah include.

Alasan lain adalah saat ini kebanyakan developer menulis dan menyimpan class sesuai dengan definisinya masing-masing. Masalah yang kemudian terjadi adalah banyaknya include yang harus ditulis diawal sebuah file, jika hanya satu atau dua file tidak apa, lha bagaimana jika file yang diinclude berjumlah puluhan, hal ini tentu menjadi akan sangat tidak efisien.

Membuat Autoloading Class

Kita bisa membuat autoloadng class dengan function __autoload(). Tanda __ adalah underscore (_) yang ditulis dua kali seperti pada function __construct(). Fungsi ini otomatis akan memanggil class saat kita akan menggunakannya, meskipun belum didefinisikan sebelumnya.

function __autoload($class_name) {
include $class_name . '.php';
}

Ada beberapa aturan yang memudahkan kita dalam menggunakan autoloading class, yaitu :

  1. Kita buat satu class satu file modul.
  2. Nama file modul harus sama dengan nama class, termasuk memperhatikan huruf besar dan kecilnya.
  3. File modul berada pada folder yang sama dengan file php. Jika berada pada folder lain harus sertakan path yang lengkap.
  4. fungsi __autoloading harus ada pada file php.

Contoh membuat autoloading class :

1. Buat class Rumus1 lalu simpan dengan nama Rumus2.php

 <?php  
class Rumus1 {
var $panjang;
var $lebar;

function luas() {
return $this->panjang * $this->lebar;
}

function __construct($x,$y) {
$this->panjang = $x;
$this->lebar = $y;
}
}
?>

2. Buat class Rumus2 lalu simpan dengan nama Rumus2.php

 <?php  
class Rumus2 {
var $diameter;

function luas() {
$r = $this->diameter /2;
return 3.14 * $r * $r;
}

function __construct($x) {
$this->diameter = $x;
}
}
?>

3. Buat file php yang menggunakan dua class tadi

 <?php  
function __autoload($class_name) {
include $class_name . '.php';
}

$rumus1 = new Rumus1(5,8);
$rumus2 = new Rumus2(8);

echo "Luas Rumus1 = ".$rumus1->luas()."<br/>";
echo "Luas Rumus2 = ".$rumus2->luas();
?>

4. Pastikan ketiga file berada pada folder yang sama.

5. Jalankan file, jika benar akan tampil seperti ini :

Luas Rumus1 = 40
Luas Rumus2 = 50.24

Referensi :

  • //php.net/manual/en/language.oop5.autoload.php

Filed Under: PHP

Tutorial PHP OOP Part 9 : Menaruh Class dalam Modul

26 November 2014 By Eko Purnomo

menaruh class dalam modul

Agar lebih efisien dalam pemrograman, kita bisa menaruh class didalam sebuah file tersendiri lalu meng-include file tersebut dalam setiap file PHP. Dengan demikian kita tidak perlu menulis ulang class dalam setiap file dan jika ada kesalahan atau modifikasi pada class, kita cukup merubah class dalam satu file tersebut.

Dalam pemrograman, teknik ini dinamakan teknik modularitas. Dimana file class yang dibuat terpisah dan bisa dipakai oleh beberapa file tadi disebut dengan modul. Kata modul mengadopsi istilah yang berarti bagian atau part dari sebuah alat atau perangkat. Langkah-langkah membuat modul dan proses include-nya sama dengan teknik include PHP dasar.

Berikut ini langkah-langkah menaruh class dalam modul :

1. Buat class dalam sebuah file lalu simpan dengan nama class.php

 <?php  
class Rumus {
var $panjang;
var $lebar;

function luas() {
return $this->panjang * $this->lebar;
}

function __construct($x,$y) {
$this->panjang = $x;
$this->lebar = $y;
}
}
?>

2. Buat file index.php pada folder yang sama, lalu include file class.php tadi dalam file index.php yang baru dibuat

 <?php  
include "class.php";

$rumus = new Rumus(5,8);
echo "Luas = ".$rumus->luas();
?>

3. Coba jalankan file index.php, jika benar akan tampil seperti ini :

Luas = 40

Selanjutnya dengan teknik modularitas ini kita bisa membuat auto loading class, yaitu memanggil file class secara otomatis saat membuat object dari sebuah class tanpa harus di- include file-nya. Untuk mempelajari fitur auto loading class lebih lanjut insyaAllah akan ditulis pada artikel selanjutnya.

Referensi :

  • //blog.rosihanari.net/ebook-panduan-praktis-oop-di-php/
  • //www.w3schools.com/php/php_includes.asp

Filed Under: PHP

Tutorial PHP OOP Part 8 : Membuat Constructor dan Destructor

25 November 2014 By Eko Purnomo

membuat constructor dan destructor

Contructor adalah method didalam class yang digunakan untuk melakukan setting properti saat instantisasi object. Constructor membuat pemrograman menjadi lebih efisien karena proses instantisasi object dan setting properti dilakukan secara bersamaan. Constructor dipanggil setiap membuat object baru dari class.

Sedangkan Destructor adalah method didalam class yang digunakan untuk unset semua data yang mereferen terhadap object yang dibuat dari class. Namun tidak seperti Constructor, Destructor sangat jarang digunakan pada pemrograman PHP berorientasi object.

Membuat Constructor

Untuk membuat Constructor sebuah class kita menggunakan method __constructor(parameter) yang merupakan fungsi bawaan PHP. Tanda “__” merupakan tanda underscore (_) yang ditulis dua kali tanpa spasi. Kemudian nama-nama properti yang ingin disetting nilainya dengan nilai dari parameter ditaruh diantara dua kurung kurawal {} seperti saat membuat method.

Salah satu format sederhana membuat constructor didalam sebuah class

 <?php class namaClass {   
var $properti1;
var $properti2;
...dst

function __construct($parameter1,$parameter2,...dst) {
$this->properti1 = $parameter1;
$this->properti2 = $parameter2;
...dst
}
}
?>

Contoh membuat constructor untuk properti panjang dan lebar pada class Rumus

 class Rumus {   
var $panjang;
var $lebar;

//membuat constructor
function __construct($x,$y) {
$this->panjang = $x;
$this->lebar = $y;
}

//membuat method untuk menghitung luas
function luas() {
$hasil = $this->panjang * $this->lebar;
return $hasil;
}
}

Pada contoh diatas kita membuat constructor untuk class Rumus terhadap dua properti, yaitu panjang dan lebar. Pada function __construct dipakai dua variabel bantu $x dan $y untuk mengarahkan nilai dari constructor kedalam nilai properti panjang dan lebar

Membuat lebih dari satu Constructor

Pada sebuah class, kita bisa membuat banyak constructor. Constructor-constructor ini harus berbeda satu sama lain dan mempunyai parameter yang berbeda-beda.

Contoh membuat dua constructor dalam satu class

 class Rumus {   
var $panjang;
var $lebar;

//membuat constructor
function __construct($x,$y) {
$this->panjang = $x;
$this->lebar = $y;
}

//membuat constructor
function __construct($x) {
$this->panjang = $x;
}

//membuat method untuk menghitung luas
function luas() {
$hasil = $this->panjang * $this->lebar;
return $hasil;
}
}

Menggunakan Constructor

Constructor digunakan saat proses instantisasi object. Jadi kita harus menyertakan parameter constructor saat membuat object. Parameter constructor pada object ini harus sama dengan constructor yang dibuat pada class.

Contoh penggunaan constructor

 
//instantisasi object beserta constructor-nya
$rumus = new Rumus(5,8);

//menampilkan hasil dari method luas
echo "Luas = ".$rumus->luas();

Membuat dan Menggunakan Destructor

Destructor adalah kebalikan dari constructor. Jika pada constructor kita mengeset nilai dari sebuah properti, maka pada destructor kita menghapus nilai dari sebuah properti. Untuk membuat destructor kita menggunakan function __destruct() bawaan PHP.

Contoh membuat dan menggunakan destructor

 <?php  
class Rumus {
var $panjang;
var $lebar;

//membuat constructor
function __construct($x,$y) {
$this->panjang = $x;
$this->lebar = $y;
}

function __destruct() {
print "Menghapus Nilai Properti";
}
}

$obj = new Rumus(5,5);
unset($obj);
?>

Contoh diatas jika dijalankan akan menampilkan teks “Menghapus Nilai Properti”. Hal ini karena pada class terdapat sebuah destructor yang dijalankan.

Referensi :

  • //php.net/manual/en/language.oop5.decon.php
  • //blog.rosihanari.net/ebook-panduan-praktis-oop-di-php/

Filed Under: PHP

  • « Previous Page
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • …
  • 17
  • Next Page »

Kategori

  • Android
  • Blogging
  • CSS
  • Desain
  • Elektronika
  • HTML
  • Internet
  • Javascript
  • Komputer
  • Mikrokontroler
  • PHP
  • Website

Pos-pos Terbaru

  • Rangkaian Adaptor 12 Volt 3 Ampere
  • 10 Aplikasi Transportasi Online Terbaru 2018
  • 3 Cara Screenshot di Laptop Windows
  • Rangkaian Adaptor 12V 35Ampere
  • Komunitas Desainer Kampung Jepara
  • Solder Yang Bagus dan Berkualitas
  • Cara Melewatkan Parameter ke dalam Fungsi pada Bahasa C
  • Parameter Dalam Bahasa C: Formal dan Aktual
  • Prototipe Fungsi dalam Bahasa C
  • Cara Menggunakan Fungsi dalam Bahasa C
  • Home
  • Privacy
  • Disclaimer
  • Kontak

Copyright © 2024 · Nulis-ilmu.com