NIM : H1101221005
Matkul : Pemrograman Berorientasi Objek
1. Autoload
Autoload adalah cara mempersingkat file php dengan memisahkan kode-kode seperti
class dan objek dalam file yang terpisah, untuk membuat kode php menjadi lebih
terorganisir dan mudah dibaca.
Contoh: kode yang masih belum menggunakan namespace.
<?php
class Pegawai
{
public int $nip;
public string $nama;
private int $no_hp;
public string $alamat;
class Pegawai
{
public int $nip;
public string $nama;
private int $no_hp;
public string $alamat;
Dalam autoload, kita dapat menggunakan include atau include_once, dan require atau
require_once.
a. Include
Include menyertakan isi dari file satu ke file lainnya secara utuh. Cara kerja include
sama seperti kita men-copy paste kode yang ada pada kode file satu ke kode file lain.
Misalnya ada sebuah file yang bernama saya.php
<?php
Lalu ada file Ruang.php yang berisi include ke file saya.php tadi
<?php
include 'saya.php';
echo "Ini dari ruang";
include 'Dirimu.php';
echo "Ini dari ruang";
Maka output yang akan muncul adalah:
Warning: include(Dirimu.php): Failed to open stream: No such file or
directory in C:\laragon\www\pbo\Ruang.php on line 3
include 'saya.php';
include 'saya.php';
include 'saya.php';
echo "\nIni dari ruang";
include 'saya.php';
include 'saya.php';
Output yang dihasilkan:
Ini dari saya
Ini dari saya
Ini dari saya
Ini dari ruang
Ini dari saya
Ini dari saya
b. Include_once
Bedanya dengan include saja adalah: pada include_once, dia hanya akan
menjalankan kode sekali saja, jika sudah pernah dijalankan, maka kode tersebut
tidak akan dijalankan lagi. Contoh, pada file Ruang.php:
<?php
include_once 'saya.php';
include_once 'saya.php';
include_once 'saya.php';
echo "\nIni dari ruang";
include_once 'saya.php';
include_once 'saya.php';
Maka output yang ditampilkan adalah:
Ini dari saya
Ini dari ruang
c. Require
Require mirip dengan include, yaitu bisa memasukkan isi file satu ke file lain.
Misalnya pada file saya.php:
<?php
require 'saya.php';
echo "\nIni dari ruang";
Maka output yang ditampilkan akan sama persis dengan penggunaan include:
Ini dari saya
Ini dari ruang
Perbedaan dari include dan require adalah: jika kode include error, maka sistem akan
melanjutkan untuk menjalankan kode di bawahnya. Namun pada require jika terjadi
error, maka seluruh kode tidak akan dijalankan. Contoh:
Misalnya pada file Ruang.php dipanggil file yang tidak terdapat dalam folder yang
sama:
<?php
require 'Dirimu.php';
echo "Ini dari ruang";
Maka output yang akan muncul adalah:
Warning: require(Dirimu.php): Failed to open stream: No such file or
directory in C:\laragon\www\pbo\Ruang.php on line 3
Fatal error: Uncaught Error: Failed opening required 'Dirimu.php'
(include_path='.;C:/laragon/etc/php/pear') in C:\laragon\www\pbo\
Ruang.php:3
Stack trace:
#0 {main}
thrown in C:\laragon\www\pbo\Ruang.php on line 3
Maka akan muncul error pada require, dan kode di bawahnya juga tidak dijalankan.
Jadi itulah yang membedakan include dan require.
d. Require_once
Require_once umumnya digunakan pada saat pemanggilan class, karena class
biasanya cukup dipanggil satu kali saja. Misalnya terdapat class Lingkaran dan Bola.
Pada file Lingkaran.php:
<?php
class Lingkaran
{
const PHI = 3.14;
public $jari_jari;
public function __construct($jari_jari) {
$this->jari_jari = $jari_jari;
}
require_once 'Lingkaran.php';
require_once 'Bola.php';
2. Namespace
Namespace ini bisa dibilang sama seperti saat kita meng-enkaptulasi, yaitu membungkus
suatu kelas ke dalam beberapa model.
Misalnya pada sebuah file sebagai berikut:
<?php
class Mahasiswa
{
public $nama;
class Mahasiswa{
public $ipk;
namespace Admin;
class Mahasiswa
{
public $nama;
namespace Mahasiswa;
class Mahasiswa{
public $ipk;
namespace Admin;
class Mahasiswa
{
public $nama;
namespace Mahasiswa;
class Mahasiswa{
public $ipk;
namespace Admin;
class Dosen
{
public $nama;
Penulisan namespace juga bisa seperti penulisan nama folder, namun dengan
menggunakan backslash. Contoh:
<?php
namespace Admin\Models;
class Mahasiswa
{
public $nama;
namespace Mahasiswa;
class Mahasiswa{
public $ipk;
namespace Admin\Models;
class Dosen
{
public $nama;
Namun jika membuat kode program yang mengandung autoload atau namespace, harus
menggunakan composer, yang harus diinstall terlebih dahulu di komputer.