Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat...

37
Pemrograman Berorientasi Objek Adam Hendra Brata Pemrograman Web

Transcript of Rekayasa Perangkat Lunak · pengembangan perangkat lunak yang sifatnya universal dan tidak terikat...

Pemrograman Berorientasi ObjekAdam Hendra Brata

Pemrograman Web

Pengantar PBO

PBO dengan PHP

Pengembangan Website Berorientasi Objek

Pokok Bahasan

Pemrograman Berorientasi Objek

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

Pemrograman Berorientasi Objek

dengan PHP

Class & Object

Pemrograman Berorientasi Objek dengan PHP

Class

Object

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

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

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

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

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

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

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

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

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

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

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();

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

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();

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

Abstract Class

abstract class Binatang

{

abstract protected function bicara();

// Common method (shared)

public function garukGaruk() {

echo "garuk garuk…";

}

}

Pemrograman Berorientasi Objek dengan PHP

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

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

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

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

Pengembangan Website Berorientasi Objek

Project Akhir ? ^^

Pengembangan Website Berorientasi Objek

Project Akhir ? ^^

Langkah – langkah pengerjaan ?

Pengembangan Website Berorientasi Objek

Proyek Akhir Pemrograman Web

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

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

Materi Pengayaan :Halaman Administrasi

pada Website

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

Halaman Administrasi pada Website

Klien

Admin

Halaman Administrasi pada Website

LOGIN

HALAMANADMINISTRATOR

KELOLA

CRUD

HALAMANKLIEN

Klien

Admin

Terimakasih dan Semoga

Bermanfaat ^^