komunikasi variabel swf dan html

beberapa hari lalu, saya membutuhkan aplikasi audio player yang kecil dan ringan. setelah googling, saya menggunakan audio player embed untuk memutar file audio disebuah website berbeda server.

yang menarik dari adalah, aplikasi pemutar audio berasal dari website yang berbeda, sementara file audio nya adalah milik saya yang berada pada server lokal.

karena audio player ini ada pada sebuah server internet (website) yang berbeda, maka untuk meload audio player ini saya harus terkoneksi dengan internet.

setelah diselidiki ternyata file swf ini hanya bermain variabel. variabel yang digunakan ini tergantung dari file html nya mengembednya.

Flash ini menggunakan metode nilai FlashVars yang dideklarasikan pada html yang mengembednya

hm.. susah menjelaskannya baik nya praktek langsung

  1. buka flash (actionscript 2)
  2. buat 2 buah text dinamis, berikan instance name masing-masing dtxt dan dtxt2
  3. flashnya
  4. berikan ActionScript berikut:
  5. as
  6. save, dan berinama FlashVars
  7. tekan tombol publish dan pilih output nya: html dan swf (atau tekan tombol shift+F12)
  8. buka saja file html nya,  maka akan muncul tampilan
  9. undefined
  10. buka file html hasil  output dengan menggunakan editor text
  11. tambahkan script berikut pada tag <embed
  12. buka lagi file html dengan menggunakan browser
  13. hasil

tampak bahwa swf dapat membaca variabel dari html

apasih manafaat nya ?

hal ini sangat bermanfaat jika kita membuat plikasi flash embed menjadi seperti kode ini

code_great

menarik =D

Advertisements

PHP Cheat: Fungsi dan Kelas

influence Explorasi Basic Fungsi + Class PHP

// mendefinisikan fungsi

function getLuasLingkaran($r){
return pi() * $r * $r;
}
echo “luas lingkaran berjari2 10: ” . getLuasLingkaran(10);
//luas lingkaran berjari2 10: 314.15926535898

// menghindari duplikasi fungsi

function asalAja(){
return “exits here”;
}
echo function_exists(“asalAja”)? “Exist” : “Not”; // Exist
echo “<br>” . (function_exists(“tidakAja”)?”ada” : “tidak”); // tidak

// mengakses variabel external dari fungsi
$name = “G3n1k”;
function yes(){
global $name;
return $name;
}
echo yes(); // G3n1k

function yup(){
return $GLOBALS[‘name’];
}
echo yup(); // G3n1k

function yep(){
global $name;
echo “Nama awal: ” . $name . “<br/>”;
$name = ” Curly”;
echo “Nama akhir : ” . $name . “<br/>”;
}
echo “Sebelum fungsi: ” . $name . “<br/>”;
yep();
echo “Sesudah fungsi ” . $name . “<br/>”;
// Sebelum fungsi: G3n1k
// Nama awal: G3n1k
// Nama akhir : Curly
// Sesudah fungsi Curly

// nilai default untuk fungsi
function luas0($r, $pi=3.14″){
return $pi * $r * $r;
}
echo luas0(10). ” fungsi tanpa masukan pi<br>”;
echo luas0(10, pi()) . ” fungsi dengan PI”;
// 314 fungsi tanpa masukan pi
// 314.15926535898fungsi dengan PI

// memproses panjang-variabel daftar Argument
function someFunc() {
$numArgs = func_num_args(); // get argument passed
$args = func_get_args(); // dapatkan argument
print “you sent me the following arguments: “;
for($x = 0; $x<sizeof($args); $x++){
print “<br> Aguments $x :” ;
if(is_array($args[$x])) {
print ” ARRAY “;
foreach ($args[$x] as $index=>$element) {
print ” $index => $element “;
}
} else {
print ” $args[$x] “;
}
}
}
someFunc(“red”, “Green”, array(12,34), “kamper”);
// you sent me the following arguments:
// Aguments 0 : red
// Aguments 1 : Green
// Aguments 2 : ARRAY 0 => 12 1 => 34
// Aguments 3 : kamper

// nums list function
function sum(){
$sum = 0;
$args = func_get_args();
for($x=0; $x<sizeof($args); $x++){
if(is_array($args[$x])){
foreach($args[$x] as $a){
$sum += $a;
}
} else {
$sum += $args[$x];
}
}
return $sum;
}
echo “1 + 10 = ” . sum(1, 10); // 1 + 10 = 11
echo “<br>1 + 2  + 4 + 5 = ” . sum(1,2, array(4,5));
// 1 + 2 + 4 + 5 = 12

// menerima berbagiai nilai dari fungsi
function getUser(){
return array(“Suhemi”, “Lampung”, “Sintetic@ispiracy.net”);
}
list ($nama, $lokasi, $email) = getUser();
echo “nama $nama, asal $lokasi. email $email”;

// manipulasi fungsi input dan output dengan reference
function ganti(&$var){
$var = “HAhaha”; return $var;
}
$rab = “HIhihi”;
echo “Before : ” . $rab; // Hihihi
echo “<br>Ganti : “. ganti($rab); //HAhaha
echo “<br>After : ” . $rab;// HAhaha

// fungsi menganti variabel
function &incNum(){
global $num;
$num++;
return $num;
}
$num = 0;
$retVal =& incNum();
echo  “retVal = $retVal <br>”; //retVal : 1
incNum();
echo “Number is : $retVal”; // Number is : 2

// memanggil fungsi dengan menggunakan penggabungan nama
function testCoba($num){
echo “nilai $num”;
}
$op = “test”;
$funct = $op . “Coba”;
$funct(13); // nilai 13

// deklarasi fungsi didalam fungsi
function func1(){
function func2(){
echo “dari fungsi 2”;
}
echo “fungsi 1”;
}
func1();// harus di panggil dahulu
func2();// baru bisa mengakses function ini
//fungsi 1dari fungsi 2

// membuat fungsi reqursif
function calFactorial($num){
static $product = 1;
if($num > 1){
$product = $product * $num;
$num–;
calFactorial($num);
}
return $product;
}

echo calFactorial(5); // 120

// reqursif untuk membaca direktory
function recDir($dir){
if(!is_dir($dir)) { die(“Bukan direktory”); }
$dh = opendir($dir) or die (“Cannot open dir”);
// iterasi
while (($file = readdir($dh)) !== false) {
if($file != “.” && $file != “..”) {
if(is_dir(“$dir/$file”)){
recDir(“$dir/$file”);
} else {
echo “$dir/$file <br>”;
}
}
}
}
// buat folder pada folder yang sama dengan code
recDir(‘feel’);
//feel/lalala/keahlian.docx
//feel/cv.doc

// mendefinisikan kelas
class Generic {
public $cpu;
public $mem;

public function setMem($val){
$this->mem = $val;
echo “Setting memory ke $val MB”;
}

public function setCpu($val){
$this->cpu = $val;
echo “Setting CPU ke \”$val\”…”;
}

public function getConf() {
echo “Konfigurasi sekarang: $this->cpu CPU , $this->mem MB RAM”;
}
}
$thepc = new Generic;
$thepc->setCpu(“Intel Atom”);
$thepc->setMem(1024);
$thepc->getConf();
//Setting CPU ke “Intel Atom”…Setting memory ke 1024 MBKonfigurasi sekarang: Intel Atom CPU , 1024 MB RAM

// eksekusi otomatis, perintah konstruktor dan desktruktor kelas
class testClass{
function __construct(){//php5
echo “Jalankan konstruktor”;
}
function  __destruct() {
echo “Destruktor  dijalankan”;
}
}
$test = new testClass(); //create
unset($test);// destroy
// Jalankan konstruktorDestruktor dijalankan

// more konstruktor destruktor
class fileLock {
private $file;
public function __construct($file){ //constructor
$this->file = $file;
$this->lock();
}
public function lock() {
clearstatcache(); // clear file cache
//cek, exist ? jika tidak ulangi beberapa detik lagi
echo  “Mencoba mengunci file …<br>”;
if(!file_exists($this->file . ” .lock”)){
touch ($this->file . “.lock”, time()) or
die(“Error : tidak bisa melakukan locking file”);
echo “File locked !”;
} else {
echo “file locking exist,mencoba lagi dalam 2 detik .. <br>”;
sleep(2);
$this->lock();
}
}
public function write($data){
echo “mencoba menulis file”;
if(!$fp = fopen($this->file, “a+”)) {
echo “Error:tidak dapat membuka file”;
return false;
}
if (!fwrite($fp, $data)) {
echo “Error:tidak dapat menulis ke file”;
return false;
}
if(!fclose($fp)) {
echo “Error: cannot closefile!”;
}
echo “Data ditulis ke file !<br>”;
}
public function __destruct() {
$this->unlock();
}
public function unlock(){//metode for unlock
echo “Unlocking file …<br>”;
unlink($this->file . “.lock”) or
die(“Error:tidak bisa menmbuang lock file”);
echo “File unlocked”;
}
}
$f1 = new fileLock(“feel/obj.txt”);
$f1->write(“test penulisan”);
unset($f1);
// coba sendiri di file

// pewarisan
class Generic {
public $cpu;
public $mem;

public function __construct(){
echo “inisialisasi sistem …<br>”;
}
public function setMem($val){
$this->mem = $val;
echo “Setting memory ke $val MB … <br>”;
}
public function setCpu($val){
$this->cpu = $val;
echo “Setting CPU ke \”$val\”…<br>”;
}
public function getConf() {
echo “Konfigurasi sekarang: $this->cpu CPU , $this->mem MB RAM<br>”;
}
}
class Server extends Generic { // new
protected $disk;
function __construct(){
parent::__construct();// jalankan konstructor parent
}
function setDisk($val){// set disk drive spek
$this->disk = $val;
echo “Setting disk storage ke $val GB<br>”;
}
function addMem($val){ // tambah memory
$this->mem += $val;
echo “menambahkan $val MB memory<br>”;
}
public function getConfig(){
echo “Konfigurasi: CPU ” . $this->cpu .
” , $this->mem MB RAM, ” . $this->disk .
” GB disk storage<br>”;
}
}
$webServer = new Server; // create obj
$webServer->setMem(2048);
$webServer->setCpu(“Intel Double Quartet CORE”);
$webServer->setDisk(1024);
// fungsi pada kelas turunan
$webServer->addMem(2048);
// daptkan data
$webServer->getConfig();

// melakukan pengecekan jika fungsi dan kelas
// telah didefiniskan
class aClass{
public function __construct(){
return false;
}
}
echo class_exists(“aClass”)?”Ada” : “tidak”;//ada
echo class_exists(“bClass”)?”Ada” : “tidak”;//tidak

// mengecek keberadaan fungsi didalam kelas
class Dog{
function bark(){
echo “guk.. guk..”;
}
}
echo is_callable(array(“Dog”, “bark”))? “method exists”:”not”;
//method exists

// mengecek keberadaan fungsi dalam kelas (2)
class Cat{
function canBark(){
return method_exists($this, “bark”);
}
}
$tom = new Cat;
echo $tom->canBark() ? “Kucing bisa menggongong”:”tidak bisa”;
// tidak bisa -> perhatikan algoritmanya, berguna untuk kelas turunan

// menerima informasi dari kelas member
class Dog{
public $name;
public $age;

public function __construct(){
echo “construct Dog class<br>”;
}
public function wagTail(){
echo “Happy dog<br>”;
}
}
//extends class
class Bloodhounds extends Dog {
public $color;
public function sniff(){
echo “this dog can smell food a mile away<br>”;
}
public function __destruct(){
echo “destroying a Dog<br>”;
}
}
// create instance
$myDog = new Bloodhounds();
$myDog->name = “Jim”;
$myDog->age = “3”;
$myDog->color = “White”;
// retrieve class name form instance
echo “Class: ” . get_class($myDog) . “<br>”;
// retreive parent class name dari instance
echo “Parent class: ” . get_parent_class(get_class($myDog)) . “<br>”;
//get and print list dari properties class
$vars = get_class_vars(get_class($myDog));
echo “Class Properties: “;
foreach ($vars as $key=>$value){
if(!isset($value)){ $value = “<undef>”;}
echo “$key=$value “;
}
echo “<br>”;
// get and print list of object methods
$methods = get_class_methods(get_class($myDog));
echo “Class method: “;
foreach($methods as $m){
echo “$m “;
}
echo “<br>”;
// dapatkan dan tampilkan list dari instance properties
$vars = get_object_vars($myDog);
echo “Instance properties: “;
foreach($vars as $keys=>$value){
if(!isset($value)) { $value=”<undef>”;}
echo “$key = $value “;
}
echo “<br>”;
/*
construct Dog class
Class: Bloodhounds
Parent class: Dog
Class Properties: color= name= age=
Class method: sniff __destruct __construct wagTail
Instance properties: age = White age = Jim age = 3
destroying a Dog
*/

// menampilkan data pada class
class Dog{
public $breed;
public $name;
public $age;
public function __construct(){
echo “construct the dog..<br>”;
}
}
$newDog = new Dog;
$newDog->breed = “Serigala”;
$newDog->name = “Whitefang”;
$newDog->age = 2;
foreach($newDog as $key=>$value){
echo “$key: $value<br>”;
}
/*construct the dog..
breed: Serigala
name: Whitefang
age: 2*/

// meload class dan fungsi yang dibutuhkan secara otomatis
function __autoload($class){
require “defs/”.$class.”.php”;
}
$obj = new FormHandler();

// mencari persamaan dari objek
class Session {
public $id;
function __construct($id){
$this->id = $id;
}
}
$ca = new Session(100);
$cb = new Session(200);
$cc = new Session(100);
$cd =& $ca;
echo ($ca==$cb)? “true” : “false”; // false
echo ($ca==$cc)? “true” : “false”; // true
echo ($ca===$cd)? “true” : “false”; // true

// menduplikasi kelas
class Dog{
public $name;
public $age;
public function getinfo(){
echo “Nama: $this->name | Umur: $this->age<br>”;
}
}
$d1 = new Dog;
$d1->name = “dodol”;
$d1->age = “3”;
$d1->getinfo();//Nama: dodol | Umur: 3
$d2 = clone $d1;
$d2->name = “wow”;
$d2->getinfo();//Nama: wow | Umur: 3

// membuat properties kelas yang tidak merestrat inisialisasi
class Instance {
static $insCounter = 0;
public function __construct(){
echo “Create new instance …<br>”;
self::$insCounter++;
}
public function getInstanceCounter(){
return self::$insCounter;
}
}
$a = new Instance;
$b = new Instance;
echo “func inscounter “.$a->getInstanceCounter(); //2
echo “var inscounter “.$a->insCounter; // (nothing?)

// memfilter akses kelas turunan

class testCls{
public $publicVar;
private $privateVar;
protected $protectedVar;

public function publicMethod(){return;}
private function privateMethod(){return;}
protected function protectedMethod(return;}
}
$d = new testCls;
$d->publicVar = 5; // work
$d->privateVar = false // error
$d->protectedVar = “dudu”; //error
$d->publicMethod();//work
$d->privateMethod();//error
$d->protectedMethod();//error

// agar kelas tidak dapat diturunkan
final class Generic{
public function __construct(){
echo “inisializing..”;
}
}
class Server extends Generic{ // fatal error
public function __construct(){
parent::__construct();
}
}

// mendefiniskan kelas abstract
abstract class addMachine{
abstract public function add();
abstract public function sub();
}
class Kalkulator extends addMachine{
public function __construct($a, $b){
$this->a = $a;
$this->b = $b;
}
}

// overload metode class-> agar memiliki jumlah inputan yg beragam
class KoordinatXY{
public $data;
public function __construct($x, $y){
$this->data = array($x, $y);
}
}
class Render{
public function __call($method, $args){//method overloaded
if($method == “render”){
$numArgs = count($args);
if($numArgs == 1){
echo “Render titik..<br>”;
}
else if($numArgs == 2){
echo “Render garils..<br>”;
}
else if($numArgs >= 3){
echo “Render polygon ..<br>”;
} else
die(“Error: data input salah !!!”);

} else {
die (“Errror: $method tidak dikenal”);
}
}
}

$r = new Render();
// 1 argument
$r->render(new KoordinatXY(1,2)); // render titik
// 2 argument
$r->render(new KoordinatXY(1,2), new KoordinatXY(20, 6));
// 4 argument
$r->render(new KoordinatXY(1,2), new KoordinatXY(20,6), new KoordinatXY(4,4), new KoordinatXY(18,4));

// overload ke dua
class overloadReverse{
public static function __call($method, $args){
if($method == “reverse”) {
//check number of argument
if(sizeof($args) == 1){
$arg = $args[0];
if(is_string($arg)){
return strrev($arg);
} else if(is_numeric($arg)){
return 1/$arg;
} else if(is_array($arg)){
return array_reverse($arg);
} else if(is_bool($arg)){
return ($arg==FALSE)?false:true;
} else if(is_null($arg)){
return null;
}
} else {
die(“ERROR: Input yang tidak benar”);
}
} else {
die(“ERROR: Metode $method tidak dikenal”);
}
}
}

$o = new overloadReverse();
echo $o->reverse(“telur”).”<br>”;
echo $o->reverse().”<br>”;
echo $o->reverse(2).”<br>”;
echo $o->reverse(‘k’, ‘o’, ‘l’, ‘o’, ‘r’).”<br>”;

// membuat “catch-all” class methods
// __call() berguna untuk menangkap semua fungsi yang tidak ada
class virtualMethodClass{
function __call($method, $args){
echo “U called method [$method] with arguments[“.implode(“, “, $args).”]<br>”;
}
}
$obj =  new virtualMethodClass;
$obj->jump(“10”, “inchi”);

<?php
// mendefinisikan fungsi
function getLuasLingkaran($r){
return pi() * $r * $r;
}
echo “luas lingkaran berjari2 10: ” . getLuasLingkaran(10);
//luas lingkaran berjari2 10: 314.15926535898

// menghindari duplikasi fungsi
function asalAja(){
return “exits here”;
}
echo function_exists(“asalAja”)? “Exist” : “Not”; // Exist
echo “<br>” . (function_exists(“tidakAja”)?”ada” : “tidak”); // tidak

// mengakses variabel external dari fungsi
$name = “G3n1k”;
function yes(){
global $name;
return $name;
}
echo yes(); // G3n1k

function yup(){
return $GLOBALS[‘name’];
}
echo yup(); // G3n1k

function yep(){
global $name;
echo “Nama awal: ” . $name . “<br/>”;
$name = ” Curly”;
echo “Nama akhir : ” . $name . “<br/>”;
}
echo “Sebelum fungsi: ” . $name . “<br/>”;
yep();
echo “Sesudah fungsi ” . $name . “<br/>”;
// Sebelum fungsi: G3n1k
// Nama awal: G3n1k
// Nama akhir : Curly
// Sesudah fungsi Curly

// nilai default untuk fungsi
function luas0($r, $pi=3.14″){
return $pi * $r * $r;
}
echo luas0(10). ” fungsi tanpa masukan pi<br>”;
echo luas0(10, pi()) . ” fungsi dengan PI”;
// 314 fungsi tanpa masukan pi
// 314.15926535898fungsi dengan PI

// memproses panjang-variabel daftar Argument
function someFunc() {
$numArgs = func_num_args(); // get argument passed
$args = func_get_args(); // dapatkan argument
print “you sent me the following arguments: “;
for($x = 0; $x<sizeof($args); $x++){
print “<br> Aguments $x :” ;
if(is_array($args[$x])) {
print ” ARRAY “;
foreach ($args[$x] as $index=>$element) {
print ” $index => $element “;
}
} else {
print ” $args[$x] “;
}
}
}
someFunc(“red”, “Green”, array(12,34), “kamper”);
// you sent me the following arguments:
// Aguments 0 : red
// Aguments 1 : Green
// Aguments 2 : ARRAY 0 => 12 1 => 34
// Aguments 3 : kamper

// nums list function
function sum(){
$sum = 0;
$args = func_get_args();
for($x=0; $x<sizeof($args); $x++){
if(is_array($args[$x])){
foreach($args[$x] as $a){
$sum += $a;
}
} else {
$sum += $args[$x];
}
}
return $sum;
}
echo “1 + 10 = ” . sum(1, 10); // 1 + 10 = 11
echo “<br>1 + 2  + 4 + 5 = ” . sum(1,2, array(4,5));
// 1 + 2 + 4 + 5 = 12

// menerima berbagiai nilai dari fungsi
function getUser(){
return array(“Suhemi”, “Lampung”, “Sintetic@ispiracy.net”);
}
list ($nama, $lokasi, $email) = getUser();
echo “nama $nama, asal $lokasi. email $email”;

// manipulasi fungsi input dan output dengan reference
function ganti(&$var){
$var = “HAhaha”; return $var;
}
$rab = “HIhihi”;
echo “Before : ” . $rab; // Hihihi
echo “<br>Ganti : “. ganti($rab); //HAhaha
echo “<br>After : ” . $rab;// HAhaha

// fungsi menganti variabel
function &incNum(){
global $num;
$num++;
return $num;
}
$num = 0;
$retVal =& incNum();
echo  “retVal = $retVal <br>”; //retVal : 1
incNum();
echo “Number is : $retVal”; // Number is : 2

// memanggil fungsi dengan menggunakan penggabungan nama
function testCoba($num){
echo “nilai $num”;
}
$op = “test”;
$funct = $op . “Coba”;
$funct(13); // nilai 13

// deklarasi fungsi didalam fungsi
function func1(){
function func2(){
echo “dari fungsi 2”;
}
echo “fungsi 1”;
}
func1();// harus di panggil dahulu
func2();// baru bisa mengakses function ini
//fungsi 1dari fungsi 2

// membuat fungsi reqursif
function calFactorial($num){
static $product = 1;
if($num > 1){
$product = $product * $num;
$num–;
calFactorial($num);
}
return $product;
}

echo calFactorial(5); // 120

// reqursif untuk membaca direktory
function recDir($dir){
if(!is_dir($dir)) { die(“Bukan direktory”); }
$dh = opendir($dir) or die (“Cannot open dir”);
// iterasi
while (($file = readdir($dh)) !== false) {
if($file != “.” && $file != “..”) {
if(is_dir(“$dir/$file”)){
recDir(“$dir/$file”);
} else {
echo “$dir/$file <br>”;
}
}
}
}
// buat folder pada folder yang sama dengan code
recDir(‘feel’);
//feel/lalala/keahlian.docx
//feel/cv.doc

// mendefinisikan kelas
class Generic {
public $cpu;
public $mem;

public function setMem($val){
$this->mem = $val;
echo “Setting memory ke $val MB”;
}

public function setCpu($val){
$this->cpu = $val;
echo “Setting CPU ke \”$val\”…”;
}

public function getConf() {
echo “Konfigurasi sekarang: $this->cpu CPU , $this->mem MB RAM”;
}
}
$thepc = new Generic;
$thepc->setCpu(“Intel Atom”);
$thepc->setMem(1024);
$thepc->getConf();
//Setting CPU ke “Intel Atom”…Setting memory ke 1024 MBKonfigurasi sekarang: Intel Atom CPU , 1024 MB RAM

// eksekusi otomatis, perintah konstruktor dan desktruktor kelas
class testClass{
function __construct(){//php5
echo “Jalankan konstruktor”;
}
function  __destruct() {
echo “Destruktor  dijalankan”;
}
}
$test = new testClass(); //create
unset($test);// destroy
// Jalankan konstruktorDestruktor dijalankan

// more konstruktor destruktor
class fileLock {
private $file;
public function __construct($file){ //constructor
$this->file = $file;
$this->lock();
}
public function lock() {
clearstatcache(); // clear file cache
//cek, exist ? jika tidak ulangi beberapa detik lagi
echo  “Mencoba mengunci file …<br>”;
if(!file_exists($this->file . ” .lock”)){
touch ($this->file . “.lock”, time()) or
die(“Error : tidak bisa melakukan locking file”);
echo “File locked !”;
} else {
echo “file locking exist,mencoba lagi dalam 2 detik .. <br>”;
sleep(2);
$this->lock();
}
}
public function write($data){
echo “mencoba menulis file”;
if(!$fp = fopen($this->file, “a+”)) {
echo “Error:tidak dapat membuka file”;
return false;
}
if (!fwrite($fp, $data)) {
echo “Error:tidak dapat menulis ke file”;
return false;
}
if(!fclose($fp)) {
echo “Error: cannot closefile!”;
}
echo “Data ditulis ke file !<br>”;
}
public function __destruct() {
$this->unlock();
}
public function unlock(){//metode for unlock
echo “Unlocking file …<br>”;
unlink($this->file . “.lock”) or
die(“Error:tidak bisa menmbuang lock file”);
echo “File unlocked”;
}
}
$f1 = new fileLock(“feel/obj.txt”);
$f1->write(“test penulisan”);
unset($f1);
// coba sendiri di file

// pewarisan
class Generic {
public $cpu;
public $mem;

public function __construct(){
echo “inisialisasi sistem …<br>”;
}
public function setMem($val){
$this->mem = $val;
echo “Setting memory ke $val MB … <br>”;
}
public function setCpu($val){
$this->cpu = $val;
echo “Setting CPU ke \”$val\”…<br>”;
}
public function getConf() {
echo “Konfigurasi sekarang: $this->cpu CPU , $this->mem MB RAM<br>”;
}
}
class Server extends Generic { // new
protected $disk;
function __construct(){
parent::__construct();// jalankan konstructor parent
}
function setDisk($val){// set disk drive spek
$this->disk = $val;
echo “Setting disk storage ke $val GB<br>”;
}
function addMem($val){ // tambah memory
$this->mem += $val;
echo “menambahkan $val MB memory<br>”;
}
public function getConfig(){
echo “Konfigurasi: CPU ” . $this->cpu .
” , $this->mem MB RAM, ” . $this->disk .
” GB disk storage<br>”;
}
}
$webServer = new Server; // create obj
$webServer->setMem(2048);
$webServer->setCpu(“Intel Double Quartet CORE”);
$webServer->setDisk(1024);
// fungsi pada kelas turunan
$webServer->addMem(2048);
// daptkan data
$webServer->getConfig();

// melakukan pengecekan jika fungsi dan kelas
// telah didegfiniskan
class aClass{
public function __construct(){
return false;
}
}
echo class_exists(“aClass”)?”Ada” : “tidak”;//ada
echo class_exists(“bClass”)?”Ada” : “tidak”;//tidak

// mengecek keberadaan fungsi didalam kelas
class Dog{
function bark(){
echo “guk.. guk..”;
}
}
echo is_callable(array(“Dog”, “bark”))? “method exists”:”not”;
//method exists

// mengecek keberadaan fungsi dalam kelas (2)
class Cat{
function canBark(){
return method_exists($this, “bark”);
}
}
$tom = new Cat;
echo $tom->canBark() ? “Kucing bisa menggongong”:”tidak bisa”;
// tidak bisa -> perhatikan algoritmanya, berguna untuk kelas turunan

// menerima informasi dari kelas member
class Dog{
public $name;
public $age;

public function __construct(){
echo “construct Dog class<br>”;
}
public function wagTail(){
echo “Happy dog<br>”;
}
}
//extends class
class Bloodhounds extends Dog {
public $color;
public function sniff(){
echo “this dog can smell food a mile away<br>”;
}
public function __destruct(){
echo “destroying a Dog<br>”;
}
}
// create instance
$myDog = new Bloodhounds();
$myDog->name = “Jim”;
$myDog->age = “3”;
$myDog->color = “White”;
// retrieve class name form instance
echo “Class: ” . get_class($myDog) . “<br>”;
// retreive parent class name dari instance
echo “Parent class: ” . get_parent_class(get_class($myDog)) . “<br>”;
//get and print list dari properties class
$vars = get_class_vars(get_class($myDog));
echo “Class Properties: “;
foreach ($vars as $key=>$value){
if(!isset($value)){ $value = “<undef>”;}
echo “$key=$value “;
}
echo “<br>”;
// get and print list of object methods
$methods = get_class_methods(get_class($myDog));
echo “Class method: “;
foreach($methods as $m){
echo “$m “;
}
echo “<br>”;
// dapatkan dan tampilkan list dari instance properties
$vars = get_object_vars($myDog);
echo “Instance properties: “;
foreach($vars as $keys=>$value){
if(!isset($value)) { $value=”<undef>”;}
echo “$key = $value “;
}
echo “<br>”;
/*
construct Dog class
Class: Bloodhounds
Parent class: Dog
Class Properties: color= name= age=
Class method: sniff __destruct __construct wagTail
Instance properties: age = White age = Jim age = 3
destroying a Dog
*/

// menampilkan data pada class
class Dog{
public $breed;
public $name;
public $age;
public function __construct(){
echo “construct the dog..<br>”;
}
}
$newDog = new Dog;
$newDog->breed = “Serigala”;
$newDog->name = “Whitefang”;
$newDog->age = 2;
foreach($newDog as $key=>$value){
echo “$key: $value<br>”;
}
/*construct the dog..
breed: Serigala
name: Whitefang
age: 2*/

// meload class dan fungsi yang dibutuhkan secara otomatis
function __autoload($class){
require “defs/”.$class.”.php”;
}
$obj = new FormHandler();

// mencari persamaan dari objek
class Session {
public $id;
function __construct($id){
$this->id = $id;
}
}
$ca = new Session(100);
$cb = new Session(200);
$cc = new Session(100);
$cd =& $ca;
echo ($ca==$cb)? “true” : “false”; // false
echo ($ca==$cc)? “true” : “false”; // true
echo ($ca===$cd)? “true” : “false”; // true

// menduplikasi kelas
class Dog{
public $name;
public $age;
public function getinfo(){
echo “Nama: $this->name | Umur: $this->age<br>”;
}
}
$d1 = new Dog;
$d1->name = “dodol”;
$d1->age = “3”;
$d1->getinfo();//Nama: dodol | Umur: 3
$d2 = clone $d1;
$d2->name = “wow”;
$d2->getinfo();//Nama: wow | Umur: 3

// mempbuat properties kelas yang tidak merestrat inisialisasi
class Instance {
static $insCounter = 0;
public function __construct(){
echo “Create new instance …<br>”;
self::$insCounter++;
}
public function getInstanceCounter(){
return self::$insCounter;
}
}
$a = new Instance;
$b = new Instance;
echo “func inscounter “.$a->getInstanceCounter(); //2
echo “var inscounter “.$a->insCounter; // (nothing?)

// memfilter akses kelas turunan
class testCls{
public $publicVar;
private $privateVar;
protected $protectedVar;

public function publicMethod(){return;}
private function privateMethod(){return;}
protected function protectedMethod(return;}
}
$d = new testCls;
$d->publicVar = 5; // work
$d->privateVar = false // error
$d->protectedVar = “dudu”; //error
$d->publicMethod();//work
$d->privateMethod();//error
$d->protectedMethod();//error

// agar kelas tidak dapat diturunkan
final class Generic{
public function __construct(){
echo “inisializing..”;
}
}
class Server extends Generic{ // fatal error
public function __construct(){
parent::__construct();
}
}

// mendefiniskan kelas abstract
abstract class addMachine{
abstract public function add();
abstract public function sub();
}
class Kalkulator extends addMachine{
public function __construct($a, $b){
$this->a = $a;
$this->b = $b;
}
}

// overload metode class-> agar memiliki jumlah inputan yg beragam
class KoordinatXY{
public $data;
public function __construct($x, $y){
$this->data = array($x, $y);
}
}
class Render{
public function __call($method, $args){//method overloaded
if($method == “render”){
$numArgs = count($args);
if($numArgs == 1){
echo “Render titik..<br>”;
}
else if($numArgs == 2){
echo “Render garils..<br>”;
}
else if($numArgs >= 3){
echo “Render polygon ..<br>”;
} else
die(“Error: data input salah !!!”);

} else {
die (“Errror: $method tidak dikenal”);
}
}
}

$r = new Render();
// 1 argument
$r->render(new KoordinatXY(1,2)); // render titik
// 2 argument
$r->render(new KoordinatXY(1,2), new KoordinatXY(20, 6));
// 4 argument
$r->render(new KoordinatXY(1,2), new KoordinatXY(20,6), new KoordinatXY(4,4), new KoordinatXY(18,4));

// overload ke dua
class overloadReverse{
public static function __call($method, $args){
if($method == “reverse”) {
//check number of argument
if(sizeof($args) == 1){
$arg = $args[0];
if(is_string($arg)){
return strrev($arg);
} else if(is_numeric($arg)){
return 1/$arg;
} else if(is_array($arg)){
return array_reverse($arg);
} else if(is_bool($arg)){
return ($arg==FALSE)?false:true;
} else if(is_null($arg)){
return null;
}
} else {
die(“ERROR: Input yang tidak benar”);
}
} else {
die(“ERROR: Metode $method tidak dikenal”);
}
}
}

$o = new overloadReverse();
echo $o->reverse(“telur”).”<br>”;
echo $o->reverse().”<br>”;
echo $o->reverse(2).”<br>”;
echo $o->reverse(‘k’, ‘o’, ‘l’, ‘o’, ‘r’).”<br>”;

// membuat “catch-all” class methods
// __call() berguna untuk menangkap semua fungsi yang tidak ada
class virtualMethodClass{
function __call($method, $args){
echo “U called method [$method] with arguments[“.implode(“, “, $args).”]<br>”;
}
}
$obj =  new virtualMethodClass;
$obj->jump(“10”, “inchi”);
?>

PHP Cheat: Array

// Array Exploring

// menampilkan nilai array
$data = array(“ID” => array(“nama” => “Indonesia”, “uang”=>”RP”),
“MY” => array(“nama” => “Malaysia”, “uang” => “Ringgit, gw ga tau lambangnya”));
print_r($data);
var_dump($data);

// memproses nilai array
$index = array(“Jakarta”, “Kopaja”, “Angkot”, “Maceeeet”);
foreach($index as $i){
echo “$i | “;
}
// Jakarta | Kopaja | Angkot | Maceeeet |

//untuk array dalam array
$assocArr = array(“Jakarta”=>”Barat”, “Tanggerang”=>”Serpong”);
foreach($assocArr as $key=>$value){
echo “$key: $value<br>”;
}//Jakarta: Barat
//Tanggerang: Serpong

// Nested Array Processing
function arrTranverse($arr) {
if(!is_array($arr)) {// cek inputan array
die(“Input bukan Array”);
}
foreach ($arr as $value) {// iterasi di array
if(is_array($value)) {// jika nested array
arrTranverse($value);
} else {
echo strtoupper($value).”<br>”;
}
}
}
$nesArr = array(“Jakarta Barat”,
array(“Tanggerang”, array(“BSD”, “Serpong”)));
arrTranverse($nesArr);

// hitung jumlah array
$arr = array(“satu”, “2”, “3”, “last”);
echo count($arr); // 4

// Convert string ke Array
$str = “aa 1 cc 2 ddd”;
print_r(explode(” “, $str));
// Array ( [0] => aa [1] => 1 [2] => cc [3] => 2 [4] => ddd )

// Convert Array ke String
$arr = array(“aku”, “dia”, “kamu”);
echo implode(” dan “, $arr);
//aku dan dia dan kamu

// menukar array dengan sarang
$arr = array(“a”=>”1”, “b”=>”2”);
print_r(array_flip($arr));
// Array ( [1] => a [2] => b )

// + – element array
$arr = array(“cumi”, “hiu”);
array_push($arr, “teri”);
print_r($arr);//Array ( [0] => cumi [1] => hiu [2] => teri )
array_shift($arr);
print_r($arr); // Array ( [0] => hiu [1] => teri )
array_unshift($arr, “badut”);
print_r($arr); // Array ( [0] => badut [1] => hiu [2] => teri )
array_pop($arr);
print_r($arr); // Array ( [0] => badut [1] => hiu )

// +- array di tengah
$arr = array(“1″,”2″,”3″,”4”);
array_splice($arr, 1,2);
print_r($arr); // Array ( [0] => 1 [1] => 4 )
array_splice($arr, 4, 0, array(“lima”, “6”));
print_r($arr); // Array ( [0] => 1 [1] => 4 [2] => lima [3] => 6 )

// membagi array ke segmen-segmen
$arr = array(“1”, “2”, “3”, “4”, “5”);
$slc = array_slice($arr, 2,4);
print_r($slc); // Array ( [0] => 3 [1] => 4 [2] => 5 )

// menghilangkan nilai double pada array
$arr = array(“1″,”1″,”a”,”a”,”b”);
echo join(“, “, array_unique($arr)); //1, a, b

// menghilangkan gap pada nilai array yg dibuang
$arr = array(0=>”1″, 1=>”2″, 2=>”3″);
unset($arr[1]);
print_r($arr); // Array ( [0] => 1 [2] => 3 )
$nwr = array_values($arr);
]}print_r($nwr); //Array ( [0] => 1 [1] => 3 )

// Nilai acak array
$num = range(1,5);
shuffle($num);
echo join(“, “, $num); // 2, 1, 4, 3, 5 (ex)

//Nilai acak dari beberapa
$num = range(1,12);
$rnd = array_rand($num, 5);
echo join(“, “, $rnd); // 11, 0, 5, 7, 3 (ex)

// membalik nilai array
$arr = array(“1”, “2”, “3”);
print_r(array_reverse($arr)); // Array ( [0] => 3 [1] => 2 [2] => 1 )

// mencari nilai array
$data = array(
“JKT” => “Jakarta”,
“TNG” => “Tanggerang”,
“DPK” => “Depok”);
echo array_key_exists(“JKT”, $data) ? ” Exists” : ” Not”;
echo in_array(“Jakarta”, $data) ? ” Value” : ” Not”;
// Exist Value

// fungsi mencari nilai array
function arrSearch($src, $arr) {
if(!is_array($arr)){die(“bukan Array”);}
foreach($arr as $key=>$value){
if(preg_match(“/$src/i”, $value) || preg_match(“/$src/i”, $key)){
return true; break;
}
}
}
echo arrSearch(“DPK”,$data)? “ada”:”tidak”; // ada
echo arrSearch(“xyz”,$data)? “ada”:”tidak”; // tidak

//Memfilter Array
function positip($val){
return($val>=0) ? true:false;
}
$arr = array(1, -1, 2, -10, 0, -2);
print_r(array_filter($arr, ‘positip’));
//Array ( [0] => 1 [2] => 2 [4] => 0 )

// sorting array
$arr = array(“a”, “d”, “c”, “f”);
sort($arr);
print_r($arr);
//Array ( [0] => a [1] => c [2] => d [3] => f )

// sort pada array bersarang /index
$arr = array(“w”=>”r”,”b”=>”x”, “a”=>”z”);
asort($arr);
print_r($arr);//Array ( [w] => r [b] => x [a] => z )
ksort($arr);
print_r($arr);//Array ( [a] => z [b] => x [w] => r )

// sorting array multidimensi
$data = array();
$data[0] = array(“title”=>”Net Force”, “author”=>”Clan, Tom”, “rating”=>4);
$data[1] = array(“title”=>”DOS”, “author”=>”Zero, Log”, “rating”=>5);
$data[2] = array(“title”=>”PHP”, “author”=>”Indra, iam”, “rating”=>3);
$data[3] = array(“title”=>”WWW”, “author”=>”WWW”, “rating”=>1);
$data[4] = array(“title”=>”Blowfish”, “author”=>”G3n1k”, “rating”=>2);
//memisahkan elemen dalam key yg sama ke masing2 array
foreach ($data as $key=>$value) {
$author[$key] = $value[‘author’];
$title[$key] = $value[‘title’];
$rating[$key] = $value[‘rating’];
}
array_multisort($rating, $author, $title);
print_r($data);
//Array ( [0] => Array ( [title] => WWW [author] => WWW [rating] => 1 ) [1] => Array ( [title] => Blowfish [author] => G3n1k [rating] => 2 ) [2] => Array ( [title] => PHP [author] => Indra, iam [rating] => 3 ) [3] => Array ( [title] => Net Force [author] => Clan, Tom [rating] => 4 ) [4] => Array ( [title] => DOS [author] => Zero, Log [rating] => 5 ) )

// Array Exploring

// menampilkan nilai array
$data = array(“ID” => array(“nama” => “Indonesia”, “uang”=>”RP”),
“MY” => array(“nama” => “Malaysia”, “uang” => “Ringgit, gw ga tau lambangnya”));
print_r($data);
var_dump($data);

// memproses nilai array
$index = array(“Jakarta”, “Kopaja”, “Angkot”, “Maceeeet”);
foreach($index as $i){
echo “$i | “;
}
// Jakarta | Kopaja | Angkot | Maceeeet |

//untuk array dalam array
$assocArr = array(“Jakarta”=>”Barat”, “Tanggerang”=>”Serpong”);
foreach($assocArr as $key=>$value){
echo “$key: $value<br>”;
}//Jakarta: Barat
//Tanggerang: Serpong

// Nested Array Processing
function arrTranverse($arr) {
if(!is_array($arr)) {// cek inputan array
die(“Input bukan Array”);
}
foreach ($arr as $value) {// iterasi di array
if(is_array($value)) {// jika nested array
arrTranverse($value);
} else {
echo strtoupper($value).”<br>”;
}
}
}
$nesArr = array(“Jakarta Barat”,
array(“Tanggerang”, array(“BSD”, “Serpong”)));
arrTranverse($nesArr);

// hitung jumlah array
$arr = array(“satu”, “2”, “3”, “last”);
echo count($arr); // 4

// Convert string ke Array
$str = “aa 1 cc 2 ddd”;
print_r(explode(” “, $str));
// Array ( [0] => aa [1] => 1 [2] => cc [3] => 2 [4] => ddd )

// Convert Array ke String
$arr = array(“aku”, “dia”, “kamu”);
echo implode(” dan “, $arr);
//aku dan dia dan kamu

// menukar array dengan sarang
$arr = array(“a”=>”1”, “b”=>”2”);
print_r(array_flip($arr));
// Array ( [1] => a [2] => b )

// + – element array
$arr = array(“cumi”, “hiu”);
array_push($arr, “teri”);
print_r($arr);//Array ( [0] => cumi [1] => hiu [2] => teri )
array_shift($arr);
print_r($arr); // Array ( [0] => hiu [1] => teri )
array_unshift($arr, “badut”);
print_r($arr); // Array ( [0] => badut [1] => hiu [2] => teri )
array_pop($arr);
print_r($arr); // Array ( [0] => badut [1] => hiu )

// +- array di tengah
$arr = array(“1″,”2″,”3″,”4”);
array_splice($arr, 1,2);
print_r($arr); // Array ( [0] => 1 [1] => 4 )
array_splice($arr, 4, 0, array(“lima”, “6”));
print_r($arr); // Array ( [0] => 1 [1] => 4 [2] => lima [3] => 6 )

// membagi array ke segmen-segmen
$arr = array(“1”, “2”, “3”, “4”, “5”);
$slc = array_slice($arr, 2,4);
print_r($slc); // Array ( [0] => 3 [1] => 4 [2] => 5 )

// menghilangkan nilai double pada array
$arr = array(“1″,”1″,”a”,”a”,”b”);
echo join(“, “, array_unique($arr)); //1, a, b

// menghilangkan gap pada nilai array yg dibuang
$arr = array(0=>”1″, 1=>”2″, 2=>”3”);
unset($arr[1]);
print_r($arr); // Array ( [0] => 1 [2] => 3 )
$nwr = array_values($arr);
]}print_r($nwr); //Array ( [0] => 1 [1] => 3 )

// Nilai acak array
$num = range(1,5);
shuffle($num);
echo join(“, “, $num); // 2, 1, 4, 3, 5 (ex)

//Nilai acak dari beberapa
$num = range(1,12);
$rnd = array_rand($num, 5);
echo join(“, “, $rnd); // 11, 0, 5, 7, 3 (ex)

// membalik nilai array
$arr = array(“1”, “2”, “3”);
print_r(array_reverse($arr)); // Array ( [0] => 3 [1] => 2 [2] => 1 )

// mencari nilai array
$data = array(
“JKT” => “Jakarta”,
“TNG” => “Tanggerang”,
“DPK” => “Depok”);
echo array_key_exists(“JKT”, $data) ? ” Exists” : ” Not”;
echo in_array(“Jakarta”, $data) ? ” Value” : ” Not”;
// Exist Value

// fungsi mencari nilai array
function arrSearch($src, $arr) {
if(!is_array($arr)){die(“bukan Array”);}
foreach($arr as $key=>$value){
if(preg_match(“/$src/i”, $value) || preg_match(“/$src/i”, $key)){
return true; break;
}
}
}

echo arrSearch(“DPK”,$data)? “ada”:”tidak”; // ada
echo arrSearch(“xyz”,$data)? “ada”:”tidak”; // tidak

//Memfilter Array
function positip($val){
return($val>=0) ? true:false;
}
$arr = array(1, -1, 2, -10, 0, -2);
print_r(array_filter($arr, ‘positip’));
//Array ( [0] => 1 [2] => 2 [4] => 0 )

// sorting array
$arr = array(“a”, “d”, “c”, “f”);
sort($arr);
print_r($arr);
//Array ( [0] => a [1] => c [2] => d [3] => f )

// sort pada array bersarang /index
$arr = array(“w”=>”r”,”b”=>”x”, “a”=>”z”);
asort($arr);
print_r($arr);//Array ( [w] => r [b] => x [a] => z )
ksort($arr);
print_r($arr);//Array ( [a] => z [b] => x [w] => r )

// sorting array multidimensi
$data = array();
$data[0] = array(“title”=>”Net Force”, “author”=>”Clan, Tom”, “rating”=>4);
$data[1] = array(“title”=>”DOS”, “author”=>”Zero, Log”, “rating”=>5);
$data[2] = array(“title”=>”PHP”, “author”=>”Indra, iam”, “rating”=>3);
$data[3] = array(“title”=>”WWW”, “author”=>”WWW”, “rating”=>1);
$data[4] = array(“title”=>”Blowfish”, “author”=>”G3n1k”, “rating”=>2);
//memisahkan elemen dalam key yg sama ke masing2 array
foreach ($data as $key=>$value) {
$author[$key] = $value[‘author’];
$title[$key] = $value[‘title’];
$rating[$key] = $value[‘rating’];
}
array_multisort($rating, $author, $title);
print_r($data);
//Array ( [0] => Array ( [title] => WWW [author] => WWW [rating] => 1 ) [1] => Array ( [title] => Blowfish [author] => G3n1k [rating] => 2 ) [2] => Array ( [title] => PHP [author] => Indra, iam [rating] => 3 ) [3] => Array ( [title] => Net Force [author] => Clan, Tom [rating] => 4 ) [4] => Array ( [title] => DOS [author] => Zero, Log [rating] => 5 ) )

PHP Cheat: date / tanggalan waktu

masih penasaran dengan basic bahasa PHP, sekarang explorasi waktu dan tanggal

// jam dan tanggal saat ini
$now = getdate();
$currentTime = $now[“hours”] . “:” . $now[“minutes”] . “:” . $now[“seconds”];
$currentDate = $now[“mday”] . “.” .$now[“mon”] . “.” . $now[“year”];
echo “now $currentTime on $currentDate”;
// now 12:30:20 on 13.9.2009
print_r($now);
// Array ( [seconds] => 46 [minutes] => 38 [hours] => 12 [mday] => 13 [wday] => 0 [mon] => 9 [year] => 2009 [yday] => 255 [weekday] => Sunday [month] => September [0] => 1252816726 )

// Formating Timestamps -> ubah timestamp UNIX ke string human-readable
echo date(“d M Y”, mktime()) . “<br>”; // tanggal
// 13 Sep 2009
echo date(“h:i:s A”, mktime()) . “<br>”; // jam
// 01:08:52 PM
echo date(“l, d F Y, h:i:s A”, mktime()) . “<br>”; // waktu dengan Timezone
// Sunday, 13 September 2009, 01:09:16 PM
echo date(“h:i:s A T”, mktime()) . “<br>”; // data dan waktu format ISO8601
// 01:09:56 PM KRAST

// mengecek valid nya tanggal

echo checkdate(31, 4, 2006) ? “Valid” : “Not”;
// Not // mm, dd, yyyy
echo checkdate(2, 29, 2006) ? “Valid” : “Not”;
// Not // mm, dd, yyyy
echo checkdate(9, 13, 2009) ? “Valid” : “Not”;
// Valid // mm, dd, yyyy

// String ke Timestamp
$ts = strtotime(“20030607”);
echo ($ts === -1) ? “Invalid String” : date(“l, d F Y h:i:s A”, $ts);
// Saturday, 07 June 2003 12:00:00 AM

// fungsi dalam waktu dalam perintah english
// asumsi hari adalah “Sunday, 13 September 2009, 01:39:58 PM”
$ts = strtotime(“next Sunday”);
echo ($ts === false) ? “Invalid” : date(“l, d F Y h:i:s A”, $ts);
// Sunday, 20 September 2009 12:00:00 AM
$ts = strtotime(“2 weeks 4 hours ago”);
echo ($ts === false) ? “Invalid” : date(“l, d F Y h:i:s A”, $ts);
// Sunday, 30 August 2009 09:39:58 AM
$ts = strtotime(“next 2 days”);
echo ($ts === false) ? “Invalid” : date(“l, d F Y h:i:s A”, $ts);
// Invalid
$ts = strtotime(“next days”); // bagaimana cara 2 hari kemudian
echo ($ts === false) ? “Invalid” : date(“l, d F Y h:i:s A”, $ts);
// Monday, 14 September 2009 01:44:49 PM

// tahun kabisat -> bisa di bagi 4 atau 400, tapi tidak 100
function kabisat($thn) {
return (($thn%400 == 0) || ($thn%4 == 0 && $thn%100 != 0)) ? 1 : 0;
}
echo “1000 ? ” . (kabisat(1000)? “kabisat”:”biasa”) . “<br>”; // biasa
echo “2000 ? ” . kabisat(2000) . “<br>”; // 1
echo “2004 ? ” . (kabisat(2004)? “kabisat”:”biasa”) . “<br>”; // kabisat
echo “2009 ? ” . kabisat(2009) . “<br>”; // 0

// tahun kabisat (simple)
function kabisat2($thn){
return checkdate(2, 29, $thn);
}
echo “2004 ? ” . (kabisat2(2004)? “kabisat”:”biasa”);
// 2004 ? kabisat

// jumlah hari dalam bulan (3 February 2004)
echo date(“t”, mktime(0, 0, 0, 2, 3, 2004)); // 29

// menentukan hari ke berapa dalam tahun (3 February 2009)
echo date(“z”, mktime(0, 0, 0, 2, 3, 2009))+1; // 34

// menentukan minggu keberapa dalam tahun (3 February 2009)
echo date(“W”, mktime(0, 0, 0, 2, 3, 2009)); // 06

// menemukan jumlah hari dan tahun pada waktu tertentu
$jh = date(“z”, mktime(0, 0, 0, 12, 31, 2009));
$jm = date(“W”, mktime(0, 0, 0, 12, 31, 2009));
echo “terdapat $jh dan $jm, pada tahun 2009”;
// terdapat 365 dan 53, pada tahun 2009

// menemukan nama hari pada hari dan bulan tertentu
$tr = mktime(0, 0, 0, 9, 13, 2009);
$d = date(“l”, $tr);
echo “13 09 2009 is ” .$d; // sunday

// convert waktu local ke Greenwich Mean Time (GMT)
echo gmdate(“H:i:s d-M-y T”);
// 06:42:43 13-Sep-09 GMT
echo gmdate(“H:i:s d-M-y T”, mktime(4, 30, 0, 2, 2, 2005));
// 21:30:00 01-Feb-05 GMT

// pengubahan antara Zona waktu yang berbeda
function getLocalTime($ts, $offset) {
return ($ts – date(“Z”, $ts)) + (3600 * $offset);
}
echo date(“H:i:s d-m-y”, getLocalTime(mktime(), 7)) . ” EST<br>”;
// 13:54:32 13-09-09 EST //jakarta
echo date(“H:i:s d-m-y”, getLocalTime(mktime(), 8)) . ” EST<br>”;
// 14:54:32 13-09-09 EST //singapura

// mengubah jumlah menit ke jam
$mm = 156;
echo sprintf(“%02dh %02dm”, floor($mm/60), $mm%60);//02h 36m

// waktu jam:menit ke jumlah menit
$hhmm = “02:36”;
$arr = explode(“:”, $hhmm);
echo $arr[0]*60 + $arr[1] . ” menit”; // 156 menit

PHP Cheat: number

influence seri kedua, eplorasi basic number di PHP

// number

// generate number range
$x=10; $y=17;
$range = range($x, $y);
$kelipatan = range($x, $y, 3);
print_r($range); // Array ( [0] => 10 [1] => … [7]=> 17 )
print_r($kelipatan); // Array ( [0] => 10 [1] => 13 [2] => 16 )

// membulatkan(rounding) nilai floating (desimal)

$num = (2/3);
//rounding biasa
echo round($num); // 1
// penempatan 1 desimal
echo round($num, 1); // 0.7
// penempatan 3 desimal
echo round($num, 3); // 0.667

// pembulatan atas (ceil), bawah (floor)
$num = (1/3);
echo ceil($num); // 1
echo floor($num); // 0

// Maximal dan minimal
$ary = array(76, 12, 3, 0, 1.5, -0.333);
sort($ary);
echo “Minimum: ” . $ary[0]; // 76
echo “Maximum: ” . $ary[sizeof($ary)-1]; // -0.333

// mencari nilai ganjil-genap
$num = 31;
echo (1&$num) ? “ganjil” : “genap”; // ganjil // cara bitwise
echo ($num % 2) “ganjil” : “genap”; // ganjil // cara modus

// memformat angka dengan koma
$num = 123456789.12345;
echo number_format($num); // 123,456,789
echo number_format($num, 2); // 123,456,789.12
echo number_format($num, 2, ‘, ‘, ‘\”); // 123’456’789,12

// format angka dengan nol didepannya
printf(“%02.2f”, 1234.12345); // 1234.12

// convert antar base (binary,octal, hexadecimal, atau custom)
$num = 100;
echo “Binary : ” . decbin($num); // Binary : 1100100
echo “Octal : ” . decoct($num); // Octal : 144
echo “Hexadecimal : ” . dechex($num); // Hexadecimal : 64
echo “Base6 : ” . base_convert($num, 10, 6); // Base6 : 244
echo “Base5 : ” . base_convert($num, 10, 5); // Base6 : 400

// convert RGB ke nilai hexa
function rgb2hex($r, $g, $b) {
return “#” . dechex($r) . dechex($g) . dechex($b);
}
echo rgb2hex(0, 255, 64); //#00ff40

// convert radian ke degre dan sebaliknya
$deg = 90;
echo deg2rad($deg); //  1.5707963267949
$rad = 1.5707963267949;
echo rad2deg($rad); // 90

// menghitung factorial
$num = 5; $fac = 1;
for ($x=$num; $x>=1; $x–)
$fac *= $x;
echo $fac; // 120

// menghitung logaritma
echo log(6); // 1.7917594692281
echo log10(6); // 0.77815125038364

// trigonometri
$num = 45;
echo sin($num); // 0.85090352453412
echo cos($num); // 0.52532198881773
ech0 tan($num); // 1.6197751905439
echo asin($num); //arcsin: NAN
echo acos($num); //arccos: NAN
echo atan($num); //arctan: 1.5485777614682
echo sinh($num); //  hyperbolic sin : 1.7467135528743E+19
echo cosh($num); //  hyperbolic sin : 1.7467135528743E+19
echo tanh($num); //  hyperbolic sin : 1

// nilai random yang sulit ditebak
echo md5(uniqid(rand(), true)); //5c491b82811fa4f1478319a2f0022bbb

// list nilai prime
function prime($end) {
$sieve =  range(2, $end);
$size = sizeof($sieve);
reset($sieve);
// iterate pada array
while(list($key, $val) =  each($sieve)) {
for($x=$key+1; $x<$size; $x++)
if($sieve[$x] % $val == 0)
unset($sieve[$x]);
}
return $sieve;
}
echo implode(” “, prime(21)); // 2 3 5 7 11 13 17 19

// prime dengan iterasi for
function prime($num) {
for($x=($num-1); $x>1; $x–)
if(($num % $x) == 0)
return false;
return true;
}
echo prime(9) ? “Prime” : “Not”;

PHP Cheat: string

Beberapa waktu ini lagi influence dengan PHP,  beberapa hasil coretan iseng

cheat : String:
$txt = “and ALL the King’s”;

// memperbesar semua huruf
strtoupper($txt);
// AND ALL THE KING’S

// memperkecil semua hurup
strtolower($txt);
// and all the king’s

// Hurup besar pertama
ucfirst($txt);
// And ALL the King’s

// hurup besar untuk semua awal kata
ucwords($txt);
// And ALL The King’s

// mengecek string kosong
$str = ”    “;
echo (!isset($str) || trim($str) == “”) ? “EMPTY” : “NOT”;
// EMPTY

// membuang beberapa karakter
$str = “123456789abcdef”
substr($str, 6);
// 789abcdef // membuang 6 karakter awal
substr($str, 0, -6);
//123456789 // membuang 6 karakter akhir

// membuang double whitespace
$str = ”    this em  b e dd    “;
echo ereg_replace(‘[[:space:]]+’, ‘ ‘, trim($str));
// this em b e dd
* trim untuk membuang whitespace dari akhiran string, lalu gunakan
ereg_replace() untuk menemukan double whitespace dan menempatkan
dengan satu white space

 

// membuang double whitespace

jika terjadi error, maka gunakan script berikutnya

$str = 'foo   o';
$str = preg_replace('/\s\s+/', ' ', $str);
// This will be 'foo o' now
echo $str

// membalik kata
$str = “reverse”;
echo strrev($str);
// esrever

// mengulang string
$str = “la “;
echo str_repeat($str, 3);
// la la la

// truncated, awalan untuk ‘read more’
function truncated_str($str, $max_chr=6, $add=’…’) {
if(strlen($str) > $max_chr) // cek panjang string
return trim(substr($str, 0, $max_chr)) . $add;
else
return $str;
}
$str = “123 123 4567890 abcde”;
echo truncated_str($str);
// 123 12…
echo truncated_str($str, 9);
// 123 123 4…
echo truncated_str($str, 9, ” read more”);
// 123 123 4 read more

// character menjadi nilai ASCII
$chr = “\r”;
echo ord($chr);
// 13

// ASCII jadi character
$asc = 65;
echo chr($asc);
// A

// memisahkan string menjadi beberapa bagian (chunk)
$str = “memberikan yg terbaik pada segala sesuatu, sebenarnya memberikan yg terbaik pada diri sendiri”;
$chunkArray = str_split($str, 11)
print_r($chunkArray);
//Array ( [0] => memberikan [1] => yg terbaik [2] => pada segala [3] => sesuatu, s [4] => ebenarnya m [5] => emberikan y [6] => g terbaik p [7] => ada diri se [8] => ndiri )

// membandingkan kata yang seperti nya sama
echo (metaphone(“rest”) == metaphone(“Reset”)) ? “sama” : “tidak”;
// sama
echo (metaphone(“kamu”) == metaphone(“aku”)) ? “sama” : “tidak”;
// tidak

// parsing koma sebagai pemisah list
$str = “apel, semangka, jambu ,durian”;
print_r(explode(“, “, $str));
// Array ( [0] => apel [1] => semangka [2] => jambu ,durian )

// parsing URL
$url = “http://www.facebook.com/profile.php?id=1138295099&ref=profile&#8221;;
$data = parse_url($url); // parsing url
foreach($data as $k => $v)
echo “$k: $v <br>”;
// scheme: http host: http://www.facebook.com path: /profile.php query: id=1138295099&ref=profile

// menghitung banyaknya kata dalam kalimat
$kalimat = “The preg_split() function is probably one of PHP’s most underappreciated functions.”;
$kata = preg_split(‘/[^0-9A-Za-z\’]+/’, $kalimat, -1, PREG_SPLIT_NO_EMPTY);
echo count($kata) . ” kata”;
// 13 kata ->kata diatas hanya 11, tetapi char ‘ dan _ di anggap sebagai pemisah, sehingga menjadi 13
echo str_word_count($kalimat) . ” kata”; // 12 kata

// mencari duplikat kata
$str = “ha ha its so funny hi hi”;
$str = trim($str);// trim whitespace pada akhir string
$str = ereg_replace(‘[[:space:]]+’, ‘ ‘,$str);
// kompresi whitespace ditengah kata
$words = explode(‘ ‘, $str); // mengarraykan dengan whitespace
foreach($words as $w) // iterasi pada array // hitung duplikat setiap kata // simpan hasil pada array yg lain
$wordStats[strtolower($w)]++;
foreach ($wordStats as $k => $v) // cetak semua duplikasi kata
if($v >= 2) echo “$k “;
// ha hi

// mencari string pada kalimat
$str = “silahkan <b>berkunjung</b> pada <a href=’g3n1kwordpress.com’>page pribadi saya</a>”;
echo ereg(“<b>(.*)<\/b>”, $str) ? “cocok” : “tidak”;
// cocok
echo preg_match(“/<b>(.*?)<\/b>/i”, $str) ? “cocok” : “tidak”;
// cocok

// mencari berapa banyak hasil pencarian kata
$str = “silahkan <b>berkunjung</b> pada <a

href=’g3n1kwordpress.com’><b>page pribadi saya</b></a>”;
preg_match_all(“/<b>(.*?)<\/b>/i”, $str, $matches);
echo sizeof($matches[0]) . ” occur(s)”;

// mencari jumlah string yg duplikat
$str = “ha hi hu hi ha ha ha hi”;
echo substr_count($str, “ha”); // 4

// menempatkan kata pada kalimat
$str = “batu menimpa mobil penduduk”;
echo str_replace(“mobil”, “rumah”, $str);
// batu menimpa rumah penduduk

// menempatkan kata pada kalimat // lebih rumit
$str = “batu <b>menimpa</b> mobil <b>penduduk</b>”;
echo preg_replace(“/<b>(.*?)<\/b>/i”, “<i>\\1</i>”, $str);
// batu menimpa rumah penduduk

// menempatkan kata pada kalimat dan membatasi pengubahanya
$str = “batu <b>menimpa</b> mobil <b>penduduk</b>”;
echo preg_replace(“/<b>(.*?)<\/b>/i”, “<i>\\1</i>”, $str, 1);
// batu menimpa rumah penduduk

// mengextract substring
$str = “batu <a href=’somelink’>menimpa</a> mobil <a f”>penduduk</a> desa”;
$matches = preg_split(“/<a(.*?)>(.*?)<\/a>/i”, $str);
echo $matches[0]. ”   “; //
echo $matches[sizeof($matches)-1]; // batu desa

// memecah paragraph menjadi beberapa bagian, mengambil nya
$str = “contoh paragraph! ya seperti ini. mengerti ?”;
echo strok($str, “.?!”); // contoh paragraph // bagian pertama
echo strrev(strtok(strrev(trim($str)), “.?!”));
// mengerti // terakhir

// membangkitkan ceksum string
$str = “just string”;
echo md5($str);
// 497b4d5639884d3a277ec47116f219ee
echo sha1($str);
// 77767476768aaeb390a852e14dacf5aa3537d390

// Enkrypsi string (one-way enkripsi)
$pass = “guestmeplease”;
$scram = “scramble”;
echo crypt($pass, $scram);
// scJMwWB79dEkE

CSS Tabbed menu navigation

menu tabbed navigation

hasil akhir nya seperti ini

akhir

untuk itu butuh dua buah source:

tabbed sebelah kiri tableft8

tabbed sebelah kanantabright8

save-as saja gambar-gambar source diatas

buat sebuah file html baru dan masukan kode html berikut

  1. <html>
  2. <head><title>Tabbed Navigation</title>
  3. <link href=“tabbed8.css” rel=“stylesheet” type=“text/css”>
  4. <body>
  5. <div id=“tabs8”>
  6. <ul>
  7. <li><a href=“1.php”><span>1</span></a></li>
  8. <li><a href=“2.php”><span>second</span></a></li>
  9. <li><a href=“3.php”><span>third ketiga</span></a></li>
  10. <li><a href=“long.php”><span>looooooong text</span></a></li>
  11. <li><a href=“5.php”><span>Ipsum</span></a></li>
  12. </ul>
  13. </div>
  14. </body>
  15. </html>

buat sebuah file css baru beri nama tabbed8.css dan masukan kode-kode berikut:

body {
margin:0;
padding:0;
font: bold 11px/1.5em Verdana;
}

#tabs8
{
float:left;
background:#fcf1cc;
width:100%;
font-size:93%;
line-height:normal;
border-bottom:1px solid #E276A7;
}

#tabs8 ul {
margin:0px; /* membuang jarak */
padding:10px 10px 0 50px; /* posisi list */
list-style:none; /* membuang dooted list*/

}

#tabs8
li {
display:inline; /* membuat list menjadi horizontal */
margin:0px;
padding:0px;
}

#tabs8
a {
float:left;
background:url(tableft8.gif) no-repeat left top; /*gambar tabbed kiri */

margin:0;
padding:0 0 0 4px;
text-decoration:none; /* membuang underline */
}

#tabs8
a span {
float:left;
display:block;
background:url(“tabright8.gif”) no-repeat right top;
padding:5px 15px 4px 6px;
color:#333;

}

/* Commented Backslash Hack hides rule from IE5-Mac \*/
#tabs8 a span {float:none;}
/* End IE5-Mac hack */

#tabs8 a:hover span {
color:#591333;
}


#tabs8
a:hover {
background-position:0% -42px;
}

#tabs8
a:hover span {
background-position:100% -42px;
}

rahasia tabbed ini adalah

memindahkan posisi background gambar

saat mouse berada diatas objek (hover)

pada html jangan lupa untuk menambahkan <span> (lihat kode html) sehingga gambar source tabbed kanan dapat ditampilkan