Selasa, Februari 26, 2008
Hari terkahir tugas di Jakarta
Membuat Web CMS Sendiri dengan PHP (1. Menyiapkan Database)
Perlengkapan
- Komputer untuk kerja
- Web Server termasuk PHPnya
- Database Server MySQL
- Text Editor Favorit (notepad,wordpad dll)
- Web Hosting + Domain (optional)
Konfigurasi Database
Membuat Database Dengan MySQL Clientshell> CREATE DATABASES mycms;
atau gunakan phpMyAdmin jika anda menggunakan XAMPP

Masukkan nama database kemudian klik 'Create'

Membuat Table User
CREATE TABLE `cms_user` (
`id` bigint(9) unsigned zerofill NOT NULL auto_increment,
`username` varchar(20) default NULL,
`password` varchar(80) default NULL,
`fullname` varchar(80) default NULL,
`email` varchar(200) default NULL,
`date_register` datetime NOT NULL default '2008-01-01 00:00:00',
`last_login` datetime NOT NULL default '2008-01-01 00:00:00',
`last_ip` varchar(100) default NULL,
`level` int(3) NOT NULL default '1',
`gender` enum('M','F') NOT NULL default 'M',
`date_of_birth` date default '0000-00-00',
`address` text,
`province` varchar(100) default NULL,
`zipcode` varchar(5) default NULL,
`country` varchar(100) default NULL,
`phonehome` varchar(50) default NULL,
`handphone` varchar(50) default NULL,
`phoneoffice` varchar(50) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB;

CREATE TABLE `cms_content_category` (
`id` bigint(6) unsigned NOT NULL auto_increment,
`parent_id` bigint(6) unsigned default '0',
`name` varchar(200) default NULL,
`auth_level_view` int(3) unsigned default '0',
`auth_level_post` int(3) unsigned default '99',
`status_category` int(2) default '1',
`language` varchar(80) NOT NULL default 'bahasa',
`link_module` varchar(80) default NULL,
`position` enum('mtop','mleft','mright','no') NOT NULL default 'mtop',
`default_content` bigint(15) unsigned NOT NULL default '0',
`order` bigint(6) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `cms_content` (
`id` bigint(12) unsigned NOT NULL auto_increment,
`name` varchar(80) default NULL,
`category` bigint(6) unsigned default NULL,
`description` longtext,
`date_post` datetime NOT NULL default '2008-01-01 00:00:00',
`date_edit` datetime NOT NULL default '2008-01-01 00:00:00',
`flag_view` int(3) default '1',
`author` bigint(9) unsigned zerofill default NULL,
`language` varchar(80) NOT NULL default 'bahasa',
`flag_default` tinyint(3) default '0',
PRIMARY KEY (`id`),
KEY `category` (`category`),
KEY `author` (`author`),
CONSTRAINT `cms_content_ibfk_1` FOREIGN KEY (`category`) REFERENCES `cms_content_category` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `cms_content_ibfk_2` FOREIGN KEY (`author`) REFERENCES `cms_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `cms_vote` (
`id` bigint(5) unsigned NOT NULL auto_increment,
`description` varchar(200) default NULL,
`vote_start` datetime default NULL,
`vote_end_interval` int(3) unsigned default '0',
`vote_flag_status` int(3) unsigned default '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `cms_vote_list` (
`id` bigint(9) unsigned NOT NULL auto_increment,
`id_vote` bigint(5) unsigned default NULL,
`description` varchar(40) default NULL,
`hit` bigint(9) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `id_vote` (`id_vote`),
CONSTRAINT `cms_vote_list_ibfk_1` FOREIGN KEY (`id_vote`) REFERENCES `cms_vote` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Jumat, Februari 22, 2008
Membuat Grafik Bar dengan PHP
Copy code berikit dan Simpan file ini dengan nama class.wchar.php
<?php
/*
W.Chart By Stieven R. Kalengkian
All Right Reserved
Copyright (c) 2008
Free for Personal use
*/
class wchart {
var $kanvas;
var $kanvas_width_master = 400;
var $kanvas_height_master = 300;
var $kanvas_free = 50;
var $max_data = 5000;
var $kanvas_legend_height = 100;
var $kanvas_legend_width = 100;
var $string_head = "Wow!! Chart";
var $space = 15;
function wchart($w,$h,$f=50,$m=5000,$g=10) {
$this->kanvas_width_master = $w;
$this->kanvas_height_master = $h;
if ($f < 40) { $f = 40; }
$this->kanvas_free = $f;
$this->max_data = $m;
$this->grid = $g;
}
function set_title($t) {
$this->string_head=$t;
$string_foot="Generated ".date("M, d Y h:i:sa")." GCM Graph";
imagestring($this->kanvas,2,($this->kanvas_width_master-(strlen($string_foot)*6))/2,$this->kanvas_height_master-15,$string_foot,$this->dgrey);
imagestring($this->kanvas,5,($this->kanvas_width_master-(strlen($this->string_head)*9))/2,15,$this->string_head,$this->black);
}
function make_kanvas() {
$this->kanvas = imagecreatetruecolor($this->kanvas_width_master+$this->kanvas_legend_width,$this->kanvas_height_master+$this->kanvas_legend_height);
$this->kanvas_height = $this->kanvas_height_master - ($this->kanvas_free*2);
$this->kanvas_width = $this->kanvas_width_master - ($this->kanvas_free);
$this->start_x = $this->kanvas_free;
$this->end_x = $this->kanvas_width;
$this->start_y = $this->kanvas_free;
$this->end_y = $this->kanvas_height;
$this->red=imagecolorallocate($this->kanvas,0xFF,0x00,0x00);
$this->black=imagecolorallocate($this->kanvas,0x00,0x00,0x00);
$this->green=imagecolorallocate($this->kanvas,0x00,0xFF,0x00);
$this->white=imagecolorallocate($this->kanvas,0xFF,0xFF,0xFF);
$this->blue=imagecolorallocate($this->kanvas,0x00,0x00,0xFF);
$this->grey=imagecolorallocate($this->kanvas,0xF6,0xF6,0xF6);
$this->dgrey=imagecolorallocate($this->kanvas,0xCF,0xCF,0xCF);
imagefill($this->kanvas,0,0,$this->white);
imagerectangle($this->kanvas,1,1,$this->kanvas_width_master-1+$this->kanvas_legend_width,$this->kanvas_height_master-1+$this->kanvas_legend_height,$this->black);
}
function make_grid($g = 10) {
$dataPersen = $this->max_data/$g;
$maxPersen = $dataPersen*$g;
$gridScale = round(($this->kanvas_height)/$g);
for ($i = 0; $i <= $g; $i++) {
imageline($this->kanvas,$this->start_x,$gridScale*$i+$this->kanvas_free,$this->end_x,$gridScale*$i+$this->kanvas_free,$this->grey);
}
$gs = round(($this->kanvas_width-$this->kanvas_free)/$g);
$gridV = round(($this->kanvas_width-$this->kanvas_free)/$gs);
for ($i = 0; $i <= $gridV; $i++) {
imageline($this->kanvas,$this->start_x+$i*$gs,$this->start_y,$this->start_x+$i*$gs,$this->end_y+$this->kanvas_free,$this->grey);
}
imageline($this->kanvas,$this->start_x,round(($this->kanvas_height)/2)+$this->kanvas_free,$this->end_x,round(($this->kanvas_height)/2)+$this->kanvas_free,$this->dgrey);
imageline($this->kanvas,$this->start_x,$this->end_y+$this->kanvas_free,$this->end_x,$this->end_y+$this->kanvas_free,$this->black);
imageline($this->kanvas,$this->start_x,$this->start_y,$this->start_x,$this->end_y+$this->kanvas_free,$this->black);
for ($i = 0; $i <= $g; $i++) {
imagestring($this->kanvas,2,$this->start_x-($this->start_x-10),$gridScale*$i-5+$this->kanvas_free,round($maxPersen-($dataPersen*$i),2),$this->black);
}
}
function polygon($arr,$filled = 0) {
if ($filled == 0 ) {
imagepolygon($this->kanvas,$arr,round(count($arr)/2),$this->red);
} else {
imagefilledpolygon($this->kanvas,$arr,round(count($arr)/2),$this->red);
}
}
function bar($data,$text,$t3d=0) {
$color[0]=imagecolorallocate($this->kanvas,0x00,0xFF,0x00);
$color[1]=imagecolorallocate($this->kanvas,0xFF,0x00,0x00);
$color[2]=imagecolorallocate($this->kanvas,0x00,0x00,0xFF);
$color[3]=imagecolorallocate($this->kanvas,0x99,0x00,0x00);
$color[4]=imagecolorallocate($this->kanvas,0x99,0x00,0x99);
$color[5]=imagecolorallocate($this->kanvas,0xFF,0x66,0x00);
$color[6]=imagecolorallocate($this->kanvas,0x33,0x33,0x00);
$color[7]=imagecolorallocate($this->kanvas,0xFF,0x66,0x00);
$color[8]=imagecolorallocate($this->kanvas,0x00,0x66,0x00);
$color[9]=imagecolorallocate($this->kanvas,0xFF,0x66,0xFF);
$color[10]=imagecolorallocate($this->kanvas,0x33,0x33,0xcc);
if ($t3d == 1) { $this->bar3d($data,$text); }
$space=$this->space;
$jarak=round(($this->end_x-$this->kanvas_free-(count($data)*10))/count($data));
$c=0;
for ($i=0;$i<count($data);$i++) {
$titik=round($data[$i]/$this->max_data*($this->end_y))-($this->kanvas_free);
$x1 = $this->start_x+$space+($i*$jarak);
$x2 = $x1+$jarak-$space;
$y1 = $this->end_y-$titik;
$y2 = $this->end_y+($this->kanvas_free-1);
$tt=$data[$i];
$tl=round(strlen($text[$i])*6)/2;
$xt=$x1;
if ($c > count($color)) { $c=0; }
imagefilledrectangle($this->kanvas,$x1,$y1,$x2,$y2,$color[$c]);
$string="$tt";
if ($this->text_persen == 1) { $string="$tt%"; }
//imagestring($this->kanvas,2,$x1+5,$y1-$space-30,$tt,$this->black);
imagestring($this->kanvas,2,$xt+5,$y1-15-$space,$string,$this->black);
$ls=10; $sp=5;
$ly=$this->kanvas_height_master+($i*($ls+$sp));
imagefilledrectangle($this->kanvas,$this->start_x,$ly,$this->start_x+10,$ly+$ls,$color[$c]);
imagestring($this->kanvas,2,$this->start_x+20,$ly-1,$text[$i],$this->black);
$c++;
}
}
function bar3d($data,$text) {
$color[0][0]=imagecolorallocate($this->kanvas,0x00,0x99,0x00);
$color[0][1]=imagecolorallocate($this->kanvas,0x00,0x33,0x00);
$color[1][0]=imagecolorallocate($this->kanvas,0x99,0x00,0x00);
$color[1][1]=imagecolorallocate($this->kanvas,0x33,0x00,0x00);
$color[2][0]=imagecolorallocate($this->kanvas,0x00,0x00,0x99);
$color[2][1]=imagecolorallocate($this->kanvas,0x00,0x00,0x33);
$color[3][0]=imagecolorallocate($this->kanvas,0x66,0x00,0x00);
$color[3][1]=imagecolorallocate($this->kanvas,0x11,0x00,0x00);
$color[4][0]=imagecolorallocate($this->kanvas,0x66,0x00,0x66);
$color[4][1]=imagecolorallocate($this->kanvas,0x11,0x00,0x11);
$color[5][0]=imagecolorallocate($this->kanvas,0x99,0x33,0x00);
$color[5][1]=imagecolorallocate($this->kanvas,0x66,0x00,0x00);
$color[6][0]=imagecolorallocate($this->kanvas,0x21,0x21,0x00);
$color[6][1]=imagecolorallocate($this->kanvas,0x10,0x10,0x00);
$color[7][0]=imagecolorallocate($this->kanvas,0x99,0x33,0x00);
$color[7][1]=imagecolorallocate($this->kanvas,0x66,0x00,0x00);
$color[8][0]=imagecolorallocate($this->kanvas,0x00,0x33,0x00);
$color[8][1]=imagecolorallocate($this->kanvas,0x00,0x11,0x00);
$color[9][0]=imagecolorallocate($this->kanvas,0x99,0x33,0x99);
$color[9][1]=imagecolorallocate($this->kanvas,0x33,0x11,0x33);
$color[10][0]=imagecolorallocate($this->kanvas,0x33,0x33,0xFF);
$color[10][1]=imagecolorallocate($this->kanvas,0x00,0x00,0xCC);
$space=$this->space;
$p=$space-2;
$jarak=round(($this->end_x-$this->kanvas_free-(count($data)*10))/count($data));
$c=0;
for ($i=0;$i<count($data);$i++) {
$titik=round($data[$i]/$this->max_data*($this->end_y))-($this->kanvas_free);
$x1 = $this->start_x+$space+($i*$jarak);
$x2 = $x1+$jarak-$space;
$y1 = $this->end_y-$titik;
$y2 = $this->end_y+($this->kanvas_free-1);
$tt=$data[$i];
$tl=round(strlen($text[$i])*6)/2;
$xt=$x1;
if ($c > count($color)) { $c=0; }
$point=array($x1,$y1,$x2,$y1,$x2+$p,$y1-$p,$x1+$p,$y1-$p);
$numpoint=round(count($point)/2);
imagefilledpolygon($this->kanvas,$point,$numpoint,$color[$c][0]);
$point=array($x2,$y1,$x2+$p,$y1-$p,$x2+$p,$y2-$p,$x2,$y2);
$numpoint=round(count($point)/2);
imagefilledpolygon($this->kanvas,$point,$numpoint,$color[$c][1]);
$c++;
}
}
function cstring($x,$y,$string,$f=2) {
imagestring($this->kanvas,$f,$x,$y,$string,$this->black);
}
function draw() {
header("Content-type: image/png");
imagepng($this->kanvas);
}
}
?>
<?php
include "class.wchart.php";
$data=array(100,50,20,30,50);
$text=array("satu","dua","tiga","empat","lima");
$chart = new wchart(600,300,40,100);
$chart->make_kanvas();
$chart->make_grid(10);
$chart->set_title("My Chart Demo for Me");
$chart->bar($data,$text);
$chart->draw();
?>
Rabu, Februari 20, 2008
Using XML in MySQL 5.1 and 6.0
Gunakan option --xml, option ini berlaku untuk client mysql dan mysqldump. Dengan fungsi ini hasil query akan ditampilkan dengan format XML. Berikut Contohnya dan hasilnya:
Sedangkan jika tidak menggunakan Option --xml hasilnya:shell> mysql -uroot -e "SHOW VARIABLES LIKE '%version%'" --xml
<?xml version="1.0"?>
<resultset statement="SHOW VARIABLES LIKE '%version%'" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><row> <field name="Variable_name">protocol_version</field> <field name="Value">10</field> </row>
<row><field name="Variable_name">version</field> <field name="Value">5.1.22-beta-debug</field> </row>
<row><field name="Variable_name">version_comment</field> <field name="Value">Source distribution</field> </row>
<row>
<field name="Variable_name">version_compile_machine</field> <field name="Value">x86_64</field> </row>
<row><field name="Variable_name">version_compile_os</field> <field name="Value">suse-linux-gnu</field> </row> </resultset>
shell>mysql -uroot -e "SHOW VARIABLES LIKE '%version%'"
+-------------------------+---------------------+ | Variable_name | Value | +-------------------------+---------------------+ | protocol_version | 10 | | version | 5.1.22-beta-debug | | version_comment | Source distribution | | version_compile_machine | x86_64 | | version_compile_os | suse-linux-gnu | +-------------------------+---------------------+ Ataupun dapat dilakukan untuk query SELECT, contohnya :shell> mysql -uroot --xml -e 'SELECT * FROM xmltest.cities ORDER BY name'
<resultset statement="SELECT * FROM xmltest.cities ORDER BY name" xsi="http://www.w3.org/2001/XMLSchema-instance"><row> <field name="name">Ciudad de Méico</field> <field name="country">Mexico</field> <field name="population">8591309</field> </row>
<row><field name="name">Istanbul</field> <field name="country">Turkey</field> <field name="population">8787958</field> </row>
<row><field name="name">Jakarta</field> <field name="country">Indonesia</field> <field name="population">9604900</field> </row>
<row><field name="name">Karachi</field> <field name="country">Pakistan</field> <field name="population">9269265</field> </row>
<row><field name="name">Moscow</field> <field name="country">Russian Federation</field> <field name="population">8389200</field> </row>
<row><field name="name">Mumbai (Bombay)</field> <field name="country">India</field> <field name="population">10500000</field> </row>
<row><field name="name">New York</field> <field name="country">United States</field> <field name="population">8008278</field> </row>
<row><field name="name">São Paulo</field> <field name="country">Brazil</field> <field name="population">9968485</field> </row>
<row><field name="name">Seoul</field> <field name="country">South Korea</field> <field name="population">9981619</field> </row>
<row><field name="name">Shanghai</field> <field name="country">China</field> <field name="population">9696300</field> </row> </resultset>
Perlindungan Konten Internet (Lindungi Blogger Karya Sendiri)
Software Bajakan?
Selasa, Februari 19, 2008
Posting Pertama
Aplikasi Pengenalan Wajah menggunakan PHP
Meskipun PHP bukanlah bahasa yang paling umum digunakan untuk pengenalan wajah (Python dengan pustaka seperti OpenCV dan face_recognition le...