Top Banner
Pemrograman Berorientasi Objek Adam Hendra Brata Pemrograman Web
37

Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Mar 29, 2019

Download

Documents

Nguyễn Hà
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Pemrograman Berorientasi ObjekAdam Hendra Brata

Pemrograman Web

Page 2: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Pengantar PBO

PBO dengan PHP

Pengembangan Website Berorientasi Objek

Pokok Bahasan

Page 3: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Pemrograman Berorientasi Objek

Page 4: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Konsep dasar dan pengenalan PBO di FILKOM

Pemrograman Lanjut

Pemodelan Berorientasi Objek

Analisis dan Perancangan Sistem

Analisis dan Perancangan Sistem Informasi

PBO / OOP adalah sebuah konsep / teori pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa pemrograman tertentu

PHP juga sudah mendukung konsep PBO untuk proses pengembangan website yang lebih dinamis dan modern

Pemrograman Berorientasi Objek

Page 5: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Pemrograman Berorientasi Objek

dengan PHP

Page 6: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Class & Object

Pemrograman Berorientasi Objek dengan PHP

Class

Object

Page 7: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Class & Object

Class = Blueprint / cetakan,Object = Instance / hasil cetakan

<?php

// filename: manusia.class.php

class manusia {

public $nama; // attribute

public function menyapa() {

return 'Halo!';

//echo ‘Hai’;} // method

}

?>

Pemrograman Berorientasi Objek dengan PHP

Page 8: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Class & Object

// file php berbeda

<?php

require('manusia.class.php');

$susan = new manusia; // instansiasi

$susan->nama = 'Susan';

echo $susan->nama

. ' jika menyapa, berkata: '

. $susan->menyapa();

?>

Pemrograman Berorientasi Objek dengan PHP

Page 9: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Class & Object

Jika ingin menggunakan / mengakses atribut dalam method, dapat digunakan keyword $this

class manusia {

public $nama;

public function menyapa() {

echo $this->nama . ' bilang Halo!';}

}

$susan = new manusia;

$susan->nama = 'Susan';

$susan->menyapa();

Pemrograman Berorientasi Objek dengan PHP

Page 10: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Constructor

Method yang pertama kali akan dieksekusi saat kelas diinstansiasi

<?php

class manusia {

public $nama;

public function __construct($nama) {

$this->nama = $nama;

}

public function menyapa() {

echo $this->nama . ' bilang Halo!';}

}

?>

Pemrograman Berorientasi Objek dengan PHP

Page 11: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Constructor

Method yang pertama kali akan dieksekusi saat kelas diinstansiasi

<?php

$susan = new manusia('Susan');

$susan->menyapa();

?>

Output

Susan bilang Halo!

Pemrograman Berorientasi Objek dengan PHP

Page 12: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Constructor

<?php

$mahasiswi = new manusia('Susan');

$mahasiswa = new manusia('Adi');

echo $mahasiswa->nama; // Adi

$mahasiswa->nama = "Budi";

echo $mahasiswi->nama; // Susan

echo $mahasiswa->nama; // siapa dan kenapa ?

?>

Pemrograman Berorientasi Objek dengan PHP

Page 13: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Inheritance

Teknik menciptakan kelas dari turunan kelas lain

Kelas turunan mewarisi atribut dan method kelas induk dan dapat memiliki atribut dan method tambahan yang lain

Pemrograman Berorientasi Objek dengan PHP

Parent

Children

Page 14: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Inheritance

class mahasiswa extends manusia {

public function __construct($nama){

$this->nama = $nama;

}

public $tugas = 'belajar';

}

$susan = new mahasiswa('Susan');

echo $susan->menyapa()

. ' ketika sedang ' . $susan->tugas;

Output

Susan bilang Halo! ketika sedang belajar

Pemrograman Berorientasi Objek dengan PHP

Page 15: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Inheritance

class mahasiswa extends manusia {

...

public function menyapa(){

echo $this->nama . ' bilang Hei!';

} // override

...

} // apa hubungan constructor parent dan child ?

$susan = new mahasiswa('Susan');

echo $susan->menyapa()

Output ? // apa outputnya

Pemrograman Berorientasi Objek dengan PHP

Page 16: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Class Visibility

Public : dapat diakses oleh semua class

Private : hanya dapat diakses oleh class itu sendiri

Protected : hanya dapat diakses oleh class itu sendiri dan class turunannya

Pemrograman Berorientasi Objek dengan PHP

Page 17: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Class Visibility

<?php

class MyClass {

public $public = 'Public';

protected $protected = 'Protected';

private $private = 'Private';

function printHello() {

echo $this->public;

echo $this->protected;

echo $this->private;

}

}

Pemrograman Berorientasi Objek dengan PHP

// apa keluarannya ?$obj = new MyClass();echo $obj->public; echo $obj->protected; echo $obj->private; $obj->printHello();

Page 18: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Encapsulation

Teknik untuk menyimpan elemen dari suatu atau lebih objek ke dalam objek yang lain, sehingga objek yang menyimpannya mendapat kontrol penuh

Jika digabungkan dengan penggunaan class visibility yang baik akan memungkinkan adanya information hiding

Pemrograman Berorientasi Objek dengan PHP

Page 19: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Encapsulation

<?php

class pakaian {

public $warna = 'merah';

}

class manusia {

private $baju;

public function __construct() {

$this->baju = new pakaian;

$this->baju->warna = 'biru';

}

public function warnaBaju() {

return $this->baju->warna;

}

}

Pemrograman Berorientasi Objek dengan PHP

// apa keluarannya ?$susan = new manusia();echo 'Susan memakaiBaju berwarna ' . $susan->warnaBaju();

Page 20: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Abstract Class

Class yang harus diturunkan jika ingin dipakai, untuk mengakses elemen – elemen yang berada di parent class, children class harus menggunakan keyword parent

Abtsract class memiliki sifat sebagai berikut : Tidak dapat diinstansiasikan

Method-methodnya dapat berupa method abstrak tidak diimplementasikan

Method-methodnya dapat berupa method tidak abstrak diimplementasikan

Suatu class dapat menuruni sifat dari 1 abstract class

Pemrograman Berorientasi Objek dengan PHP

Page 21: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Abstract Class

abstract class Binatang

{

abstract protected function bicara();

// Common method (shared)

public function garukGaruk() {

echo "garuk garuk…";

}

}

Pemrograman Berorientasi Objek dengan PHP

Page 22: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Abstract Class

class Kucing extends Binatang

{

public function bicara() {

echo "Meong…"

}

}

$anggora = new Binatang; // E

$anggora = new Kucing;

$anggora->bicara(); // meong…

$anggora->garukGaruk();

// garuk garuk…

Pemrograman Berorientasi Objek dengan PHP

Page 23: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Interface

Interface memiliki sifat sebagai berikut : Sifat dasarnya adalah “menyatakan kontrak”

Method-methodnya berupa method abstrak tidak diimplementasikan

Method-methodnya harus diimplementasikan sesuai aslinya, baik jumlahnya maupun deklarasinya dan sifatnya semuanya public

Suatu class dapat mengimplementasikan sifat dari banyak interface

Kenapa Interface dan apa bedanya dengan class abstract ?

Design Pattern

Lihat materi pendukung !

Pemrograman Berorientasi Objek dengan PHP

Page 24: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Polymorphism

Polymorphism adalah istilah untuk pemberian interface yang sama untuk beberapa bentuk implementasi yang berbeda namun memiliki 1 sifat dasar yang sama

Pemrograman Berorientasi Objek dengan PHP

Page 25: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Polymorphism

interface binatang {

public function bicara();

}

class kucing implements binatang {

public function bicara() {

echo "Meong…";

}

}

class anjing implements binatang {

public function bicara() {

echo "Guk… Guk…";

}

}

Pemrograman Berorientasi Objek dengan PHP

Page 26: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses
Page 27: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Pengembangan Website Berorientasi Objek

Page 28: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Project Akhir ? ^^

Pengembangan Website Berorientasi Objek

Page 29: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Project Akhir ? ^^

Langkah – langkah pengerjaan ?

Pengembangan Website Berorientasi Objek

Page 30: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Proyek Akhir Pemrograman Web

Page 31: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

1. Analisis Kebutuhana. Identifikasi Aktor

b. Spesifikasi Kebutuhan

i. Pemodelan Diagram Use Case

ii. Deskripsi Use Case Scenario

2. Perancangan Sistema. Perancangan arsitektural website

(Analisis Statis)

i. Pemodelan Class Diagram

ii. Definisi Class

b. Perancangan Data

i. Pemodelan Entity Relationship Diagram

c. Perancangan perilaku website (Analisis Dinamis)

i. Pemodelan Sequence Diagram

d. Perancangan Antarmuka Website

i. Pemodelan template antarmuka website

ii. Pemodelan aliran halaman website

Page 32: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

3. Implementasi Sistem Websitea. Pengembangan aplikasi web berorientasi

objek dengan menggunakan PHP

4. Implementasi Basis Dataa. Implementasi struktur basis data dengan

menggunakan MySQL

5. Implementasi Antarmukaa. Implementasi antarmuka website dengan

menggunakan HTML5 dan CSS3

6. Pengujian Website

7. Presentasi dan Evaluasi Proyek

Page 33: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Materi Pengayaan :Halaman Administrasi

pada Website

Page 34: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Halaman administrasi adalah halaman yang pada umumnya digunakan untuk melakukan pengelolaan isi atau unsur lain sebuah website

Halaman administrasi berbeda dengan halaman website yang dapat diakses secara bebas oleh pengguna melalui internet (halaman klien)

Halaman administrasi hanya dapat digunakan oleh pihak yang punya autoritas khusus (admin)

Pada umumnya website dinamis memiliki 2 sisi halaman, yaitu klien dan admin

Halaman Administrasi pada Website

Page 35: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Halaman Administrasi pada Website

Klien

Admin

Page 36: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Halaman Administrasi pada Website

LOGIN

HALAMANADMINISTRATOR

KELOLA

CRUD

HALAMANKLIEN

Klien

Admin

Page 37: Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa ... PHP juga sudah mendukung konsep PBO untuk proses

Terimakasih dan Semoga

Bermanfaat ^^