Modul Mate Rip Bo
Modul Mate Rip Bo
Materi : Class
CLASS
Perhatikan denah arsitektur rumah dibawah. Gambar tersebut merupakan contoh
ilustrasi dari class rumah yang nantinya akan diimplementasikan menjadi objek rumah ataupun
perumahan.
Class merupakan cetak biru atau blueprint dari objek, Programer merakit kode pada
setiap class yang menjadi kerangka dasar yang akan digunakan dan diinisiasi berupa objek.
Class menentukan struktur dan behavior (perilaku) dari suatu objek. Class merupakan
kumpulan dari objek-objek yang mempunyai karakteristik yang sama atau mirip yang terdiri
dari atribut dan method di dalamnya. Dapat kita simpulkan bahwa class adalah:
• Blueprint/Template untuk membuat instance dari objek
• Class mendefinisikan Object
• Menyimpan data dan perilaku yang disebut dengan atribut dan method
Cara Mendeklarasikan Class: Diawali dengan menuliskan keyword class, diikuti
namaClass dan dibatasi dengan {} untuk menyimpan atribut dan method didalamnya
Aturan Penamaan Class: Menggunakan aturan camelCase dimana menggunakan kata benda,
jika lebih dari satu kata tidak menggunakan spasi atau underscore antar kata, melainkan
menggunkana huruf kapital di setiap awal abjad kata seperti NamaClassBaru{};
Materi : Object
Objek merupakan hasil instansiasi atau hasil cetakan dari class yang telah dibuat
sebelumnya. Objek berisi state (atribut) dan behavior (method) yang dimiliki dan dapat
dijalankan oleh pengguna. Secara umum disimpulkan bahwa objek:
• Instance atau inisiasi yang didefinisikan oleh class
• Banyak object dapat dibuat menggunakan satu class
Cara Mendeklarasikan Objek: Objek dibuat dengan keyword new kemudian diikuti class
yang akan diinisiasikannya.
Kita dapat membuat banyak objek dari satu class. Tipe dari objek berasal dari class
dengan mendeklarasikan atribut identitas dan method aksi serta menciptakan instansiasi objek.
Objek dapat saling berkomunikasi dengan objek lainya untuk memenuhi kebutuhan yang ada
dengan menggunakan message seperti pemanggilan method dengan pengiriman informasi
yang bertujuan untuk memperjelasnya harus disertai parameter message.
Berikut ini contoh penerapan class dan object pada bahasa PHP:
<?php Output:
class Coba{ //isinya
object(Coba)#1 (0)
masih kosong}
{ } object(Coba)#2
// Object dari class
(0) { }
Coba
$a = new Coba();
$b = new Coba();
var_dump($a);
var_dump($b);
?>
Buat class dengan nama Coba yang isinya masih kosong. Kemudian isi variabel $a
dengan object ke-1 dari class Coba dan variabel $b dengan object ke-2 dari class Coba.
Terakhir kita lihat kedua variable tersebur dengan var_dump() dan lihat hasilnya pada web
browser.
Materi : Atribut/Property
ATRIBUT
Perhatikan tabel dibawah. Pada tabel tersebut terdapat class mobil yang memiliki
karakteristik atau data yang merupakan ilustrasi dari atribut dalam class tersebut.
Class Mobil Memiliki Atribut
• nama
• merk
• warna
• kecepatanMaksimal
• jumlahPenumpang
Atribut atau properti adalah data atau informasi yang tersimpan dalam sebuah class.
Dengan adanya atribut, programmer dapat mengelompokan dan mengatur data dengan lebih
terstruktur dan efisien serta memudahkan pengaksesan dan penggunaan data tersebut.
Misalnya, pada class Mobil, terdapat beberapa karakteristik seperti nama, merk, kecepatan
maksimal dan jumlah penumpang. Atribut ini dapat dianggap sebagai variabel yang
merepresentasikan nilai dari karakteristik di dalam sebuah class tersebut.
Berikut ciri-ciri dari atribut:
• Merepresentasikan data/ keadaan dari sebuah object
• Variable yang ada di dalam object
• Untuk deklarasi konstanta menggunakan huruf kapitan dan antar kata menggunakan
underscore seperti MAX_VALUE, DIGIT_NUMER dan lainya.
Cara Penulisan Atribut:
• Diawali dengan visibility/acces modifier, sekarang ini pakai public dulu saja.
• Kemudian deklarasikan seperti variabel biasa, $namaAtribut dengan aturan penamaan
camelCase seperti pada class tetapi diawali dengan huruf kecil
• Umumnya atribut menggunakan hak akses private dan methode dengan public untuk
mendukung konsep enkapsulasi data hiding pada PBO
Materi : Method
METHOD
Perhatikan tabel dibawah. Pada tabel tersebut terdapat class mobil yang memiliki aksi
atau fungsi yang merupakan ilustrasi dari method dalam class tersebut.
Class Mobil Memiliki Method
• tambahKecepatan
• kurangiKecepatan
• gantiTransmisi
• belokKiri
• belokKanan
Method dapat diartikan sebagai fungsi bila mengembalikan suatu nilai (return value) atau
prosedur yang melakukan suatu proses tanpa mengembalikan nilai. Method dapat digunakan
untuk mengatur perilaku dan interaksi antar objek, serta memproses data yang tersimpan di
dalam class, seperti pada table di atas dimana class mobil dapat melakukan aksi-aksi seperti
berbelok, tambah kecepatan dan ganti transmisi.
Ciri-ciri method:
• Merepresentasikan perilaku dari sebuah object
• Function yang ada di dalam object
Berikut cara menggunakan method di dalam class:
• Seperti penulisan fungsi tetapi diawali dengan visibility/acces modifier, sekarang ini
gunakan public.
• Kemudian diikuti function dan nama methodnya seperti penulisan class, menggunakan
camelCase.
• Untuk method yang memberikan atau mengubah suatu nilai awali dengan set seperti
setNamaMethod(nilai pengubah) dan diawali get untuk pengambilan data seperti
getNamaMethod()
Berikut ini contoh penerapan atribut dan method pada program.
<?php Output:
Class Produk{
public $judul = "judul", Komik : Naruto, Masasi Kishimoto
$penulis = "penulis";
<?php Output:
Class Produk{ Komik : Naruto, Masasi Kishimoto
public $judul, $penulis; object(Produk)#2 (2) {
["judul"]=> string(11)
$penulis="penulis"){
$this->judul = $judul;
$this->penulis =
$penulis;
}
public function getLabel(){
return "$this->judul,
$this->penulis";
}
}
Materi : Inheritance/pewarisan
INHERITANCE
Perhatikan tabel di bawah. Tabel yang merepresentasikan class mobil sport turunan dari
class mobil yang memiliki atribut khusus yaitu turbo dan method khusus jalankanTurbo yang
tidak dimiliki mobil jenis lain, tetapi memiliki karakteristik yang sama dengan class mobil
umumnya seperti atribut nama dan merk serta method tambahKecepatan.
Class MobilSport Atribut
• nama
• merk
• turbo
Method
• tambahKecepatan
• jalankanTurbo
Inheritance merupakan penulisan kode berdasarkan pada kesamaan dari atribut dan
method dari berbagai class yang digunakan, sehingga kesamaan tersebut hanya perlu
dideklarasikan sekali. Class yang menjadi induk (parent class) akan mewariskan seluruh
karakternya pada class turunannya (child class) dan dikembangkan sesuai dengan
fungsionalitas khusus dari masing-masing child class seperti contoh ilustrasi mobil sport di
atas.
Berikut ciri-ciri inheritance:
• Menciptakan hierarki antar kelas induk dengan turunannya (parent class dan child class)
• Child class mewarisi semua atribut dan method dari parent class (yang visible)
• Child class dapat memperluas fungsionalitas dari parent class dengan fitur khusus
• Parent class menjadi induk pengelompokan kesamaan karakter untuk efektifitas kode.
• Parent class dapat membuat banyak child class begitu juga dengan child class dapat
menggunakan (extends) lebih dari satu parent class.
Cara menererapkan inheritance:
• Deklarasikan yang akan menjadi class induk (parent class) sesuai karakteristik yang
dibutuhkan.
• Buat child class dan setelah nama class tambahkan extends NamaClassInduk{isi class}
Untuk lebih jelasnya, berikut ini contoh penerapan kode programnya:
<?php
Class Produk{
public $judul, $penulis, $jmlHalaman, $waktuMain;
Materi : Polymorphism
POLYMORPHISM
Hampir semua burung bisa terbang, setiap burung memiliki ciri khas tersendiri saat
terbang ada yang terbang dengan kepakan sayap cepat, lambat ataupun hanya melayang. Tetapi
semua bentuk tersebut masih dikategorikan sebagai cara terbang burung.
Polymorphism berarti banyak bentuk. Maksudnya adalah program yang memiliki
perilaku yang secara prinsif sama tetapi secara prosesnya berbeda. Hal ini sering disebut
dengan satu interface dengan aksi yang berbeda-beda. Dalam kasus PBO terlihat ketika child
class ingin mengubah isi method yang diwarisi dari parent classnya.
Berikut ciri-ciri dari polymorphism:
• Child class hanya boleh sekali dalam mengubah isi method yang diwarisi dari parent class
• Visibility/acces modifier dari method harus sama atau lebih luas(terbuka) daripada parent
classnya
Cara penggunaan polymorphism:
• Deklarasikan parent class dan child class yang akan digunakan.
• Buat method parent class pada child class yang akan diubah isinya.
• Sesuaikan pembuatan objeknya berdasarkan kebutuhan.
• Untuk memanggil method parent class di dalam method child class yang akan diubah isinya
menggunakan parent::namaMethod()
Berikut ini contoh penerapannya pada kode program:
<?php
Class Produk{
public $judul, $penulis;
ACCES MODIFIER
Setiap jabatan dalam perusahaan memiliki kekuatan untuk melihat data perusahaan
yang berbeda-beda, seperti Manager dapat melihat keseluruhan data flow perusahaannya
sedangnya staf-stafnya hanya bisa mengakses data sesuai dengan bidang yang dikerjakanya.
Ilustrasi tersebut selaras dengan acces modifier atau hak akses yang diterapkan pada
class, method dan atribut. Konsep yang digunakan untuk mengatur akses dari property dan
method pada sebuah object. Acces modifier memiliki tiga jenis yaitu:
• Hal Akses Public
Saat sebuah property atau method dinyatakan sebagai Public, maka semua kode
program yang berada dalam luar class dapat mengakses-nya. termasuk class itu sendiri
/class turunan.
• Hak Akses Protected
Dalam sebuah property atau method yang dinyatakan sebagai Protected, maka property
atau method tersebut tidak dapat di akses dari luar class, tapi dapat akses oleh classnya
sendiri atau turunan class tersebut. Apabila kita mengakses Protected yang ada di property
maupun method dari luar class maka akan terjadi error.
• Hak akses Private
Jika dalam sebuah property atau methot dinyatakan sebagai Private, maka hanya dapat
diakses oleh class itu sendiri. Class-class yang lain-pun tidak dapat mengaksesnya
walaupun class tersebut class turunannya. Hak akses Private sering kali digunakaan untuk
menyembunyikan property dan method agar tidak dapat diakses dari luar class.
Adapun peran dari acces modifier ini adalah:
• Hanya memperlihatkan aspek dari class yang dibutuhkan oleh pengguna
• Menentukan kebutuhan yang jelas untuk object
• Memberikan kendali pada kode untuk menghindari bug
Cara menggunakan accces modifier: Sebelum mendeklarasikan class, atribut dan method
diawali dengan keyword public, protected dan private sesuai dengan kebutuhan
Untuk lebih jelasnya perhatikan contoh penerapanya berikut ini:
<?php
Class Produk{
public $judul;
protected $diskon = 0 ;
private $harga;
ABSTRACT CLASS
Abstraksi mengandung fakta-fakta penting saja tentang permasalahan ketika
perancangan, produksi dan penggambaran. Hal ini bertujuan untuk mempermudah pengguna
dengan tidak berfokus pada hal-hal mendetail tentang bagaimana objek tersebut bekerja dengan
memperlihatkan konteks esensial serta mengabaikan hal-hal yang bersifat insidental sehingga
pengguna cukup fokus pada menentukan antribut dan method yang ada pada objek tersebut.
Class abstrak merupakan salah satu jenis class dalam bentuk abstrak sehingga tidak bisa
dibuat langsung menjadi objek. Syarat minimal class abstrak adalah memiliki satu method
abstrak di dalamnya dan method tersebut tidak memiliki implementasi atau tidak memiliki
bentuk konkritnya.
Berikut ini ciri-ciri abstact class:
• Mendefinisikan template atau kerangka dasar untuk class lain yang menjadi turunannya
• Dikatakan abstact class jika memiliki minimal 1 method abstrak
• Digunakan dalam pewarisan/inheritance untuk implementasi method abstrak yang sama
untuk semua kelas turunannya tetapi hanya sekali.
• Kelas abstrak boleh memiliki atribut dan method biasa ataupun static method
Cara Menggunakan: Diawali kata kunci abstact class namaClass{isi dari abstact class}.
Untuk child class diimplementasikan seperti pewarisan, menggunakan extends.
Untuk lebih jelasnya berikut implementasinya:
<?php
abstract class Produk{
public $judul, $penulis;
Materi : Interface
INTERFACE
Interface merupakan bentuk lain dari abstract class yang menjadi kerangka dari sebuah
class dan nantinya akan diimplementasi ulang seluruh methodnya. Interface lebih berperan
untuk menyeragamkan method. Ini tidak termasuk kedalam struktur class seperti abstract class.
Jika kita menggunakan abstract class komputer sebagai konsep class untuk kemudian
diturunkan kepada class lain seperti class laptop, class pc, dan class netbook. Maka, interface
hanya penyedia method nya. Interface tidak termasuk kedalam pewarisan class.
Lebih jelas tentan interface:
• Abstact class yang sama sekali tidak memiliki implementasi (Berbeda dengan konsep class)
• Murni merupakan template untuk kelas turunannya (tanpa implementasi logika kodingan)
• Tidak boleh memiliki property, hanya deklarasi method saja
• Semua method harus dideklarasikan dengan visibility public
• Boleh mendeklarasikan __construct()
• Satu kelas boleh menggunakan banyak interface
• Tidak bisa diinisiasi menjadi object seperti abstract class.
• Pada akhirnya mendukung penggunaan polymorphism juga
Cara menggunakan: Diawali dengan kata kunci interface diikuti namaInterface{isi dari
deklarasi method-methodmya}. Untuk child class yang akan menggunakannya dengan class
diikuti namaClassnya implements namaInterface{isi child class}
Berikut implementasi interface:
<?php
interface InfoProduk{
public function getInfoProduk();
}
class Produk implements InfoProduk {
public $judul, $penulis;
ENCAPSULASI
Ketika peternakan ikan tidak memisahkan kolam berdasarkan ukuran dan umur ikan
apa yang akan terjadi?. Tentunya hasilnya tidak akan optimal dan ukurannya tidak merata, jadi
diperlukan pemisahan kolam sesuai dengan kebutuhan dan umur ikan agar hasil panen menjadi
maksimal.
Komik.php
<?php
class Komik extends Produk implements InfoProduk {
public $jmlHalaman;
Game.php
<?php
class Game extends Produk implements InfoProduk {
public $waktuMain;
Kemudian pada folder App kita tambahkan index.php untuk mengambil file class-
class tadi dan membuat objeknya
index.php
<?php
spl_autoload_register(function($class){
require_once __DIR__. '/Produk/'. $class . '.php';
});
PACKAGE (NAMESPACE)
Ketika kalian memiliki buku yang sama dengan teman kalian, apa yang biasanya kalian
lakukan?. Ada yang memberi nama pada sampul, memeberi cover, sticky note dsb sebagai
penanda buku itu miliki kamu.
new komik\Produk();
echo "<br>";
new game\Produk();
echo "<hr>";
new ProdukKomik();
echo "<br>";
new ProdukGame();
?>
Sibero, Alexander F.K. (2013). Web Programming Power Pack. Yogyakarta: MediaKom.