Pertemuan 1
IKB112312
STMIK EL RAHMA
Oleh : Wahyu Widodo
[
Pengantar Object Oriented Programming
]
Apa yang melatar belakangi lahirnya konsep OOP ?
Pesatnya perkembangan Internet, berbanding lurus dengan kebutuhan akan
tuntutan perkembangan aplikasi web.
Keuntungan apa yang diperoleh dengan Konsep OOP ?
Menghasilkan aplikasi yang terstuktur dan kokoh
Aplikasi menjadi modular sehingga :
Ketergantungan antar modul tereduksi
Mudah ditelusuri jika terjadi kesalahan
Apa saja konsep dasar OOP ?
1.
Abstraction
2.
Object dan Class
Object adalah data yang telah terstruktur sesuai dengan yang didefinisikan dalam
sebuah class.
Class adalah template/kerangka yang digunakan untuk membentuk sebuah object.
Jadi, Object adalah instance dari classnya
Object memiliki Attribute dan method.
Attribute : data-data
3.
Inheritance
Pembuatan Class baru berdasarkan class yang sudah ada sebelumnya.
Keuntungan ?
Mendefinisikan method yang lebih spesifik di subclass
4.
Polymorphism
Suatu object dapat memiliki berbagai bentuk.
Ada 2 jenis :
Overloading : Penggunaan satu nama untuk beberapa method yang berbeda
parameternya.
Apa saja pembagian hubungan antar class ?
Dibagi menjadi 3 :
Generalization : Hubungan class B merupakan penjabaran dari class A
Dependency : Hubungan ketergantungan antar A class dengan class b
Bagaimana cara
…
.?
Mendeklarasikan attribute pada class
1. class Product{
2. public $name = 'default product name';
3. public $price = 0;
4. public $description; //definisi properti dengan nilai null
5. }
Membuat Instance Sebuah Class
Untuk membuat instance dari sebuah class digunakan kata tercadang
new
dan diikuti oleh
nama class tersebut. Misalkan:
1. $product = new Product();
Mengakses properti dan men-
setting
properti
1. $product = new Product();
2. //mengakses property
3. echo $product->name; //ouput 'default product name'
4. echo 'Price: '.$product->price; //output 'Price: 0';
5. //men-setting nilai properti
6. $product->price = 100;
Membuat Method pada sebuah Class
1. class Product{
2.
3. public $name = 'default product name';
4. public $price = 0;
5. protected $discount = 0; //dalam persen
6.
7. public function getDiscount(){
8. return $this->discount; //cara mengakses properti dari sebuah method
9. }
10.
11. public function getPrice(){
12. $price = $this->price - ($this->price * $this->getDiscount());
13. return $price;
14. }
15.
16. public function setDiscount($discount){
17. $this->discount = $discount; // cara men-setting nilai properti dari method
18. }
19. }
Memanggil atau Menggunakan Method Class
Untuk memanggil method dari sebuah class sama seperti properti menggunakan tanda ->,
seperti contoh di bawah:
1. $product = new Product();
2. $product->price = 100;
3. echo 'Price: '.$product->getPrice(); //output 'Price: 100'
4. $product->setDiscount(5);
5. echo 'Price: '.$product->getPrice(); //output 'Price: 95'
Seperti apa contoh inheritance ?
1. class CDmusik extends Product{
2.
3. public $artis;
4. public $durasi = 0;
5. public $daftarLagu = array();
6.
7. function tambahLagu($lagu){
8. if(is_array($lagu)){
9. $this->daftarLagu = array_merge($this->daftarLagu, $lagu);
10. }else{
11. $this->daftarLagu[] = $lagu;
12. }
13. }
14.
15. function setDurasi($durasi){
16. $this->durasi = $durasi;
17. }
18.
19. function setArtis($artis){
20. $this->artis = $artis;
21. }
22.
23. }
24.
25. $cdAndra = new CDmusik('Andra and The Backbone', 40);
26. $cdAndra->tambahLagu('Main Hati');
27. $cdAndra->tambahLagu('Hitamku');
28. $cdAndra->setArtis('Andra');
29. $cdAndra->setDurasi(60);
30.
31. echo 'Artis: '.$cdAndra->artis;
32. echo '<br/>Durasi:'.$cdAndra->durasi; 33. echo '<br/>Lagu:';
34. echo '<ol>';
35. foreach($cdAndra->daftarLagu as $lagu){
36. echo '<li>'.$lagu.'</a>';
37. }