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
PHP Google Drive
https://g.co/gemini/share/4ec33b801d4a Tentu, saya akan membantu Anda membuat kode PHP menggunakan Composer untuk melakukan sinkronisasi (...