Minggu, 22 April 2012

Buku Inter Net

213
BAB 8
MODEL OBJEK PHP
Bagaimana sesungguhnya model objek pada PHP? Fitur model objek
baru dari PHP 5 merupakan jawaban tepat untuk menjelaskannya.
Sebenarnya kemampuan sebagai pemrograman yang mendukung
orientasi objek bukanlah satu-satunya fitur baru dari PHP 5. Akan tetapi,
dukungan orientasi objek ini merupakan salah satu fitur yang cukup
menonjol sekali. Terbukti dengan adanya perbaikan fitur berbasis objek
dalam versi ini dan ditambahkan pula model objek baru yang tidak
ditemukan di versi sebelumnya.
Tidak dapat dipungkiri memang, pada kenyataannya untuk saat ini fitur
canggih tersebut belum digunakan secara meluas. Hal ini bisa jadi
karena belum banyak web server yang menggunakannya dan masih
setia dengan PHP 4, selain itu juga karena performansinya masih
memberikan sedikit keraguan bagi beberapa kalangan.
Terlepas dari adanya kekurangan pada pemrograman berorientasi objek
dalam PHP 5, pembahasan di sini dimaksudkan untuk menjelaskan
bagaimana membuat aplikasi web berorientasi objek. Bagaimanapun
juga, pendekatan pemrograman dengan berorientasi objek mampu
menyajikan kode program lebih sederhana dan reusability, sehingga
memudahkan Anda mengembangkan aplikasi web yang kompleks.
214
8.1 Prosedural dan Orientasi Objek
Kebanyakan pemrogram lebih familiar dengan pemrograman terstruktur
atau prosedural. Salah satu faktor penyebabnya adalah usianya yang
sudah cukup matang, sehingga juga sudah meluas digunakan oleh
berbagai kalangan. Di mana sekitar tahun 1950 diperkenalkan bahasa
pemrograman Fortran dengan tipe prosedural.
Ada pun pemrograman berorientasi objek meskipun sebenarnya juga
sudah cukup lama dikenal namun penggunaannya tidak seluas
pemrograman prosedural. Kurang lebih sekitar tahun 1970 muncul
SmallTalk yang memperkenalkan orientasi objek. Seiring dengan semakin
meningkatnya kebutuhan, orientasi objek dipandang sebagai solusi yang
cukup menarik dalam mengembangkan aplikasi.
Berkaitan dengan pendekatan yang digunakan dalam pemrograman,
PHP memungkinkan Anda untuk membuat program menggunakan
pendekatan secara prosedural atau berorientasi objek. Secara normal,
kebanyakan pemrogram lebih sering menggunakan pendekatan
prosedural, apalagi sebelumnya dukungan objek pada PHP masih belum
selengkap saat ini. Oleh karena itu, apabila Anda baru mengenal PHP,
maka pemrograman prosedural mungkin akan lebih akrab bagi Anda.
Akan tetapi, apabila Anda ingin mengembangkan aplikasi menggunakan
PHP untuk implementasi lebih baik, disarankan mengenal orientasi objek
dari PHP.
Untuk mengetahui lebih jelas mengenai keduanya, kita akan membahas
satu per satu, karena bagaimana pun juga baik prosedural maupun
orientasi objek sangat diperlukan dalam mengembangkan aplikasi.
8.1.1 Pemrograman Prosedural
Kalangan yang fanatik terhadap prosedural umumnya tidak menyarankan
penggunaan pendekatan abstrak. Contoh ekstrem dari kalangan ini
adalah melakukan langkah penolakan objek, dan tidak menerima
abstraksi tentunya. Mereka cenderung melihat bagaimana menghasilkan
sesuatu yang cepat dan tidak memperhatikan jika orang lain dapat
membaca kode programnya.
215
Bahkan tidak jarang yang menganggap bahwa pemrograman adalah
kompetisi kecepatan pada aktivitas tim. Dalam pengembangan PHP,
kalangan seperti inilah yang memungkinkan pembuatan modul PECL serta
memiliki kontribusi terhadap efisiensi kode program.
Listing program berikut menunjukkan contoh penulisan program oleh
kalangan prosedural.

8.1.2 Pemrograman Berorientasi Objek
Lain halnya dengan kalangan yang fanatik terhadap objek, umumnya
mereka tidak begitu memperhatikan faktor performansi pada pendekatan
yang dilakukan. Bahkan terlihat kalangan ini sangat menikmati konsep
desain abstrak, karena orang-orang seperti ini biasanya berkarir di
bidang manajemen proyek atau dokumentasi.
Contoh penulisan listing program di kalangan orientasi objek dapat
digambarkan seperti berikut.
myPrint();
?>
Dalam lingkungan PHP, kalangan orientasi objek lebih cenderung
membuat modul PEAR dan memiliki kontribusi besar terhadap kemudahan
pengelolaan kode program.
216
8.2 Konsep Dasar OOP
Orientasi objek telah terbukti kelayakannya selama bertahun-tahun dan
terbukti pula sebagai pemrograman yang cukup tangguh. OOP
merupakan paradigma pemrograman yang cukup dominan saat ini,
karena mampu memberikan solusi kaidah pemrograman modern.
Meskipun demikian, bukan berarti bahwa pemrograman prosedural
sudah tidak layak lagi.
OOP diciptakan karena dirasakan masih adanya keterbatasan pada
bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah,
semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data
dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi
satu kesatuan yang dapat disebut sebagai objek. Proses perancangan
atau desain dalam suatu pemrograman merupakan proses yang tidak
terpisah dari proses yang mendahului, yaitu analisis dan proses yang
mengikutinya.
Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep
objek seperti inheritance atau penurunan, encapsulation atau pembungkusan,
dan polymorphism atau kebanyakrupaan. Konsep-konsep ini
merupakan fundamental dalam orientasi objek yang perlu sekali dipahami
serta digunakan dengan baik, dan menghindari penggunaannya
yang tidak tepat.
8.2.1 Class dan Objek
Dalam lingkungan program berorientasi objek, pemrogram mendefinisikan
class secara statik. Pada saat run-time, class akan diinstantiasi
menjadi objek. Ada pun objek yang merupakan instantiasi dari suatu
class selalu dapat diacu melalui current objek, apa pun nama instant-nya.
Dapat didefinisikan bahwa class merupakan struktur data dari suatu
objek, lebih jelasnya adalah sebuah bentuk dasar atau blueprint yang
mendefinisikan variabel method umum pada semua objek dari beberapa
macam. Objek sendiri adalah kumpulan variabel dan fungsi yang
dihasilkan dari template khusus atau disebut class.
217
Kiranya cukup penting untuk membedakan antara class dengan objek. Di
mana objek adalah elemen pada saat run-time yang akan diciptakan,
dimanipulasi, dan dihancurkan ketika eksekusi. Ada pun class merupakan
definisi statik dari himpunan objek yang mungkin diciptakan sebagai
instantiasi dari class. Sederhananya adalah kumpulan objek yang
mempunyai atribut sama. Dengan demikian, pada saat run-time maka
yang kita miliki adalah objek.
Paling tidak suatu class memiliki struktur sebagai berikut:
class NamaClass {
}
Agar dapat digunakan, maka class memerlukan atribut dan operasi, di
mana dibuat dengan cara mendeklarasikan variabel di dalam class
menggunakan keyword var.
class NamaClass {
var $atribut1;
var $atribut2;
function operasi() {
}
}
Dalam bahasa pemrograman lain seperti Java, file program harus
disimpan sama dengan nama class. Lain halnya dengan PHP, Anda
dapat memberikan nama yang tidak harus sama.
8.2.2 Inheritance
Untuk menggambarkan inheritance atau pewarisan di dalam pemrograman,
pada saat Anda menggunakan kembali atau mengganti method
dari class yang sudah ada, serta ketika menambahkan field instant dan
method baru, maka pada saat itulah Anda bekerja dengan inheritance.
Konsep ini merupakan konsep yang fundamental dalam orientasi objek
dan harus digunakan dengan baik.
218
Ada beberapa macam jenis inheritance yang dikenal dalam pemrograman
berorientasi objek, di antaranya adalah single inheritance dan
multiple inheritance.
Dalam single inheritance, sebuah class turunan merupakan turunan dari
sebuah class induk, perhatikan ilustrasi pada Gambar 8.1. Terlihat
bahwa class B mewarisi class A, bentuk lain menjelaskan bahwa class B
serta class C adalah turunan dari class A.
Gambar 8.1 Single inheritance
Ada pun pada multiple inheritance, sebuah class turunan mewarisi lebih
dari satu class induk (join). Hal ini dapat menimbulkan beberapa
persoalan jika ternyata ada fitur di class-class induk yang ternyata konflik,
misalnya konflik nama atau body.
Gambar 8.2 Multiple inheritance
Pada hubungan inheritance, sebuah class turunan mewarisi kelas leluhur.
Oleh karena mewarisi, maka semua atribut dan method class dari induk
219
akan dibawa, secara intrinsik menjadi bagian dari class anak. Dalam
beberapa keadaan, membawa secara intrinsik semua atribut dan method
tidak dikehendaki, sehingga pemroses bahasa menyediakan sarana
untuk:
• Menambah fitur baru
• Mengubah atau mengganti fitur yang diwarisi
• Menghapus fitur yang diwarisi dan
• Menentukan fitur yang masih belum terdefinisi
Pada kenyataannya, hal ini menimbulkan persoalan yang tidak
sederhana, karena penghapusan fitur dapat menimbulkan beberapa
konsekuensi berbahaya sehingga sedikit sekali yang menyarankan
penghapusan fitur. Listing program berikut akan menunjukkan bagaimana
implementasi pewarisan.
nama = $n;
}
function Hallo() {
echo "Halo, saya $this->nama
";
}
}
class Anak extends Bapak {
}
$test = new Anak("Anak dari Bapak");
$test->Hallo();
?>
Hasil tampilan dari listing program di atas adalah “Halo, saya Anak dari
Bapak” dan bukannya “Halo, saya Bapak”. Mengapa demikian?
Memang di dalam class Bapak didefinisikan variabel nama dengan nilai
Bapak, selanjutnya kita membuat objek dari class Anak yang merupakan
220
turunan dari class Bapak. Lihat bahwa instantiasi sekaligus mengisikan
parameter baru “Anak dari Bapak”, sehingga ketika dipanggil maka
mengisikan $this->nama dengan parameter tersebut.
Ada pun di dalam implementasi pemrograman, kebanyakan pemrogram
merasakan beberapa manfaat dari inheritance atau pewarisan, di
antaranya:
• Subclass mampu menyediakan perilaku khusus dari elemen dasar
yang disediakan oleh superclass.
• Pemrogram dapat mengimplementasikan superclass untuk memanggil
class abstrak yang menyatakan perilaku umum.
8.2.3 Encapsulation
Konsep fundamental berikutnya di dalam pemrograman berorientasi
objek adalah encpsulation atau pembungkusan. Orientasi objek mendukung
karakteristik enkapsulasi menggunakan konsep class, dan setelah
terbentuk maka class akan bertindak sebagai entitas yang terenkapsulasi
(terbungkus). Tentu saja enkapsulasi objek ini memiliki maksud tersendiri,
terutama dalam impelementisnya ketika mengembangkan perangkat
lunak berbasis objek.
Sering pula dikatakan bahwa enkapsulasi merupakan teknik penyembunyian
informasi ke dalam struktur. Tujuan enkapsulasi adalah untuk
menyembunyikan properti dan method dari suatu objek, dan hanya
menampilkan properti serta method yang dibutuhkan. Ada pun properti
atau method yang ditampilkan dari suatu objek dikenal dengan istilah
interface. Pembahasan mengenai interface akan dijelaskan dalam
subbab tersendiri.
Beberapa keuntungan yang didapatkan pemrogram melalui penggunaan
enkapsulasi adalah:
Catatan:
Class turunan selalu bergantung pada base class tunggal, dan sampai saat
ini PHP tidak mendukung adanya multiple inheritance.
221
• Modularitas
Kode program untuk objek dapat ditulis serta dikelola secara
independen untuk kode program pada objek lainnya.
• Informasi yang tersimpan dan tersembunyi
Objek memiliki interface public yang dapat digunakan oleh objek lain
untuk berkomunikasi. Selain itu, objek juga memiliki informasi private
yang dapat diubah setiap saat dengan tanpa mempengaruhi objek
lain yang bergantung padanya.
8.2.4 Polymorphism
Istilah polymorphism berasal dari kata poly yang berarti banyak (many)
dan morphos yaitu bentuk (form). Istilah ini ternyata tidak hanya
digunakan dalam bahasa pemrograman, akan tetapi bidang-bidang
seperti biologi dan kimia juga sering memakainya. Terlepas dari adanya
bidang lain yang menggunakan, tentu saja di sini kita akan membahas
dari sisi pemrograman.
Dalam pemrograman berorientasi objek, polymorphism merupakan hasil
alamiah dari hubungan is-a dan suatu mekanisme dari message passing,
inheritance, serta konsep substitutability. Sebagaimana diketahui, salah
satu kemampuan menonjol dari pendekatan OOP bahwa peralatan
dapat dikombinasikan dalam bermacam cara, dan menghasilkan teknik
berbagi kode dan penggunaan ulang. Oleh karena itu, di dalam
pemrograman berorientasi objek, polymorphism diartikan merupakan
suatu konsep yang menyatakan bahwa sesuatu yang sama dapat
memiliki berbagai bentuk serta perilaku berbeda.
Berkaitan dengan eksepsi overloading, polymorphism membuat kemungkinan
melalui adanya variabel yang disebut variabel polymorphism.
Begitu pula di dalam overloading, suatu method dikatakan polymorphism
apabila memiliki banyak bentuk. Perlu diperhatikan bahwa di dalam PHP,
hanya fungsi yang merupakan member dari class yang dapat menggunakan
konsep polymorphism ini.
222
8.2.5 Instantiation
Begitu Anda selesai mendeklarasikan class, maka Anda akan melangkah
ke pembuatan objek. Hal ini juga Anda alami ketika membuat instance
atau instantiating suatu class.
Dalam pembuatan objek dengan kata kunci (keyword) new, Anda perlu
menetapkan apa class objek yang akan di-instance dan menyediakan
parameter pendukung.
";
}
}
$a = new NamaClass ("Satu");
$b = new NamaClass ("dua");
$b = new NamaClass ("tiga");
$d = new NamaClass();
?>
Pada listing program di atas, oleh karena konstruktor dipanggil terpisah
maka dibuat objek tersendiri. Perhatikan tampilan hasil eksekusi program,
meskipun objek $d berhasil dijalankan, namun terdapat pesan yang
menyatakan bahwa diperlukan argumen pada pemanggilan parameter.
Gambar 8.3 Instantiasi objek
223
8.2.6 Overriding
Sebagaimana kita ketahui, subclass mendeklarasikan atribut dan operasi
baru. Terkadang juga diperlukan untuk mendeklarasikan ulang atribut
dan operasi yang sama. Dalam melakukan hal ini, kita memberikan nilai
atribut yang berbeda pada subclass untuk objek yang sama pada
superclass.
Alternatif lain adalah memberikan operasi pada subclass yang fungsinya
berbeda dengan operasi yang sama pada superclass. Pada saat Anda
melakukan hal seperti inilah maka dinamakan dengan overriding.
Perhatikan contoh berikut:
";
echo "Nilai = $this->attr
";
}
}
class B extends A {
var $attr = "Nilai B";
function operasi () {
echo "
Something else
";
echo "Nilai = $this->attr
";
}
}
$a = new A();
$a->operasi();
$b = new B();
$b->operasi();
?>
8.3 PHP dan OOP
Sejauh mana orientasi objek diterapkan dalam PHP? Dan mengapa perlu
menggunakan OOP pada aplikasi web? Jawaban pertanyaan pertama
mungkin belum memusakan jika Anda tidak mempraktekkan langsung
pada PHP 5 dan membandingkan dengan versi sebelumnya. Jawaban
224
pertanyaan kedua bisa kondisional, artinya menyesuaikan dengan
kebutuhan yang diperlukan. Akan tetapi, kita mencoba menatap ke
depan, di mana aplikasi web semakin berkembang dan cukup kompleks.
Oleh karena itu, orientasi objek sangat membantu ketika kita ingin
mengembangkan aplikasi yang kompleks dan dengan kode program
sederhana.
Sebelum melangkah lebih jauh dengan OOP, akan lebih baik jika kita
mengetahui terlebih dahulu bagaimana orientasi objek pada PHP. Perlu
diingat bahwa dukungan objek ini sudah dimasukkan sejak lama, artinya
sebelum versi PHP 5 juga sudah mendukung orientasi objek. Meskipun
demikian, ada beberapa kelemahan dan kekurangan yang cukup berarti.
Berbicara masalah kelemahan orientasi objek pada PHP versi lama, akan
lebih mudah kalau kita ilustrasikan langsung pada program seperti berikut
ini.
nama;
}
function setName($nama) {
$this->nama = $nama;
}
function Pemrogram($nama) {
$this->setName($nama);
}
}
function changeName($pemrogram, $nama) {
$pemrogram->setName($nama);
}
$prog = new Pemrogram("Zend");
print $prog->getname();
print "
Objek setelah diganti
";
changeName($prog, "Andi");
print $prog->getName();
?>
Sebelumnya perhatikan maksud dari listing program di atas, di mana
instantiasi objek sekaligus mengisikan parameter Zend. Ingat bahwa
225
objek dapat diakses dan diubah, sehingga kita melakukan pengubahan
nilai parameter Andi. Ada pun hasil akhir yang ditampilkan setelah
pengubahan adalah Andi, karena pengiriman objek ke fungsi
changeName() by-value. Hal ini disebabkan isi dari $prog di-copy ke
fungsi changeName() dan mengubah nilainya.
Pada kenyataannya tidak demikian di dalam PHP 4, meskipun objek
sudah diubah, akan tetapi yang ditampilkan tetap saja Zend. Hal ini
disebabkan pengiriman nilai parameter yang digunakan adalah
pengiriman pertama, sehingga pengiriman melalui pengubahan akan
diabaikan.
Kasus di atas merupakan salah satu fitur perbaikan dari PHP 5, di mana
dikembangkan untuk memiliki perilaku seperti layaknya pemrograman
berorientasi objek. Dalam orientasi objek, variabel sesungguhnya
memiliki handle atau pointer ke objek, oleh sebab itu ketika terjadi
pengkopian maka tidak akan membuat duplikat objek. Ada pun model
objek dari PHP sebelumnya, tidak hanya bermasalah seperti contoh kasus
di atas, namun juga menimbulkan masalah dasar dalam mengimplementasikan
beberapa fasilitas. Anda akan melihat lebih jauh mengenai model
objek baru ini pada pembahasan selanjutnya.
8.4 Model Objek Baru pada PHP 5
Model objek baru pada PHP 5 adalah salah satu fitur yang merupakan
langkah untuk menyempurnakan dukungan orientasi objek pada PHP.
Oleh karena itu, model-model dari objek lama yang sedikit bermasalah
kini diperbaiki untuk menyesuaikan dengan kaidah bahasa pemrograman
berorientasi objek.
Mengingat pembahasan kali ini banyak mengimplementasikan fitur baru
pada PHP 5 maka disarankan Anda sudah menggunakannya. Akan lebih
baik lagi jika Anda menggunakan versi terbaru, yang jelas sudah
menutup kekurangan-kekurangan yang mungkin ada.
Bersambung

Senin, 12 Desember 2011

konsep

Yang harus sahabat siapkan dalam membuat flashdisk sebagai alat untuk install windows 7 adalah :

Flashdisk dengan ukuran volume lebih dari 2 giga bite ( bisa 4 atau 8 giga bite )
DVD Windows 7 atau File windows 7 dengan format iso ( iso file). Untuk membuat file iso dari CD/DVD bisa dibuka caranya di membuat file iso dari CD/DVD.

... Cara membuat bootable USB flashdisk menggunakan tools Windows 7 USB DVD Tools adalah sebagai berikut.

Jalankan Windows 7 USB DVD Tools, pada kolom source file cari file iso windows sahabat berada dengan menekan tombol browse kemudian klik next

Pada pilihan USB Device dan DVD, pilih USB device

Pilih lokasi USB Flasdisk sahabat kemudian klik Begin copying

Proses pembuatan USB Flasdisk bootable windows 7 sedang berlangsung dan tunggu hingga selesai.

Cara membuat bootable USB Flashdisk menggunakan A Bootable USB :

Colokkan flashdisk anda
Jalankan A bootable USB ( run as administrator )
Klik Check USB drive
Pilih Format USB drive
Pilih DVD or ISO image yang sahabat punya
Klik Start the process untuk membuat bootable USB drive

Untuk menginstall windows 7 dengan menggunakan flashdisk, pastikan pengaturan bios/cmos booting pada posisi USB Drive flashdisk ( Booting melalui flashdisk ). Untuk BIOS computer yang terbaru ini biasanya sudah mendukung booting melalui flashdisk. Kalau belum mendukung booting melalui flashdisk, mungkin cara cd/dvd rom external menjadi pilhan yang tepat.

download windows 7 USB DVD Tools atau di Download disini
Download A Bootable USB
Download Wintoflash

http://dhafiq-san.blogspot.com/2011/05/membuat-transisi-panel-dalam-satu-frame.html

Kamis, 09 April 2009

Dunia Pendidikan

www.marijualan.com Di dalam Dunia Pendidikan persaingan Semangkit ketat, bahkan persaingan di dunia maya.
Yang pertama pendidikan untuk memacu manusia hidup lebih baik lagi dan taraf hidup masyarakat, berkembanya suatu perekonomian karna manusianya cerdas atau tidak.