1/April/2008

Main-main OOP dengan PHP

Tulisan ini menjelaskan dasar OOP di PHP.
Supaya semangat, mari kita lihat apa tujuan beberapa orang menggunakan OOP:

1. Memudahkan pengembangan software (Dimudahkan dengan UML)

  • “Hanya dengan OOP; kompleksitas dan pengembangan software menjadi mudah dilakukan (syaratnya: design softwarenya benar)”
  • “Yang masih pake cara struktur, trus HTML-nya dicampur aduk dengan PHP punya keuntungan cepat dalam pembuatan “duitnya juga cepet dapet :) “, tapi dalam pengembangan?? hehe…”
  • 2. Memudahkan orang lain mempelajari (Baik untuk open source style)

  • “Kenyataan saat ini program berbasis open source jauh melesat berkembang, nah.. masalahnya kalo orang lain susah pempelajari program Anda, siapa yang mau gembanginnya???”
  • 3. Mudah untuk dihubungkan dengan program OOP yang dibuat orang lain (code saya kaya fitur)

  • “kata kuncinya ’standarisasi’. Ada banyak fitur berbasis OOP yang dapat kita ambil dari jaringan komputer terluas ini, nah…
    Kalo.. software Anda udah OOP tentunya bukan perkara sulit untuk menggabungkan ke OOP juga”
  • Target tulisan saya ini sebenarnya manusia yang baru belajar PHP, terutama para mahasiswa.
    Ok.. saya tidak pintar basa basi, kita mulai saja.

    class,var,function dan __construct

    Kata kunci class menandakan objek. Di dalam class bisa terdiri dari satu atau beberapa variabel dan fungsi.
    Analoginya, secangkir kopi adalah objek yang terdiri dari beberapa variabel yakni air ,kopi bubuk, gelas dan sendok, lalu Anda melakukan fungsi pemanas untuk memanaskan air, dilanjutkan melakukan fungsi memasukan kopi dan air panas ke dalam gelas dan menggunakan fungsi aduk dengan sendok.

    Ada yang indah dengan OOP ini. Andaikan rekan Anda telah membuatkan sebuah objek secangkir kopi panas tetapi Anda lebih suka dengan kopi susu, bukankah tinggal menambahkan variabel susu saja?? yang hebatnya lagi dengan OOP Anda bisa membuat secangkir teh hanya mengambil objek secangkir kopi panas “tanpa mengambil kopinya” lalu mencampurkan dengan teh.

    Hehe… tentu analogi saya ini kurang pas untuk keadaan aslinya, Anda tidak bisa dong mengambil air kopi dari gelas teman Anda untuk membuat teh, tapi di OOP ini bisa dilakukan dengan tanpa mengurangi objek sumbernya!!.

    Kekeliruan yang sering terjadi adalah dengan mebuat kelas DEWA, ini biasanya dilakukan manusia yang ngerti teknis apa itu class, function, var, extends dan lain sebagainya tapi tidak paham sama sekali tujuan OOP.

    Bagaimana class DEWA ini?? ya… satu kelas campur aduk, ibaratnya orang nyampurin kopi, teh, garam, susu gula, air, sendok ke dalam satu gelas. Hehe… jadi sih objek tapi namanya “kopi manis rasa asin” hihihi… lidahnya bingung.
    Nah… oleh karena itu buatlah content objek sesuai dengan tujuan objeknya.

    Ayo kita pelajari class sederha berikut:


    < ?php
    class KopiPanas{
    var $gelas ;
    var $sendok ;
    var $kopi ;
    var $air ;
    function __construct($gelas,$sendok,$kopi,$air){
    $this->gelas = $gelas;
    $this->sendok = $sendok;
    $this->kopi = $kopi;
    $this->air = $air;
    }
    function pemanas($sesuatu){
    return $sesuatu . ” menjadi panas”;
    }
    function diaduk($a,$b,$c){
    return ” $a $b dilarutkan menggunakan $c “;
    }
    function diletakan($objek,$tempat){
    return $objek . ” ditempatkan di “. $tempat;
    }

    }
    //objek mulai dibuat
    $objek = new KopiPanas(”Gelas gede”,”Sendok kecil”,”Kopi arabika”,”Air mineral”);

    //Membuat kopi panas
    $airpanas = $objek->pemanas($objek->air);
    $larutan = $objek->diaduk($airpanas,$objek->kopi,$objek->sendok);
    echo $objek->diletakan($larutan,$objek->gelas);

    ?>

    Ceritanya:

  • Kita mulai membacanya dari variabel $objek di bawah, variabel ini adalah variabel yang saya defenisikan sendiri sebagai penampung objek yang akan dibuat
  • Kemudian saya mulai membuat objek KopiPanas dengan tanda new
  • Saya mengisi beberapa nilai di dalam KopiPanas(…………….), data yang dimasukan ini berhubungan dengan __construct , apa ini?? __construct adalah konstruktor atau fungsi yang pertama dipanggil saat objek dibuat. Biasanya dimanfaatkan untuk memberikan data-data awal sebelum memanfaatkan fungsi-fungsi lain
  • trus apapula this??? this adalah cara melempar atau mengambil nilai dari atau ke variabel class. Dalam kasus ini awalnya var $gelas dan teman-temannya tidak ada nilai, namun bernilai setelah __construct dipanggil dan diberi nilai
  • Selanjutnya saya gunakan fungsi pemanas $objek->pemanas(…) untuk memanaskan air $objek->air, kemudian disimpan pada sebuah variabel $larutan yang saya defenisikan sendiri.
  • $airpanas, $objek->kopi dan $objek->sendok saya aduk menggunakan fungsi $objek->diaduk(…), hasilnya saya simpan ke variabel $larutan
  • terakhir, $larutan saya letkan di $objek->gelas menggunakan fungsi $objek->diletakan(…)
  • jadilah secangkir kopi panas.
  • Mudahnya membuat Teh dengan extends

    Saya akan buktikan mudahnya membuat Teh dengen memanfaatkan beberapa objek di kelas KopiPanas. Biar kerasa lebih mudah, Bayangkan bahwa kelas KopiPanas dibuat oleh orang lain, kemudian Anda manfaatkannya untuk membuat Teh panas. Caranya cukup membuat kelas turunan, lihat kode berikut:


    class TehPanas extends KopiPanas {
    var $teh;
    function __construct($jenisteh,$gelas,$sendok,$air){
    $this->teh = $jenisteh;
    parent::__construct($gelas,$sendok,”",$air);
    }
    }

    $objek = new TehPanas(”teh melati”,”gelas kecil”,”sendok biasa”,”Air normal”);
    $airpanas = $objek->pemanas($objek->air);
    $larutan = $objek->diaduk($airpanas,$objek->teh,$objek->sendok);
    echo $objek->diletakan($larutan,$objek->gelas);

    Singkatkan??? Bahkan Anda tidak mengubah 1 kodepun di kelas utamanya.

    Baiklah, saya ceritakan tentang TehPanas ini:
    ~ extends menandakan kelas ini keturunan dari kelas KopiPanas, arti keturunan di sini adalah memiliki apa yang Ada di kelas induk.
    ~ Kita ketemu parent:: di sini, maksdunya adalah memanggil atau menggunakan fungsi induk, jadi parent::__construct adalah memanggil __construct pada kelas induk (KopiPanas).
    ~ Selesai, siap diminum TehPanas-nya… hehehe

    Apakah cerita sangat singkat ini cukup membuktikan indahnya pake OOP???

    Bersambung ke sini

    By: mauladi at inbox dot com

    2 Comments »

    The URI to TrackBack this entry is: http://mauladi.blogsome.com/2008/04/01/main-main-oop-dengan-php/trackback/

    1. wah luar biasa . . .
      saya lbh mengerti n paham , ,, jadi guru les keren ntu,ap dosen . .
      makasi . . .

      Comment by - — 17/June/2008 @ 12:52 am

    2. frankly speaking, I’m lack of computer knowledge. Now on I just can say it must be wonderful

      Comment by duti_volya — 16/July/2008 @ 4:56 pm

    RSS feed for comments on this post.

    Leave a comment

    Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



    Anti-spam measure: please retype the above text into the box provided.






    E-mail:mauladi at
    inbox dot com