Kamis, 20 September 2007

ada bubar ipa1 gak euy :D

temen kalian mau pada BUBAr bareng ga, dibulan suci ramadahan yang ke 1428H ini.............. direspon yah ??? :)

Rabu, 20 Juni 2007

mulailah projek oracle vs php ?

akhirnya hari ini aku mulai mengerjakan projek oracle-php.

dengan dimulai sdikit kikuk dengan bangsa oracle; sekarang
harus mulai membiasakan diri ajah,,,,.... yah

step - stepnya dimulai dengan bismillah(penting loh)
uda gitu....coba instal TOAD(software buat view db-oci nya)

terus..............instal client oracle deh,karena kapasitas komputer ini gak mumpuni kalo harus pake sqlserver-oracle dll, maklum masih lemot(wew...)

o iyah, gak ketinggalan...pas instalasinya ternyata aku gak sempet ngelengkapin (completed) oracle client nya.

jadi weh, aku minta bantuan ma om danies n om irul tapi entah kenapa mas danis nya malah ada di ruang server gitu...(biasanya sih lagi belajar buat UAS, hehehehe...)

tapi.... the end sekarang uda beres dan uda nisa nge-restore db-ocinya pake TOAD kok?

sekarang begin..............

siap.............

1 2 3.............(gubrag)---- bangun lagi

yoo wisss.....

buat koneksi php-oracle lagi ?!!

untuk mengingatkan diriku, berikut alamat nya ->

http://step2k.blogsome.com/2006/10/05/oracle-10g-xe-php/

chayooooooooooo

Koneksi PHP dengan database oracle ( Mengingatkan )

ZEND CORE for ORACLE
Komunikasi ke database Oracle dari PHP dapat dilakukan dengan beberapa cara seperti dengan Oracle Install Client
atau dengan Zend Core for Oracle. Saat ini saya hanya akan menjelaskan pengalaman saya mengenai koneksi ke Database Oracle melalui Zend Core yang akan dijelaskan dibawah.

Zend Core for Oracle adalah Engine PHP yang dibuat untuk koneksi antara PHP dan Oracle seperti versi Oracle 8i, 9i dan 10g. Sewaktu tulisan ini dibuat versinya sudah mencapai 1.5. Zend Core for Oracle dibundle dengan Apache 2 dan PHP 5 yang didesain untuk mencapai kinerja yang maksimal, dioptimisasi untuk Oracle 10g XE, aman, cepat, dan berita gembiranya adalah aplikasi ini free / gratis !

Setelah instalasi dilakukan, karena Zend Core sebelumnya telah terpasang ternyata Apache Zend Core 2.01 bentrok dengan Zend Core for Oracle 1.5 sehingga Apache-nya tidak dapat dijalankan ! versi Apachenya pun berbeda, pada Zend Core 2.01 adalah versi 2.2.2 sedangkan Apache di Zend Core for Oracle adalah versi 2.0.59.

Setelah menguninstall Zend Core 2.01 dan menginstall Zend Core for Oracle dari awal, baru Apachenya dapat berjalan dengan normal.
Pada instalasi Zend Core for Oracle, secara standar ekstension koneksi untuk oracle (oci8-Oracle) sudah aktif tetapi ekstension MySQL dan mbstring tidak aktif, jika anda ingin menggunakan koneksi database ke MySQL juga dan biasa menggunakan PhpMyAdmin sebagai aplikasi untuk mengatur database mysql, anda harus mengaktifkannya terlebih dahulu dengan masuk ke Web UI Zend Core dengan alamat http://localhost/ZendCore/ lalu masukkan password yang telah anda masukkan sebelumnya sewaktu instalasi. Lalu masuk ke bagian CONFIGURATION > EXTENSIONS dan click pada tombol switch disebelah icon Lampu mysql - MySQL dan mbstring - Multibyte Character Processing dan simpanlah konfigurasi tersebut. Langkah berikutnya merestart ulang Apache dengan masuk ke Services di CONTROL PANEL > ADMINISTRATIVE TOOLS > SERVICES.

SETTING DI ORACLE 10g XE
Jika anda belum menginstall Oracle 10g XE, anda bisa menginstallnya dengan mengikuti langkah2nya di blog Install Cepat Oracle Database Express 10g pada Linux Fedora Core 5
Sebelum memulai, ada beberapa setting yang harus dipersiapkan didatabase XE agar testing koneksi ke Oracle ini dapat dilakukan. User yang akan digunakan adalah user yang sudah ada pada database XE, kita tinggal mengaktifkannya saja melalui Administrasi Database dengan login ke http://192.168.1.xxx:8080/apex (port dan server disesuaikan dengan setting anda) sebagai DBA lalu masuk ke bagian ADMINISTRATION > DATABASE USERS > MANAGE USERS.
Pilih user HR yang akan membawa anda kedalam mode rubah user. Isi passwordnya sesuai dengan yang anda inginkan, rubah status ACCOUNT STATUS dari Locked menjadi Unlocked dan tekan tombol ALTER USER untuk menyimpan hasil perubahannya. Setelah itu anda tinggal membuat script PHP yang akan berkomunikasi dengan Oracle.



SCRIPT PHP
Koneksi dari php ke Oracle menggunakan fungsi oci_connect dengan format :
oci_connect(”namauser”,”passworduser”, “//ip_database_oracle/XE”);
tulisan XE pada akhir tulisan menunjukan bahwa kita akan menghubungkan php dengan Oracle XE.

Contoh scriptnya dapat dilihat dibawah ini :

?>?>?>?>?>?>?>?>?>?>’;
while ($row = oci_fetch_array($sth, OCI_RETURN_NULLS)) {

echo ‘’;
foreach ($row as $item) {

echo ‘’.($item?htmlentities($item):’ ‘).’’;

}
echo ‘’;

}
echo ‘’;

// menutup koneksi database
//////////////////////////////////////////
oci_close($conn);
?>

Berikut ini tampilan yang merupakan hasil output dari script diatas (datanya sudah ada dalam tabel Oracle 10g XE)



Koneksi antara PHP dan Oracle melalui Zend Core merupakan langkah yang besar bagi komunitas PHP. Apalagi jembatan tersebut didukung penuh oleh Zend Technologies sebagai pengembang bahasa PHP. Tidak dapat disangkal lagi bahwa pada tahun-tahun mendatang, aplikasi enterprise berbasis web terutama pada sisi front-end akan didominasi juga oleh PHP sebagai bahasa pemrograman web yang populer !

Proses instalasi dan cerita diatas menggunakan software - software seperti :
Windows XP ServicePack 2
PHP Version 5.1.6
Oracle 10g XE
ZendCoreforOracle-v.1.5-Windows-x86

Referensi mengenai PHP dan Oracle di situs internet:
Oracle PHP Developer Guide
Zend Core for Oracle
DeployPHP Series, Part 5: Zend Core for Oracle Quick Start
ORACLE 10g XE + PHP
Instalasi Oracle Instant Client di Linux

Penggunaan smarty (penting)

Smarty merupakan template engine yang ada di php, penggunaan template salah satunya adalah memisahkan antara view dan control. kasarnya seh memisahkan kode php dan html, sehingga dalam pemrograman php lebih mudah dan readalbe. Tapi dalam penggunaannya dalam sehari-hari hindarilah 4 hal berikut ini:

1. Tetap mengisikan kode html dalam file php, tujuan awal dari pemakaian smarty adalah memisahkah kode html dan php, sehingga kalau tetap mengisikan html dalam php maka akan mengurangi readable php kita.

2. menggunakan assign untuk variable yang berisikan data yang besar, gunakanlah assign_by_ref dengan menggunakan assign_by_ref maka kita menghindari in-memory copy.

3. meng-aktifkan $compile_check (set menjadi true) pada production state, ketika system sudah memasuki production state maka template sudah tidak ada perbuhan-perubahan lagi sehingga tidak perlu adanya pengecekan perubahan file template, jadi meng-aktifkan $compile_check itu melakukan pemborosan

4. menggunakan koment html, gunakan coment untuk smarty {* dan *} sehingga koment tidak di-outputkan ke user, disamping untuk mengurangi biaya bandwidth, juga untuk menghindari koment-koment kita terbaca sama orang lain.

Selasa, 19 Juni 2007

belajar lagi tentang smarty bagian ka 3 (tilu)


Sekarang kita akan mencoba mendalami Smarty lebih jauh, yaitu dng membuat aplikasi guestbook Konsepnya adalah sebuah guestbook sederhana dng pilihan tampilan 2 bahasa. Proyek yg dbuat ini akan terdiri dari 4 bagian, yaitu:
1. Main (guestbook.php) –> script utama, berisi parsing ke template dan proses2 database. Letakkan di direktori utama (mis: path-to-web-server\guestbook)
2. Konfigurasi –> file konfigurasi. Letakkan di subdir configs (mis: path-to-web-server\guestbook\configs)
2.a. Indonesia.conf –> berisi konfigurasi untuk mode bahasa Indonesia
2.b. Inggris.conf –> berisi konfigurasi untuk mode bahasa Inggris
3. Template (guestbook.tpl) –> file template, berisi template tampilan. Letakkan di subdir templates (mis: path-to-web-server\guestbook\templates)
4. Style sheet (style.css) –> CSS file, untuk pendukung tampilan. Letakkan di direktori utama (mis: path-to-web-server\guestbook)

Entah kenapa, Smarty memberikan pesan error saat menggunakan metode

untuk memasukkan kode CSS. Sedangkan pada penggunaan inline style (tag style) dan embedded style (link rel) tidak ada masalah.

Berikut source code-nya:
1. guestbook.php

[php]< ?php require 'libs/Smarty.class.php'; $smarty = new Smarty; $smarty->assign(”content”,”Smarty says, “Hello World”");
$smarty->display(’guestbook.tpl’);
?>[/php]

2. a. Indonesia.conf

[code]# Konfigurasi untuk bhs Indonesia
pageTitle = “Demo Pembuatan Buku Tamu menggunakan Smarty”
textTitle = “Buku Tamu dengan Smarty”
textDesc = “Demo ini menunjukkan penggunaan pustaka Smarty. Dengan Smarty. kita dapat memisahkan bagian logika dengan bagian presentasi dari aplikasi kita. Selain itu kita juga dapat memisahkan konfigurasi dari aplikasi tersebut. Hasilnya adalah manajemen proyek yg lebih baik efektif dan efisien.”
formTextName = “Nama”
formTextEmail = “Email”
formTextComment = “Komentar”
formTextSubmit = “Isi Buku Tamu”
formTextDiv = “:”[/code]

2. b. Inggris.conf

[code]# Konfigurasi untuk bhs Inggris
pageTitle = “Guestbook Demo Using Smarty”
textTitle = “Guestbook with Smarty”
textDesc = “This demo shows how Smarty library works. With Smarty, you can easily split your application coding/logic, design/layout, and configuration, thus make project management much more easier.”
formTextName = “Name”
formTextEmail = “Email”
formTextComment = “Comment”
formTextSubmit = “Submit”
formTextDiv = “:”[/code]

3. guestbook.tpl

[html]{config_load file=”inggris.conf”}





{#textTitle#}
{#textDesc#}
{#formTextName#}
{#formTextDiv#}


{#formTextEmail#}
{#formTextDiv#}


{#formTextComment#}
{#formTextDiv#}


{$content}

[/html]

4. style.css

[css]body {
background-color: #f4f4f4;
color: #000;
margin: 0px;
}

#main {
width:90%;
background-color:#ffffff;
float:left;
border-right:2px dashed #333333;
border-bottom:2px dashed #333333;
padding-bottom:40px;
}

#main #textTitle {
text-align: center;
margin-top:10px;
margin-bottom:10px;
font-weight:bolder;
font-size:1.5em;
}

#main #textDesc {
font-size:0.8em;
padding:5px;
margin-left:10%;
margin-right:10%;
margin-bottom:20px;
text-align:center;
border:2px solid #cccccc;
background-color:#e9e9e9;
-moz-border-radius:7px;
}

#main #formPost {
float:left;
margin-left:5%;
margin-right:5%;
padding:10px;
border:1px solid #999999;
width:250px;
background-color:#f9f9f9;
}

#main #formPost #tableRow {
border-bottom:1px solid #cccccc;
padding-bottom:5px;
margin-bottom:5px;
}

#main #formPost #tableCol1 {
float:left;
margin-left:10px;
width:60px;
}

#main #formPost #tableCol2 {
float:left;
margin-left:10px;
width:10px;
text-align:center;
}

#main #formPost #tableCol3 {
float:left;
margin-left:10px;
width:80px;
}

input,textarea {
background-color:#f3f3cc;
border:1px solid #333333;
}

#main #content {
float: left;
font-size: 0.9em;
}[/css]

Sekarang coba kita jalankan (http://localhost/guestbook/guestbook.php). Contoh hasilnya dapat dilihat di screenshot di bawah. Cobalah untuk mengganti “inggris.conf” dengan “indonesia.conf” pada baris pertama dari index.tpl dan lihat hasilnya. Secara otomatis buku tamu Anda akan berganti bahasa.

belajar lagi smarty bagian 2

Bagian II
Download Smarty
Di: http://smarty.php.net/
Selain paket Smarty, jangan lupa download file dokumentasinya, supaya lebih gampang buat belajar

Instalasi Smarty
Ekstrak ke dalam root direktori web server Anda atau ke dalam direktori yg ada pada setting include_path pada php.ini. Punyaku kutaruh di dalam direktori PHP (c:\php\smarty)
Jika tidak diletakkan dalam root direktori web server dan setting PHP belum diubah, buka file php.ini (dlm direktori windows (IIS) atau dlm direktori php (Apache), tergantung web servernya). Cari setting “include_path=”. Punyaku ada di bagian Path and Directories, dan scr default di-non-aktif-kan. Jika belum aktif, aktifkan dulu dng menghilangkan tanda ‘;’, selanjutnya tambahkan path tempat Anda menginstall Smarty. Punyaku adalah:
[php]include_path = “.;c:\php\includes;c:\php\pear;c:\php\smarty”[/php]

Simpan dan selesai

Testing Smarty
Sbg percobaan awal, kita akan mencoba contoh program pada bagian I. Sebelumnya, perlu diketahui bahwa untuk menggunakan Smarty, kita harus membuat 3 buah sub-direktori, yaitu: configs, templates, dan templates_c. Contoh, jika root direktori web server kita adalah c:\web dan kita membuat contoh Smarty ini pada subdir test, maka struktur direktorinya adalah:

[code]c:\
web\
test\
configs\
templates\
templates_c\[/code]

Direktori configs digunakan untuk menyimpan file2 konfigurasi, sedangkan direktori templates, spt namanya, digunakan untuk menyimpan file template. Direktori templates_c sendiri digunakan oleh Smarty untuk menyimpan file templates yg sudah dikompilasi (diparsing).

Kalo pk linux/unix, jgn lupa untuk set permission untuk direktori templates_c supaya writable (chmod 666 maybe).
Skr, copy source index.php di atas, simpan dan letakkan pada direktori test. Selanjutnya, copy source index.tpl di atas, simpan dan letakkan pada direktori templates. Buka browser dan akses file index.php (http://localhos/test/index.php). Jika lancar, akan muncul tulisan “Smarty says, …“.

Bagian selanjutnya akan membahas mengenai contoh implementasi Smarty yg lebih detil.

Ngulik smarty template engine bagian 1 neh

Bagian I
Pendahuluan
Smarty adalah pustaka untuk PHP yg digunakan sebagai template engine pada pembuatan aplikasi-aplikasi PHP. Dengan menggunakan Smarty, kita dapat memisahkan pembuatan design dan coding dengan mudah. Seperti yg disebutkan pada dokumentasi Smarty sbb:

One design goal of Smarty is the separation of business logic and presentation logic. This means templates can certainly contain logic under the condition that it is for presentation only. Things such as including other templates, altering table row colors, upper-casing a variable, looping over an array of data and displaying it, etc. are all examples of presentation logic. This does not mean that Smarty forces a separation of business and presentation logic. Smarty has no knowledge of which is which, so placing business logic in the template is your own doing. Also, if you desire no logic in your templates you certainly can do so by boiling the content down to text and variables only.

Lalu apa guna Smarty? Spt disebutkan di atas, tujuan Smarty adalah memisahkan business logic (coding part) dengan presentation logic (design part). Artinya, dalam suatu proyek aplikasi yg dikerjakan scr kelompok, bagian desainer dan programmer dapat bekerja secara bersamaan, krn bagian mereka masing2 sudah dipisahkan dengan penggunaan Smarty. Untuk yg biasa ber-solo-karir atau bekerja sendiri pun, dengan adanya bantuan Smarty akan memudahkan proses manajemen proyek aplikasi yg dibuat.

Salah satu keunggulan utama Smarty yg scr pribadi paling dirasakan adalah fitur file konfigurasi untuk template. Sebuah file konfigurasi dapat digunakan oleh lebih dari satu template. Hal ini berguna untuk meletakkan hal-hal yang bersifat generik. Selain itu, dng sedikit kreativitas, file konfigurasi dapat dimanfaatkan sbg sarana personalisasi situs. Sebagai contoh, untuk membuat situs dng 2 bahasa, Indonesia dan Inggris, kita cukup mempersiapkan 2 file konfigurasi, satu untuk bahasa Indonesia dan satunya lagi bahasa Inggris. Ini akan dijelaskan lebih lanjut pada contoh implementasi.

Untuk daftar fitur Smarty, berikut di antaranya spt dikutip dari dokumentasi Smarty:

Some of Smarty’s features:
- It is extremely fast.
- It is efficient since the PHP parser does the dirty work.
- No template parsing overhead, only compiles once.
- It is smart about recompiling only the template files that have changed.
- You can make custom functions and custom variable modifiers, so the template language is extremely extensible.
- Configurable template delimiter tag syntax, so you can use {}, {{}}, , etc.
- The if/elseif/else/endif constructs are passed to the PHP parser, so the {if …} expression syntax can be as simple or as complex as you like.
- Unlimited nesting of sections, ifs, etc. allowed.
- It is possible to embed PHP code right in your template files, although this may not be needed (nor recommended) since the engine is so customizable.
- Built-in caching support
- Arbitrary template sources
- Custom cache handling functions
- Plugin architecture

Cara kerja Smarty sendiri tidak jauh berbeda dgn engine2 template yg lain. Intinya adalah melakukan parsing ke dalam template yg telah ditentukan. Untuk parsing, kita menggunakan sebuah file PHP yg didalamnya berisi proses business logic dan proses parsing itu sendiri. Berikut ini contohnya:

[php]< ?php //nama file: index.php require 'libs/Smarty.class.php'; $smarty = new Smarty; $smarty->assign(”content”,”Smarty says, “Hello World”");
$smarty->display(’index.tpl’);
?>[/php]

Sedangkan untuk contoh file template sbb:

[html]


{$content}

[/html]

Jika index.php di atas dieksekusi, maka akan menghasilkan kode HTML sbb:

[html]


Smarty says, “Hello World”

[/html]

Cukup gampang kan? {$nama_variabel} sendiri hanyalah salah satu dari atribut yg didukung oleh Smarty. Ada {#nama_variabel#} untuk mengakses variabel dari file konfigurasi, atribut “|” untuk pemanggilan function, dan lain sebagainya. Smarty juga memberikan kemudahan dalam pembuatan form dan tabel. Misal fungsi html_select_date untuk membuat (komponen) form pemilihan tanggal scr otomatis, html_select_time untuk memilih jam/waktu, html_options untuk membuat pilihan option scr otomatis, dll.

belajar oop php euy

Orang bilang ga ada kata terlambat untuk belajar, dan pisau yang tumpul apabila diasah terus-menerus maka akan jadi tajam juga. Dengan bermodalkan dua hal itu saya membulatkan tekad untuk belajar OOP, belajar dari dasar... terseok-seok, karena otak sudah terlanjur akrab dengan pemrograman prosedural.

Berikut istilah-istilah yang biasa digunakan dalam OOP, sedikit saya rangkum sebagai langkah awal dalam memahami OOP.
Warning : pengertian berikut dirangkum dengan pemahaman saya yang masih sangat awam akan konsep OOP

Object :
Kumpulan Variabel dan Fungsi yang saling berkaitan
Class :
Adalah blueprint atau rancangan dari object. Jadi dari satu class bisa dibuat banyak object . Object adalah instance dari class.
Contoh : class = sepeda
Object = sepedaGunung, sepedaTandem
Polymorphism :
Berarti suatu benda seakan-akan mempunyai banyak bentuk. Dua objek atau lebih dikatakan polymorphic bila objek-objek itu mempunyai antar muka yang identik namun mempunyai perilaku yang berbeda. Muncul karena interaksi konsep inheritance dan dynamic binding.
Contoh : method sayHello() pada class dog, class cat atau class dog akan menghasilkan keluaran yang berbeda. dog = "guk..guk.." sedangkan cat = "miau..miau.."Jadi class yang berbeda dapat menjawab sebuah pesan yang sama, namun sesuai dengan kemampuan class tersebut.
Inheritance :
adalah pewarisan sifat, sebuah subclass akan mewarisi sifat dari superclass-nya. Subclass dapat melakukan override terhadap sifat dan kemampuan warisan superclass-nya.
enkapsulasi :
Memastikan pengguna sebuah object tidak dapat mengganti keadaan dalam diri sebuah object dengan cara yang tidak layak, hanya method dalam object tersebut yang dapat diberi ijin untuk mengakses keadaannya.

Lanjut ya.... Materi berikut ini merupakan hasil terjemahan dari artikel "An Introduction to OOP in PHP" . Artikel asli dapat langsung dilihat disini

Yang Keren Dari OOP

Mari mulai dari awal dan pelajari konsep dasar. Awalnya, seorang developer PHP menuliskan coding mereka dalam bahasa prosedural. Pada koding semacam ini, Satu hal terjadi setelah hal lainnya dan hal paling menarik yang dapat terjadi adalah penyertaan file lain. Function tersebar disana-sini, dan kumpulan library dari function tersebut dapat membantu memindahkan sesuatu dengan lebih cepat. Ada keterbatasan pada jenis pemrograman seperti ini. Koding dengan cara prosedural cenderung 'merepotkan' bila bekerja dengan 'large site'. Memindahkan sesuatu dengan bantuan include files dapat membantu, tapi bukan penyelesaian dari masalah.

OOP dapat membantu mengatasi semua kerepotan tersebut. Mari kita bicarakan tentang pengertian dari 'object' yang dimaksud dalam OOP. Object adalah kumpulan tipe variabel dalam PHP yang dapat melakukan banyak hal-hal menyenangkan Mereka (object) dapat dilewatkan from place to place sambil maintenace semua properti dan method yang mereka miliki di dalam diri mereka. Jika ini masih belum masuk akal buat anda, bertahan saja, saya akan membantu. Langkah pertama adalah mengetahui cara menciptakan sebuah objek milik anda sendiri!


Object Kesayangan Kita

Object hanyalah type variabel (seperti yang sudah dijelaskan diatas) dengan feature istimewa yang menyertainya. Untuk membuat sebuah object, anda membutuhkan sesuatu yang disebut class. Pikirkanlah class sebagai suatu framework dibelakang sebuah object yang mendefinisikan kegunaan serta variabel-variabel yang disimpan didalamnya. Berikut contohnya:

class myClass {
function myClass(){
}
}
?>

Pada contoh diatas, "myClass" merupakan nama dari class, dan kata 'class' adalah kata kunci yang akan dicari oleh PHP untuk mengetahui apa yang anda lakukan. Didalam pendefinisian class tersebut terdapat fungsi dengan nama "myClass". Saya tidak bermaksud membuat anda bingung, ada alasan mengapa fungsi tersebut diberi nama yang sama dengan class yang menampungnya. Fungsi tersebut merupakan fungsi khusus yang disebut constructor. Hal ini seperti membuat pondasi dan membangun dinding dari sebuah bangunan baru, fungsi 'myClass' dijalankan ketika objek pertama kali diciptakan.

Ah~! sekarang kita sampai pada bagian yang menyenangkan! Object Creation!

Jadi, sekarang kita telah mempunyai sebuah contoh class yang siap untuk digunakan. Tapi untuk dapat mengambil sesuatu didalamnya, kita perlu membuat sebuah object yang mewakilinya. Berikut contohnya :

$mine=new myClass();
?>

Variabel $mine adalah sebuah object yang baru diciptakan. Jika anda melakukan perintah print_r() pada object tersebut anda akan melihat keistimewaannya. Untuk memberitahu PHP bahwa kita ingin menjadikannya sebuah object, kita gunakan kata kunci 'new' diikuti nama class. Contoh diatas BELUM benar-benar melakukan sesuatu, tapi hal itu akan berubah setelah kita berkenalan dengan properties.

Meletakkan Properties
Seperti hal lainnya yang berkaitan dengan class, property sebenernya adalah sesuatu yang telah anda tahu sebelumnya. Property hanyalah sebuah variabel dalam penyamaran. Mengapa mereka berbeda? Didalam sebuah class anda dapat mempunyai variabel, tapi ada variabel yang berasal dari pemanggilan dari level yang lebih tinggi. Variabel ini dapat diakses dari dalam maupun dari luar kelas dan merupakan variabel global didalam sebuah object. Berikut contohnya:

class myClass {
var $my_var = 'testing';
function myClass(){
}
}
$mine=new myClass();
echo $mine->my_var;
?>

Pada contoh diatas, kita menggunakan struktur class seperti pada contoh sebelumnya, tapi kita tambahkan sesuatu yang sedikit berbeda. Variabel '$my_var' yang didefinisikan pada bagian atas menyimpan sebuah nilai yang dapat kita ambil kemudian. Setelah kita membuat sebuah object, ada sebuah operator baru yang diperkenalkan, yaitu '->'. Basically, ini memberitahukan PHP bahwa variabel yang anda referensikan adalah bagian dari object 'mine'. PHP secara otomatis akan menarik current value dari object tersebut dan menampilkannya. dan hal ini tidal hanya sebatas variabel saja, anda juga dapat menggunakan tanda panah ini (->) untuk memanggil method (fungsi didalam class), sebagai contoh :

class myClass {
function myClass(){
}
function echoMe(){
echo 'me';
}
}
$mine=new myClass();
$mine->echoMe();
?>
Apabila script tersebut dijalankan maka akan menghasilkan tulisan "me" pada halaman browser, sederhana bukan??

Langkah Selanjutnya
Sekarang kita akan mengaplikasikan pengetahuan yang sudah kita punya untuk membuat sesuatu yang berguna - misalnya saja sebuah contoh grafik sederhana. Pada contoh berikut kita akan membuat sebuah kotak pada halaman browser (dengan menggunakan tag DIV) dan dengan bantuan PHP serta CSS, akan dilakukan beberapa perubahan terhadapnya. Berikut contohnya:

class myHappyBox {
var $box_height = 100;
var $box_width = 100;
var $box_color = '#EC0000';
function myHappyBox(){
}
function setHeight($value){
$this->box_height=$value;
}
function setWidth($value){
$this->box_width=$value;
}
function setColor($value){
$this->box_color=$value;
}
function displayBox(){
echo sprintf('

',$this->box_height,$this->box_width,$this->box_color);
}
}
$box=new myHappyBox();
$box->displayBox();
?>

Ada beberapa hal baru yang harus diperhatikan disini. Kita sudah tahu bahwa kita akan membuat sebuah gambar kotak dengan menggunakan class ini, dan kita tahu bahwa kotak mempunyai poperty tertentu - yaitu panjang, lebar dan warna. Pada contoh class diatas dapat dilihat ketiga property tersebut mempunyai default value (nilai yang telah ditentukan). Dengan menyimpan default value, anda dapat langsung memanggil displayBox() dan akan menghasilkan kotak berukuran 100x100 pixel berwarna merah tanpa perlu lagi mengeset panjang, lebar dan warna kotak tersebut. Tapi bagaimana jika kita ingin mengubah salah satu nilai dari property tersebut? Untuk itulah dibuat fungsi-fungsi lainnya selain displayBox().

Ada tiga buah fungsi didalam class myHappyBox. Yaitu fungsi untuk menentukan panjang, mamentukan lebar dan menentukan warna, dan ketiga fungsi tersebut bekerja dengan dasar yang sama. Masing-masing dari mereka mengambil nilai dan mengeset property global pada nilai tersebut. jadi, apabila kita ingin mengubah ukuran dari kotak tersebut, hal yang harus dilakukan adalah sebagai berikut:

$box=new myHappyBox();
$box->setHeight(30);
$box->setWidth(300);
$box->displayBox();
?>

Koding diatas akan merubah kotak default dan akan ditampilkan kotak baru dengan lebar yang jauh lebih besar dari pada panjangnya. Perubahan serupa dapat juga dilakukan dengan method setColor() yang akan merubah warna dari kotak, dengan isian nilai pada method setColor() adalah berupa HTML color (Hex).

BUNGKUS !!!!
Jadi, inilah dasar OOP - bukan sesuatu yang menakutkan ataupun perlu dihindari. Malahan OOP bisa jadi suatu hal TERBAIK yang dapat terjadi antara anda dan coding yang anda tulis. Tentu saja menulis ulang aplikasi yang sedang anda buat dengan gaya OOP bisa menjadi sesuatu yang merepotkan, tapi akan selalu ada proyek selanjutnya yang dapat dipertimbangkan. Dan ingat, Ada banyak hal lain yang harus dipelajari selain object, class, method, maupun property seperti yang telah dijelaskan diatas. Anda dapat langsung mengacu ke website PHP.net dan lihat langsung 'their great resources' pada topik OOP. Disitu akan terdapat jawaban atas pertanyaan-pertanyaan yang mungkin sekarang muncul dalam benak anda setelah anda menyelesaikan tutorial ini.










my photos


persib kalah di copa indonesia

Bandung - Persijap Jepara maju ke babak 16 besar Copa Indonesia, setelah menyingkirkan tuan rumah Persib Bandung lewat pertandingan dramatis yang diakhiri adu penalti.

Dengan hasil tanpa gol di leg pertama pekan lalu, Persib awalnya lebih diunggulkan. Namun tim asuhan Yudi Suryata membalikkan prediksi. Persijap memaksa bermain 0-0 hingga akhir pertandingan dan babak tambahan, serta menang 4-3 dalam drama adu penalti.

Menjamu Persijap di stadion Siliwangi, Selasa (19/6/2007), Persib tampil lebih mendominasi. Namun serangan yang dibangun, gagal menghasilkan gol karena kurang tenangnya lini depan. Selain itu kiper Persijap Fance Haryanto juga bermain cukup gemilang mengamankan gawangnya.

Di babak kedua Persib masih tetap lebih banyak menguasai permainan. Dicky Firasat yang menjadi andalan Maung Bandung, dua kali melepaskan tendangan keras ke gawang lawan. Namun usaha pertamanya di menit ke-50 masih bisa ditahan Fance, sementara yang kedua pada menit ke-60 melebar di sisi kiri gawang.

Persijap bukannya tanpa peluang. Sesekali serangan balik yang dilakukan bisa mendekati kotak penalti Persib. Namun kesempatan tersebut terbuang karena hanya mengandalkan tendangan jarak jauh.

Tidak ada gol yang tercipta hingga menjelang sepuluh menit terakhir, membuat pertandingan meningkat lebih keras. Namun wasit bertindak cukup tegas terhadap tiap pelanggaran hingga tidak berkembang lebih buruk.

Kedudukan tanpa gol bertahan hingga akhir waktu normal, dan pertandingan harus dilanjutkan dengan perpanjangan waktu.

Dua menit memasuki babak pertama waktu tambahan, Persib mendapat peluang. Tendangan bebas Lorenzo Cabanas ke depan kotak penalti, disambar Patricio Jimenez. Namun bola yang mengalir deras berhasil diblok kiper Fance. Bola mental yang disambut Bayu Suta pun kembali gagal di tangan sang kiper.

Setelah melewati 15 menit, tetap tidak ada gol tercipta. Namun demikian kedua tim tetap menerapkan permainan terbuka. Di menit ke-110, Persib kembali mendapat peluang. Cabanas bebas menguasai bola di kotak penalti, dan melepaskan tendangan kaki kiri. Namun kesempatan tersebut kembali digagalkan Fance.

Kedudukan 0-0 bertahan hingga babak kedua perpanjangan waktu berakhir. Pertandingan pun harus diselesaikan lewat adu penalti.

Persib yang mendapat giliran menendang lebih dulu, melakukan awal yang buruk. Tendangan Cabanas ke kanan gawang berhasil ditepis Fance.

Setelah kegagalan Fance ini, tiga penendang berikutnya dari kubu Persib yakni, Sonny Kurniawan, Redouane Barkouwi, Patricio Jiminez berhasil mencetak gol. Sementara Persijap mencetak empat gol lewat Evaldo Silva, Donny Siregar, Kasiyadi, Amarildo.

Akhir pertandingan pun ditentukan oleh penendang kelima Persib Suwita Patha. Tendangannya melambung di atas mistar Fance. Dengan demikian, Persijap sudah dipastikan unggul 4-3 tanpa harus melakukan tendangan kelima.

Di babak 16 besar, Persijab akan bertemu pemenang antara Pelita Jaya Purwakarta vs PSS Sleman yang baru bertanding hari Kamis, (21/6/2007)