Beranda > Pemrograman, PHP > Kelas Dan Objek Di PHP (bagian 1)

Kelas Dan Objek Di PHP (bagian 1)


Anda tentu sudah sering mendengar istilah OOP atau Object Oriented Programming. Dalam Bahasa Indonesia diterjemahkan sebagai Pemrograman Berorientasi Objek. Boleh dikatakan hampir semua (kalau tidak boleh dikatakan seluruhnya) bahasa pemrograman modern memiliki sifat orientasi objek ini. Suatu bahasa pemrograman dikatakan murni bersifat object oriented apabila setidaknya memenuhi unsur-unsur inheritance, polymorphism, dan encapsulation. Demikian pula dengan PHP yang boleh dikatakan juga memenuhi ketiga unsur tersebut, sekalipun bisa jadi tidak semua programmer setuju. Kita tidak perlu memperdebatkan hal tersebut, yang pasti sekarang kita akan mempelajari kelas dan objek di PHP.

Kelas dan objek memang merupakan sesuatu yang agak sulit didefinisikan, tetapi untuk membantu membayangkannya dapat dipakai ilustrasi berikut:

Misalnya sebuah kelas dibayangkan sebagai sebuah mobil, sementara itu sedan, pick up, jeep, minibus dapat dibayangkan sebagai objek-objeknya. Jadi setiap dibicarakan sebuah sedan, sedan tersebut tidak dapat terlepas dari kelasnya yaitu sebuah mobil yang memiliki mesin, roda, kemudi, tempat duduk, dan lain-lain. Dari sudut pandang yang sebaliknya dapat dikatakan bahwa jika sebuah kelas mobil didefinisikan, maka dapat didefinisikan pula sebuah objek sedan atau minibus atau jeep yang memiliki seluruh sifat dari mobil.

Kelas

Kelas adalah sebuah kumpulan variabel dan fungsi-fungsi yang bekerja dengan variabel tersebut. Untuk mendefinisikan kelas, sintaks yang digunakan adalah sebagai berikut:

class namakelas {

var $namavariabel;

…Kumpulan fungsi…

}

Sebagai batasan, namakelas tidak boleh menggunakan nama stdClass karena telah digunakan oleh Zend Engine, yaitu “mesin” yang merupakan motor penggerak PHP.

Di dalam kelas, variabel didefinisikan dengan pernyataan var. Di dalam sebuah kelas secara default dikenal sebuah variabel bernama $this yang mereferensikan kelas itu sendiri. Kemudian untuk merujuk kepada variabel yang didefinisikan dengan pernyataan var digunakan tanda ->.

Untuk lebih jelasnya berikut akan diberikan contoh sebuah kelas yang berisi fungsi-fungsi perhitungan matematika sederhana:

<?

class hitung {

var $hasil;

function kali($x,$y) {

$this->hasil = $x * $y;

}

function bagi($x,$y) {

$this->hasil = $x / $y;

}

function tambah($x,$y) {

$this->hasil = $x + $y;

}

function kurang($x,$y) {

$this->hasil = $x – $y;

}

}

?>

Sebagai perbandingan, dalam bahasa pemrograman lain (seperti misalnya Visual Basic .NET) variabel di dalam kelas umumnya disebut dengan properti dan fungsi di dalam sebuah kelas umumnya disebut dengan metoda.

Sebuah kelas dapat merupakan perluasan dari kelas yang ada sebelumnya. Misalnya pada contoh kelas di atas fungsi-fungsi yang ada hanyalah kali(), bagi(), tambah(), kurang() dan mungkin itu dirasakan kurang. Jika ingin didefinisikan sebuah kelas lain yang juga mengandung fungsi-fungsi kali(), bagi(), tambah(), dan kurang() serta ditambah sebuah fungsi lagi misalnya pangkat(), maka tidak perlu dibuat sebuah kelas yang baru sama sekali yang mengandung kelima fungsi tersebut. Kelas tersebut dapat merupakan perluasan dari kelas hitung dan hanya mendefinisikan sebuah fungsi baru yaitu pangkat(). Dalam PHP untuk melakukan perluasan terhadap sebuah kelas digunakan pernyataan extends yang sintaksnya adalah sebagai berikut:

class namakelas extends kelaslain {

var $namavariabel;

…Kumpulan fungsi…

}

Contoh:

<?

class hitung_juga extends hitung {

function pangkat($x,$y) {

$this->hasil = pow($x,$y)

}

}

?>

Dari contoh ini dapat disimpulkan bahwa kelas hitung_juga akan memiliki variabel dan fungsi-fungsi yang terdapat pada kelas hitung ditambah dengan sebuah fungsi baru yaitu pangkat().

Perluasan kelas semacam ini dapat dikategorikan sebagai sifat inheritance dari pemrograman berorientasi objek. Kelas hitung_juga pada contoh di atas merupakan inherit dari kelas hitung.

Dalam melakukan perluasan ini, kelas yang merupakan inherit dari kelas lain dapat mendefinisikan fungsi dengan nama yang sama. Contoh:

class A {

function contoh() {

echo “Aku adalah fungsi contoh yang asli”;

}

}

}

class B extends A {

function contoh() {

echo “Aku adalah fungsi contoh yang didefinisikan ulang”;

}

Dalam hal ini fungsi contoh() di kelas A disebut dengan shadowed dan tidak dapat dipergunakan lagi. Unsur polymorphism terpenuhi di sini.

Objek

Menurut ilustrasi mobil di atas dapat dikatakan bahwa objek “diperanakkan” dari kelas. Untuk mendefinisikan sebuah objek digunakan sintaks sebagai berikut:

$namaobjek = new namakelas;

Setelah objek didefinisikan, maka seluruh variabel dan fungsi yang terdapat dalam sebuah kelas namakelas otomatis terdapat pula dalam objek namaobjek tersebut. Untuk merujuk pada fungsi atau variabel yang dimiliki oleh kelasnya, maka digunakan juga tanda ->. Berikut akan diberikan contoh bagaimana menggunakan objek dan kelas dengan menggunakan contoh kelas hitung dan hitung_juga yang telah diberikan di atas.

<HTML>

<HEAD>

<TITLE> Kelas dan Objek </TITLE>

</HEAD>

<BODY>

<?

class hitung {

var $hasil;

function kali($x,$y) {

$this->hasil = $x * $y;

}

function bagi($x,$y) {

$this->hasil = $x / $y;

}

function tambah($x,$y) {

$this->hasil = $x + $y;

}

function kurang($x,$y) {

$this->hasil = $x – $y;

}

}

$a = 7;

$b = 3;

echo “Nilai \$a = $a <BR>”;

echo “Nilai \$b = $b <BR>”;

$calc = new hitung;

echo “\$a kali \$b sama dengan “;

$calc->kali($a,$b);

print $calc->hasil;

echo “<BR>”;

echo “\$a bagi \$b sama dengan “;

$calc->bagi($a,$b);

print $calc->hasil;

echo “<BR>”;

echo “\$a tambah \$b sama dengan “;

$calc->tambah($a,$b);

print $calc->hasil;

echo “<BR>”;

echo “\$a kurang \$b sama dengan “;

$calc->kurang($a,$b);

print $calc->hasil;

echo “<BR> <BR>”;

class hitung_juga extends hitung {

function pangkat($x,$y) {

$this->hasil = pow($x,$y);

}

}

$calc_juga = new hitung_juga;

echo “\$a kali \$b sama dengan “;

$calc_juga->kali($a,$b);

print $calc_juga->hasil;

echo “<BR>”;

echo “\$a bagi \$b sama dengan “;

$calc_juga->bagi($a,$b);

print $calc_juga->hasil;

echo “<BR>”;

echo “\$a tambah \$b sama dengan “;

$calc_juga->tambah($a,$b);

print $calc_juga->hasil;

echo “<BR>”;

echo “\$a kurang \$b sama dengan “;

$calc_juga->kurang($a,$b);

print $calc_juga->hasil;

echo “<BR>”;

echo “\$a pangkat \$b sama dengan “;

$calc_juga->pangkat($a,$b);

print $calc_juga->hasil;

echo “<BR>”;

?>

</BODY>

</HTML>

Jika skrip tersebut dijalankan pada browser

Kategori:Pemrograman, PHP Tag:
  1. 14 Juli 2014 pukul 02:54

    They’re all crap that doesn’t work but to serve as a distraction from productive training.
    If you are interested in some local fitness classes in the Lamorinda area,
    Orinda Community Center has some reasonably priced options.
    31) unscrupulous (ADJ): not restrained by ideas
    of right and wrong.

  2. 19 Juli 2014 pukul 23:03

    Hmm it looks like your blog ate my first comment (it was super long) so I guess I’ll just sum it up what I submitted
    and say, I’m thoroughly enjoying your blog. I as well am an aspiring blog blogger but I’m still
    new to everything. Do you have any tips for beginner blog writers?

    I’d definitely appreciate it.

  3. 26 Juli 2014 pukul 01:48

    After I initially commented I seem to have clicked the -Notify me when new comments are added- checkbox and
    now whenever a comment is added I recieve four
    emails with the same comment. Is there an easy method you can remove me from that service?
    Thanks a lot!

  4. 27 Juli 2014 pukul 21:44

    You may observe that there are clearly significant differences between Skype in a meeting room and a traditional video
    conference area. A software bug is an error in a computer program that either causes problems with the program itself or results in Windows errors.

    You will need to find out which program is easing up your memory.

  5. 10 Agustus 2014 pukul 15:59

    The studios are all ushing to get as lots of their new family films out
    on DVD and Blu-ray as they wil before that fimal minute mad rush for Christmas presents.

    It would complyy with inn the footsteps of many curtent makes an attempt to break out the category, succh the Pebble and Sony Smartwatch 2 Samsung and Microsoft are reportedly additionally working on smartwatch initiatives.
    Girls particularly appear to be in tune wwith their intestine emotions and these
    is usually a nice defence mechanism.

  6. 12 Agustus 2014 pukul 07:00

    This is because this sort of substances relaxes your language and throat muscles a great deal that
    they just can not hold themselves in their
    natural position at night. Funny, but it never really bothered me until
    I hit my 30s. If you are searching for affordability and convenience, a home snoring remedy
    may intrigue your interest, when investing time and expense in a solution, it is advisable to know if it’s successfully behind a stop snoring solution.

  7. 30 Agustus 2014 pukul 14:52

    you are in reality a just right webmaster. The site loading
    speed is amazing. It seems that you are doing any distinctive trick.
    Also, The contents are masterwork. you have done a wonderful activity in this matter!

  8. 23 September 2014 pukul 23:20

    Down load FIFA 15 Total Activity + Break
    FIFA 15 is an forthcoming game which will be introduced upon September 26th simply by
    EA Online games. We have were able to Down load FIFA 15 via
    EA machines and had the ability to develop a FIFA 15 Crack
    just for you people.
    If you Get FIFA 15 Complete Activity + Split by the web page we are able to ensure
    that you’ll possess the exact same quality associated with item seeing that
    people folks who suffer from ordered FIFA 15.
    That’s mainly because our own FIFA 15 Fracture possesses every one
    of the features of hobbyists version regarding FIFA 15 unlocked by
    now. Simply because most of us appreciate people much!

  9. 26 September 2014 pukul 05:41

    Thanks for your marvelous posting! I seriously enjoyed reading
    it, you are a great author.I will remember to bookmark your blog and definitely will come
    back at some point. I want to encourage you to continue your great writing, have a
    nice afternoon!

  10. 1 Oktober 2014 pukul 08:08

    Hello! Do you know if they make any plugins to safeguard against hackers?
    I’m kinda paranoid about losing everything I’ve worked hard
    on. Any tips?

  11. 7 Desember 2015 pukul 02:53

    Ultimately the wait for a Clash of Kin hack device that is appropriate for cell units has ended.

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: