Wednesday, December 10, 2008

include & require

Statement require() & include() digunakan untuk mengikutsertakan file lain yang ditentukan, dan membaca nilai variable dan fungsi dari file itu.

Cara penulisan require() & include():

require("somefile.php");
include("somefile.php");
Perbedaan dari kedua statement ini adalah bahwa require() tidak dapat digunakan dalam struktur percabangan atau pengulangan.

Functions

Function adalah kumpulan beberapa kode yang dibuat untuk menyelesaikan suatu tugas tertentu yang dapat dipakai berulang ulang. Penulisan dengan fungsi-fungsi terpisah akan mempermudah untuk mengembangkan program kita lebih lanjut.

Fungsi yang telah kita buat dapat dipakai/dipanggil berulang-ulang, baik yang telah dideklarasikan dalam script tersebut atau yang diikutsertakan melalui perintah require() atau include().

Pendeklarasian fungsi:

// contoh 1
function pesanError()
{
echo “Error!”;
}

// contoh 2
function penjumlahan($x, $y)
{
z = x + y;
return z;
}


Memanggil atau menggunakan fungsi:
// contoh 1
PesanError();

// contoh 2
echo penjumlahan(8, 10);

atau

$x = 8;
$y = 10;
$result = penjumlahan($x, $y);
echo $result;


Contoh 1:
Pada contoh ini fungsi tidak memberikan hasil yang dapat diolah, tetapi langsung menampilkan sesuatu.

Contoh 2:
Fungsi-fungsi dapat pula kita berikan argumen ($x & $y) untuk diolah di dalam fungsi, dan hasilnya disimpan dalam variable $result untuk diolah diluar fungsi.

Fungsi tidak dapat mengakses variabel di luar fungsi itu sendiri. Dan variable fungsi hanya dapat digunakan oleh fungsi itu sendiri.Variable akan hilang setelah fungsi selesei dieksekusi.

Variable local & global.
Variable local hanya berlaku di dalam fungsi dan tidak dapat diakses di lar fungsi itu.

function test(){
$var = 10;
}
echo ($var);

// error, karena $var tidak dikenali di luar fungsi
Variable global dideklarasikan diluar fungsi dan dapat digunakan dimana saja, variable global juga bisa digunakan di dalam fungsi dengan cara dipanggil dengan keyword global.
$var = 10;
function test(){
global $var;
echo ($var);
}

// output : 10
// jika $var tidak dipanggil dengan global tidak akan menghasilkan apa-apa


Control Structures

if

if (condition)
{
statement
}
Jika condition bernilai true, maka statement akan dijalankan
Jika condition bernilai false, maka statement akan dilewati dan menjalankan baris setelah struktur if.
if ($a > $b)
echo "a is bigger than b";

if - else

if (condition)
{
statement 1
}
else
{
statement 2
}
Jika condition bernilai true, maka statement 1 akan dijalankan
Jika condition bernilai false, maka statement 2 akan dijalankan.
if ($a > $b) {
echo "a is bigger than b";
} else {
echo "a is NOT bigger than b";
}

if - elseif - else

if (condition 1)
{
statement 1
}
elseif (condition 2)
{
statement 2
}
else
{
statement 3
}
Jika condition 1 bernilai true, maka statement 1 akan dijalankan
Jika condition 1 bernilai false dan condition 2 bernilai true, maka statement 2 akan dijalankan
Jika condition 1 dan condition 2 bernilai false, maka statement 3 akan dijalankan.
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}

switch – case

switch(variable){
case 1;
statement 1
break;
case 2;
statement 2
break;
case 3;
statement 3
break;
default;
statement 4
break;
}
Switch digunakan untuk membandingkan suatu variable dengan beberapa nilai.
Jika variable sama dengan case 1, maka statement 1 akan dieksekusi
Jika variable sama dengan case 2, maka statement 2 akan dieksekusi
Jika variable sama dengan case 3, maka statement 3 akan dieksekusiJika selain kondisi diatas, maka statement 4 akan dieksekusi.

Fungsi dari break adalah keluar dari switch – case setelah menemukan kondisi yang bernilai true. Jika tanpa break, case berikutnya akan tetap dijalankan meskipun telah ditemukan case yang bernilai true.
default akan dijalankan jika semua kondisi case tidak ada yang dipenuhi.
// contoh 1
switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
default:
echo "i is not equal to 0, 1 or 2";
}

// contoh 2, switch dengan menggunakan string
switch ($i) {
case "apple":
echo "i is apple";
break;
case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
}

for

for (expression1; expression2; expression3)
statement
expression1 adalah nilai awal suatu variable, dijalankan pada saat iterasi/putaran dimulai.
expression2 diperiksa nilainya setiap kali iterasi dijalankan, jika hasilnya true pengulangan diteruskan, jika hasilnya false pengulangan akan dihentikan.
expression3 akan dijalankan setiap akhir iterasi, biasanya digunakan untuk menambah nilai variable.
// contoh 1
for ($i = 1; $i <= 10; $i++) {
echo $i;
}

// contoh 2
for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}

// contoh 3
$i = 1;
for (; ; ) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}

// contoh 4
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);

while
while (condition)
statement
Selama nilai condition true, statement akan selalu dijalankan
// contoh 1
$i = 1;
while ($i <= 10) {
echo $i++; /* nilai $i sebelum ditambah akan diprint dulu */
}

// contoh 2
$i = 1;
while ($i <= 10):
echo $i;
$i++;

do - while
do - while loop merupakan modifikasi dari while loop.

do{
statement
}
while (condition)
$i = 1;
do {
echo $i;
} while ($i <= 10);
?>

break
break menghentikan eksekusi dari for, while, do – while atau switch.

for ($i = 0; $i < 5; ++$i) {
if ($i == 2) {
break;
}
print "$i\n";
}

output:
0
1

continue
continue digunakan dalam struktur looping untuk melewati/skip iterasi saat ini dan melanjutkan iterasi berikutnya.

for ($i = 0; $i < 5; ++$i) {
if ($i == 2) {
continue;
}
print "$i\n";
}

output:
0
1
3
4

exit
exit digunakan untuk menghentikan keseluruhan script.



Thursday, December 4, 2008

Membuat thumbnail

Thumbnail adalah versi kecil dari sebuah gambar, sehingga waktu download bisa lebih cepat. Kita akan memuat thumbnail secara otomatis dengan menggunakan GD Library 2, GD Library 2 menghasilkan thumbnail yang lebih bagus juga file yang lebih kecil. Script ini hanya untuk file JPG.

Untuk itu kita buat dulu 2 folder: “images” dan “thumbs”. Folder images untuk menyimpan gambar asli yang kita upload, dan folder thumbs untuk menyimpan thumbnail gambar.

thumbnail.php

<?
function make_thumb($img_src, $img_th)
{
$thumb_on = 'x';
$thumb_size = 150;
$quality = 50;

$img_size = GetImageSize ($img_src);
$img_in = ImageCreateFromJPEG ($img_src);

if ($thumb_on == 'x')
{
$img_y = ($thumb_size/$img_size[0]) * $img_size[1];
$img_x = $thumb_size;
}
else
{
$img_x = ($thumb_size/$img_size[1]) * $img_size[0];
$img_y = $thumb_size;
}

$img_out = ImageCreateTrueColor($img_x, $img_y);
ImageCopyResampled ($img_out, $img_in, 0, 0, 0, 0, $img_x, $img_y, $img_size[0], $img_size[1]);

ImageJPEG ($img_out, $img_th, $quality);
ImageDestroy ($img_out);
ImageDestroy ($img_in);
}

if (isset ($_FILES['image']['name']))
{
$fn = $_FILES['image']['name'];
$src = 'images/'.$fn;
$th = 'thumbs/'.$fn;
if (!@move_uploaded_file ($_FILES['image']['tmp_name'], $src)) die ('Gambar tidak bisa di upload');

make_thumb ($src, $th);
echo "Selesai!";
}
?>
<form enctype="multipart/form-data" action="thumbnail.php" method="post">
Gambar yang akan dibuat thumbnail: <input name="image" type="file"><input type="submit" value="Thumbnail">
</form>
$thumb_on: masukkan “x” untuk lebar atau “y” untuk tinggi thumbnail. Jika memasukkan “x” maka nilai dari $thumb_size akan dijadikan lebar thumbnail.
$thumb_size: ukuran pixel thumbnail.
$quality: kualitas thumbnail, “0” untuk terjelek dan “100” untuk kualitas terbaik.


Menghitung ukuran gambar asli:

$img_size = GetImageSize ($img_src);
$img_in = ImageCreateFromJPEG ($img_src);


Dari setting diatas dihitung ukuran thumbnail:

if ($thumb_on == 'x')
{
$img_y = ($thumb_size/$img_size[0]) * $img_size[1];
$img_x = $thumb_size;
}

else
{
$img_x = ($thumb_size/$img_size[1]) * $img_size[0];
$img_y = $thumb_size;
}


Membuat thumbnail dengan ImageCopyResampled dari GD Library 2 yang menghasilkan gambar lebih bagus:

$img_out = ImageCreateTrueColor($img_x, $img_y);
ImageCopyResampled ($img_out, $img_in, 0, 0, 0, 0, $img_x, $img_y, $img_size[0], $img_size[1]);

ImageJPEG ($img_out, $img_th, $quality);
ImageDestroy ($img_out);
ImageDestroy ($img_in);

Upload file gambar dan memanggil make_thumb($src, $th):
$src = lokasi gambar asli
$th = lokasi thumbnail

if (isset ($_FILES['image']['name']))
{
$fn = $_FILES['image']['name'];
$src = 'images/'.$fn;
$th = 'thumbs/'.$fn;
if (!@move_uploaded_file ($_FILES['image']['tmp_name'], $src)) die ('Gambar tidak bisa di upload');

make_thumb ($src, $th);
echo "Selesai!";
}

Monday, December 1, 2008

Update dan delete database MySQL

Update database MySQL:

<?php
include 'config.php';

mysql_select_db('dbase') or die('Error, cannot select mysql database');

$query = "
UPDATE user SET alamat = 5th Avenue WHERE nama = 'James Bond'";
mysql_query($query) or die('Error, query failed');

?>

Delete database MySQL:

<?php
include 'config.php';

mysql_select_db('dbase') or die('Error, cannot select mysql database');

$query = " DELETE FROM user WHERE nama = 'James Bond'";
mysql_query($query) or die('Error, query failed');

?>

Mengambil data dari database MySQL

Ada beberapa cara untuk mengambil data dari database MySQL:

Menggunakan mysql_fetch_array() dengan konstanta MYSQL_ASSOC akan menghasilkan associative array ($row['nama']).

<?php
include 'config.php';

$query = "SELECT nama, alamat FROM user";
$result = mysql_query($query);

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "Name :{$row['nama']} <br>" .
"Message : {$row['alamat']} <br><br>";
}

?>

Penggunaan mysql_fetch_array() bersama dengan MYSQL_ASSOC hasilnya sama dengan menggunakan mysql_fetch_assoc():

<?php
include 'config.php';

$query = "SELECT nama, alamat FROM user";
$result = mysql_query($query);

while($row = mysql_fetch_assoc($result))
{
echo "Name :{$row['nama']} <br>" .
"Message : {$row['alamat']} <br><br>";
}

?>

Dengan MYSQL_NUM akan menghasilkan numeric array ($row['0']).

<?php
include 'config.php';

$query = "SELECT * FROM user";
$result = mysql_query($query);

while($row = mysql_fetch_array($result, MYSQL_NUM))
{
echo "Nama :{$row[0]} <br>" .
"Alamat : {$row[0]} <br><br>";
}

?>

Penggunaan mysql_fetch_array() bersama dengan MYSQL_NUM hasilnya sama dengan menggunakan mysql_fetch_row():

<?php
include 'config.php';

$query = "SELECT * FROM user";
$result = mysql_query($query);

while($row = mysql_fetch_row($result))
{
echo "Nama :{$row[0]} <br>" .
"Alamat : {$row[0]} <br><br>";
}

?>

Cara lain untuk mengambil data dengan menggunakan list():

<?php
include 'config.php';

$query = "SELECT * FROM user";
$result = mysql_query($query);

while(list($nama, $alamat)= mysql_fetch_row($result))
{
echo "Nama :$nama <br>" .
"Alamat : $alamat <br><br>";
}

?>

Insert data ke dalam database MySQL

Setelah memilih dan membuka database, selanjutnya kita memasukkan data.

<?php
include 'config.php';

mysql_select_db($dbname);

$query = "INSERT INTO user (nama, alamat) VALUES ('James Bond', '3rd Avenue')";
mysql_query($query) or die('Error, insert query failed');

?>
Dan pada aplikasinya, data dimasukkan melalui form dengan $_POST :

<html>
<head>
<title>Add New User</title>
</head>

<body>

<?php
if(isset($_POST['add']))
{
include 'config.php';

$username = $_POST['nama'];
$password = $_POST['alamat'];


$query = "INSERT INTO user (nama, alamat) VALUES ('$nama', '$alamat')";
mysql_query($query) or die('Error, insert query failed');

echo "New user added";
}

else
{
?>
<form method="post">
<table border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">Nama</td>
<td><input name="nama" type="text" id="nama"></td>
</tr>
<tr>
<td width="100">Alamat</td>
<td><input name="alamat" type="text" id="alamat"></td>
</tr>
<tr>
<td width="100">&nbsp;</td>
<td><input name="add" type="submit" id="add" value="Add New User"></td>
</tr>
</table>
</form>

<?php
}
?>

</body>
</html>

Menghapus database MySQL

Cara menghapus database dengan cara berikut:

<?php
include 'config.php';

$query = 'DROP DATABASE dbase';
$result = mysql_query($query);

?>

Membuat table

Table dibuat dengan query:

<?php
include 'config.php';

$query = 'CREATE DATABASE dbase';
$result = mysql_query($query);

mysql_select_db('dbase') or die('Cannot select database');

$query = 'CREATE TABLE user ( '.
'cid INT NOT NULL AUTO_INCREMENT, '.
'nama VARCHAR(20) NOT NULL, '.
'alamat VARCHAR(50) NOT NULL, '.
'PRIMARY KEY(cid))';

$result = mysql_query($query);


?>

atau:

<?php
include 'config.php';

$query = 'CREATE DATABASE dbase';
$result = mysql_query($query);

mysql_select_db('dbase') or die('Cannot select database');

mysql_query(”CREATE TABLE user (
cid INT NOT NULL AUTO_INCREMENT,
nama VARCHAR(20) NOT NULL,
alamat VARCHAR(50) NOT NULL,
PRIMARY KEY(cid))”);


?>

Membuat database MySQL

Untuk membuat database kita gunakan mysql_create_db():

<?php
include 'config.php';

mysql_create_db('dbase');

?>

Database bisa juga dibuat dengan menggunakan mysql_query():
<?php
include 'config.php';

$query = "CREATE DATABASE dbase";
$result = mysql_query($query);


?>

Connect ke database MySQL

Untuk koneksi ini kita membutuhkan alamat MySQL server, user dan password.

$dbhost adalah alamat MySQL server, gunakan localhost atau 127.0.0.1 jika letak MySQL server sama dengan webserver. $dbuser & $dbpass adalah username & password yang digunakan untuk mengakses MySQL.

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$dbname = 'dbase';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

mysql_select_db($dbname);
?>

Untuk membuat koneksi ke database kita gunakan mysql_connect(), jangan lupa menggunakan mysql_select_db() untuk memilih database yang diinginkan.

Jika letak MySQl server tidak sama & perlu port number, bisa ditulis seperti dibawah:

<?php
$dbhost = 'mysqlserver.com:3306';
$dbuser = 'root';
$dbpass = 'password';
$dbname = 'dbase';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

mysql_select_db($dbname);

?>

Konfigurasi koneksi database ini akan kita simpan sebagai config.php, jika sewaktu-waktu dibutuhkan kita bisa include file tsb.