online stats Tips and tricks about computer: 19 Nov 2009
Blinkie Text Generator at TextSpace.net
BERANDATENTANG SAYAFACEBOOKFRIENDSTERTWITTERCLIXSENSEGOOGLEYAHOO!MSNBLOGGER

Kamis, 19 November 2009

Mengambil isi URL dengan PHP

Ada beberapa pendekatan yang bisa Anda pilih ketika ingin mengambil isi halaman suatu URL. Anda bisa menggunakan fungsi fopen(), ekstensi CURL (Client URL), atau paket HTTP (PEAR).

Bagaimanapun juga, fopen() memiliki keterbatasan, pada saat Anda ingin mengambil isi halaman web dengan konfigurasi spesifik. Di sisi lain, ekstensi HTTP bukan ekstensi built-in sehingga perlu diinstal terlebih dahulu. Adapun solusinya, Anda bisa memanfaatkan ekstensi CURL. kode programnya seperti berikut:

/**
* Mengambil isi URL dan menyimpan ke file
* @param $page alamat URL
* @param $file nama file
* /

function getURLPage($page, $file) {
$ch = curl_init($page);
curl_setopt($ch, CURlOPT_FILE, $cf);
curl_exec($ch) or die(curl_error($sh));

echo 'Size download: ',
curl_getInfo($ch, CURLINFO_SIZE_DOWNLOAD);
echo '
Speed download: ',
curl_getInfo($ch, CURL_SPEED_DOWNLOAD);

curl_close($ch);
fclose($cf);
echo '

View page';
}
getURLPage('http://localhost/', 'page.html');

Secara default, fungsi-fungsi ekstensi CURL belum diaktifkan. Oleh karena itu, Anda terlebih dahulu harus mengaktifkan ekstensi php_curl.dll atau php_curl.so (Unix/Linux).

Baca Selengkapnya...

Mendeteksi Proxy Server dengan PHP

Atribut REMOTE_ADDR dari superglobal $_SERVER merepresentasikan alamat IP user yang me-request halaman web. Dimana alamat yang dikembalikan bisa berupa alamat IP komputer user atau web cache (proxy server) dari ISP user.

Apabila nilai REMOTE_ADDR adalah proxy server, maka atribut HTTP_X_FORWARDED_FOR juga ditampilkan. Atribut ini bisa Anda gunakan untuk mengetahui alamat IP proxy server. Implementasi kodenya seperti berikut:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
echo 'Anda mengakses dengan proxy server
';
echo 'IP Anda: ', $_SERVER['HTTP_X_FORWARDED_FOR'], '
';
echo 'Terkoneksi lewat engine: ', $_SERVER['HTTP_VIA'], '
';
echo 'IP Proxy Server:', $_SERVER['REMOTE_ADDR'];
} else {
echo 'Anda terkoneksi tanpa proxy
';
echo 'IP Anda: ', $_SERVER['REMOTE_ADDR'];
}

Baca Selengkapnya...

DDL, DML, DCL

Data Definition Language

Data Definition Language (DDL) adalah bahasa komputer untuk mendefinisikan struktur data. Istilah ini pertama kali diperkenalkan dalam kaitannya dengan model database Codasyl, di mana skema database ditulis dalam Data Definition Language menggambarkan catatan, field, dan "set" yang membentuk pengguna Model Data. Awalnya itu disebut subset SQL, namun kini digunakan dalam arti umum untuk mengacu pada bahasa formal untuk mendeskripsikan struktur data atau informasi, seperti skema XML.

CREATE

Untuk membuat database baru, tabel, indeks, atau query. Sebuah pernyataan CREATE dalam SQL menciptakan suatu benda dalam sebuah sistem manajemen database relasional (RDBMS). Jenis objek yang dapat dibuat tergantung pada RDBMS yang digunakan, tetapi kebanyakan mendukung penciptaan tabel, indeks, pengguna, dan database. Beberapa sistem (seperti PostgreSQL) memungkinkan CREATE dan perintah DDL lain dalam sebuah transaksi dan dengan demikian mereka dapat digulung kembali.

CREATE TABLE

Perintah CREATE yang paling umum adalah perintah CREATE TABLE. Digunakan untuk membuat tabel. Penggunaan yang khas adalah:

CREATE TABLE [IF NOT EXISTS] [table name] ( [column definitions] ) [table parameters];

Parameter IF NOT EXISTS untuk memeriksa tabel jika tidak ada atau belum dibuat.

Untuk menampilkan nama-nama tabel yang telah dibuat gunakan perintah:

SHOW TABLES;

Untuk menampilkan deskripsi sebuah tabel dapat menggunakan perintah:

DESCRIBE [table name];

Contoh:

CREATE TABLE karyawan (

id INTEGER PRIMARY KEY,

first_name CHAR (50) NULL,

last_name CHAR (75) NOT NULL,

dateofbirth DATE NULL ; )

SHOW TABLES;

DESCRIBE karyawan;

CREATE DATABASE

Perintah ini digunakan untuk membuat database. Penggunaan yang khas adalah:

CREATE DATABASE [database name];

Setelah itu, untuk menggunakan database yang telah dibuat gunakan perintah:

USE [database name];

Contoh:

CREATE DATABASE karyawan;

USE karyawan;

CREATE TRIGGER

Perintah ini digunakan untuk membuat TRIGGER. Trigger adalah sebuah obyek dalam database yang berupa prosedur yang merespon setiap kali terdapat proses modifikasi (insert, update, dan delete) pada tabel. Penggunaan yang khas adalah:

CREATE TRIGGER nama_trigger ON TABLE nama_tabel FOR [DELETE] [,] [INSERT] [,] [UPDATE] AS perintah_SQL;

Contoh:

CREATE TRIGGER LogUbahNilai ON TABLE PesertaKul FOR UPDATE, INSERT AS INSERT INTO LogHistoris (Tanggal, Proses);

CREATE INDEX

Untuk membuat index. Perintahnya adalah:

CREATE [UNIQUE] INDEX nama_index ON nama_tabel (nama_kolom);

Contoh:

CREATE INDEX Mahasiswa ON KRS (kode_mata_kuliah);

Ket : Spesifikasi unique akan menolak key yang sama dalam file.

CREATE SYNONYM

Untuk membuat Synonym. Synonym adalah cara untuk mengantikan nama view atau tabel yang panjang agar dapat dideklarasikan menjadi sebuah kata yang pendek. Perintahnya adalah:

CREATE SYNONYM synonym_name FOR [view_name / table_name];

Contoh:

CREATE SYNONYM mhs FOR mahasiswa;

CREATE VIEW

Untuk membuat View. View adalah tabel bayangan. Tidak menyimpan data secara fisik. Biasanya berupa hasil query dari tabel-tabel dalam sebuah database. Perintahnya adalah:

CREATE VIEW view_name [(column1, column2,….)] AS SELECT statement FROM table_name [WITH CHECK OPTION];

Contoh:

CREATE VIEW MHSv AS SELECT * FROM MHS;

Ket :

view_name : nama view yang akan dibuat.

Column : nama atribut untuk view.

Statement : atribut yang akan dipi;ih dari table basis Data.

Table_name : nama table basis data.

DROP

Untuk menghancurkan database, tabel, indeks, atau view yang sudah ada. Pernyataan DROP dalam SQL menghapus sebuah objek dari suatu sistem manajemen database relasional (RDBMS). Jenis objek yang dapat dihapus tergantung pada RDBMS yang digunakan, tetapi kebanyakan mendukung menghapus tabel, pengguna, dan database. Beberapa sistem (seperti PostgreSQL) memungkinkan DROP dan perintah DDL lain terjadi dalam suatu transaksi dan dengan demikian akan berputar ke belakang.

Penggunaan DROP untuk menghapus tabel adalah:

DROP TABLE [tablename];

Sebagai contoh, perintah untuk drop tabel bernama karyawan akan menjadi:

DROP TABLE karyawan;

Penggunaan DROP untuk menghapus database adalah:

DROP DATABASE [database_name];

Sebagai contoh, perintah untuk drop database bernama perusahaan akan menjadi:

DROP DATABASE perusahaan;

Penggunaan DROP untuk menghapus view adalah:

DROP VIEW [view_name];

Sebagai contoh, perintah untuk drop view bernama mahasiswa akan menjadi:

DROP VIEW mahasiswa;

Penggunaan DROP untuk menghapus index adalah:

DROP INDEX [index_name];

Sebagai contoh, perintah untuk drop index bernama karyawati akan menjadi:

DROP INDEX karyawati;

Penggunaan DROP untuk menghapus trigger adalah:

DROP TRIGGER [trigger_name];

Sebagai contoh, perintah untuk drop trigger LogUbahNilai bernama akan menjadi:

DROP TRIGGER LogUbahNilai;

Pernyataan DROP ini berbeda dengan pernyataan DELETE dan TRUNCATE (non-standar), dalam arti bahwa mereka tidak menghapus tabel itu sendiri. Sebagai contoh, sebuah pernyataan DELETE mungkin menghapus beberapa (atau semua) data dari meja sementara meninggalkan meja itu sendiri dalam database, sedangkan pernyataan DROP akan menghapus seluruh tabel dari database.

ALTER

Untuk memodifikasi objek database yang sudah ada. Sebuah pernyataan ALTER dalam SQL mengakibatkan perubahan sifat-sifat suatu objek dalam sebuah sistem manajemen database relasional (RDBMS). Jenis objek yang dapat diubah tergantung pada RDBMS yang sedang digunakan.

Penggunaan khas ALTER objecttype objectname parameters;. Objecttype dapat berupa tabel (table), database, fungsi (function), prosedur (produce), view. Objectname merupakan nama yang dipakai untuk menyatakan sebuah objek. Sedangkan parameters merupakan pilihan yang digunakan untuk mengubah struktur tabel, yaitu CHANGE, RENAME, DROP, dan ADD.

Perintah untuk menambah kolom baru dalam tabel:

ALTER TABLE table_name ADD new_column_name type(length) [FIRST | AFTER old_column];

Perintah untuk mengubah nama kolom pada tabel:

ALTER TABLE table_name CHANGE old_column_name new_column_name type(length);

Perintah untuk menghapus kolom yang ada pada tabel:

ALTER TABLE table_name DROP column_name;

Perintah untuk menganti nama tabel:

ALTER TABLE old_table_name RENAME [TO] new_column_name;

Misalnya, perintah untuk menambahkan lalu mengubah dan kemudian menghapus kolom bernama gelembung untuk tabel yang ada akan bernama wastafel yang namanya kan diubah menjadi bak.

ALTER TABLE wastafel ADD gelembung INTEGER;

ALTER TABLE wastafel CHANGE gelembung busa DOUBLE;

ALTER TABLE wastafel DROP COLUMN busa;

ALTER TABLE wastafel RENAME TO bak;

RENAME

Untuk mengubah nama tabel yang telah dibuat. Perintah untuk mengubah nama tabel yang telah dibuat adalah:

RENAME TABLE old_table_name TO new_table_name;

.


Data Manipulation Language

Data Manipulation Language (DML) adalah keluarga bahasa komputer yang digunakan oleh program komputer atau pemakai database untuk menyisipkan, menghapus dan memutakhirkan data dalam database. Yang saat ini paling populer adalah bahasa manipulasi data yang bearasl dari SQL, yang digunakan untuk mengambil dan memanipulasi data dalam database relasional. Bentuk-bentuk lain dari DML adalah yang digunakan oleh database IMS, CODASYL (seperti IDMS), dan lain-lain.

Bahasa Manipulasi Data terdiri dari pernyataan 'perubahan data SQL' yang mengubah data yang disimpan tetapi bukan skema atau objek database. Manipulasi objek database persisten (misalnya tabel atau prosedur yang disimpan) melalui pernyataan 'Skema SQL' bukan data yang tersimpan di dalamnya, dianggap sebagai bagian dari Data Definition Language yang terpisah. Dalam SQL dua kategori serupa dalam rincian sintaks mereka, tipe data, ekspresi dan sebagainya, tetapi berbeda dalam fungsi mereka secara keseluruhan.

Bahasa Manipulasi Data mempunyai kemampuan fungsional yang diselenggarakan oleh kata awal dalam sebuah pernyataan, yang hampir selalu merupakan kata kerja. Dalam kasus SQL, verba ini adalah:

SELECT

INSERT

UPDATE

DELETE

TRUNCATE

INSERT

Berfungsi untuk menyisipkan atau menyimpan data dari luar database ke dalam database. Ada beberapa cara dalam menyisipkan data ke dalam database yaitu dengan menyamakan kolom dan data, menyebutkan kolom, tanpa menyebutkan kolom, memasukkan hanya pada sebagian kolom yang ada pada tabel.

Menyamakan kolom dan data. Perintahnya adalah sebagai berikut:

INSERT INTO table_name SET column_name=’column_data’;

Contoh:

INSERT INTO karyawan SET nip=’110909’;

INSERT INTO karyawan SET nip=’110909’, nama=’SISWONO’;

Menyebutkan kolom. Perintahnya adalah sebagai berikut:

INSERT INTO table_name(first_column_name, next_column_name) VALUES (first_column_data, next_column_data);

Contoh:

INSERT INTO karyawan(nip, nama) VALUES(‘110909’, ‘SISWONO’);

Tanpa menyebutkan kolom. Perintahnya adalah sebagai berikut:

INSERT INTO table_name VALUES (new_first_column_data, new_next_column_data);

Contoh:

INSERT INTO karyawan VALUES (‘110909’, ‘SISWONO’);

SELECT

Perintah ini digunakan untuk menyeleksi atau memilih atau menampilkan data-data yang ada dalam tabel. Baik menampilkan semua kolom, sebagian kolom, serta berdasarkan kondisi.

Menampilkan semua kolom. Perintahnya adalah sebagai berikut:

SELECT * FROM table_name;

Contoh:

SELECT * FROM karyawan;

Menampilkan beberapa / sebagian kolom dalam tabel. Perintahnya adalah sebagai berikut:

SELECT column_name FROM table_name;

Contoh:

SELECT nip FROM karyawan;

Menampilkan semua kolom dengan kondisi. Perintahnya adalah sebagai berikut:

SELECT * FROM table_name WHERE condition;

Contoh:

SELECT * FROM karyawan WHERE nip=’110909’;

Menampilkan beberapa / sebagian kolom dengan kondisi. Perintahnya adalah sebagai berikut:

SELECT column_name FROM table_name WHERE condition;

Contoh:

SELECT nama FROM karyawan WHERE nip=’110909’;

Ket:

Kondisi juga dapat diimplementasikan dengan menambahkan operator relasional seperti ‘=’, ‘>’, ‘<’, ‘<>’, ‘<=’, ‘>=’ atau dengan menggunakan operator logika yaitu OR, AND dan NOT.

Menampilkan data sesuai urutan sehingga memudahkan pencarian. Perintahnya adalah sebagai berikut:

SELECT [column_name / *] FROM table_name [WHERE condition] ORDER BY column_name [DESC];

Contoh:

SELECT * FROM daftar_barang WHERE harga_barang=’10000’ ORDER BY harga_barang;

Ket:

Parameter DESC akan mengurutkan data secara terbalik.

Menampilkan data dengan membuat kelompok. Perintahnya adalah sebagai berikut:

SELECT nama_kolom FROM nama_tabel GROUP BY nama_kolom;

Contoh:

SELECT alamat, COUNT(*) FROM Mahasiswa GROUP BY alamat;

Menampilkan data dengan membuat kelompok dan menentukan syaratnya. Perintahnya adalah sebagai berikut:

SELECT nama_kolom FROM nama_tabel GROUP BY nama_kolom HAVING syarat;

Contoh:

SELECT alamat, COUNT(*) FROM Mahasiswa GROUP BY alamat HAVING COUNT(*)>1;

Menampilkan data secara unik atau data yang sama hanya ditampilkan satu kali saja. Perintahnya adalah sebagai berikut:

SELECT DISTINCT column_name FROM table_name;

Contoh:

SELECT DISTINCT nim FROM KRS;

Menampilkan data dalam nilai range tertentu. Perintahnya adalah sebagai berikut:

SELECT [daftar_kolom / *] FROM table_name WHERE kondisi [NOT] BETWEEN batas_bawah AND batas_atas;

Contoh:

SELECT * FROM pengajar WHERE id_pengajar BETWEEN 7 AND 15;

Ket:

Operator NOT digunakan untuk menyatakan tidak atau negasi dari BETWEEN, sehingga jika ditambahkan maka hasil akhirnya tidak akan menampilkan kolom dalam kondisi yang diberikan.

Menampilkan beberapa data paling atas dari hasil perintah SELECT. Perintahnya adalah sebagai berikut:

SELECT TOP n [daftar_kolom] FROM table_name;

Contoh:

SELECT TOP 3 * FROM mahasiswa;

Menampilkan data-data null (tidak memiliki nilai). Null berbeda dengan 0 atau spasi. Perintahnya adalah sebagai berikut:

SELECT [column_name / *] FROM table_name WHERE [condition / column_name] IS NULL;

Contoh:

SELECT * FROM Mahasiswa WHERE nim IS NULL;

Menampilkan data-data yang tidak null (memiliki nilai). Null berbeda dengan 0 atau spasi. Perintahnya adalah sebagai berikut:

SELECT [column_name / *] FROM table_name WHERE [condition / column_name] IS NOT NULL;

Contoh:

SELECT * FROM Mahasiswa WHERE nim IS NOT NULL;

Menampilkan hasil perintah SELECT dan mengganti namanya. Perintahnya adalah sebagai berikut:

SELECT column_name_1 AS column_alias_name_1, column_name_2 AS column_alias_name_2,…etc FROM table_name;

Contoh:

SELECT nim AS nim_mahasiswa, gender AS jenis_kelamin FROM Mahasiswa;

Menampilkan hasil perintah SELECT dan mengganti namanya dengan memakai kondisi. Perintahnya adalah sebagai berikut:

SELECT column_name_1 AS column_alias_name_1, column_name_2 AS column_alias_name_2,…etc FROM table_name WHERE condition;

Contoh:

SELECT nim AS nim_mahasiswa, gender AS jenis_kelamin FROM Mahasiswa;

UPDATE

Untuk memperbaharui data lama menjadi data yang baru, dalam penggunaannya harus disertai dengan klausa WHERE. Perintahnya adalah sebagai berikut:

UPDATE table_name SET kolom1 = ‘data_baru_kolom1’, kolom2 = ‘data_baru_kolom2’,…dst WHERE kondisi;

Contoh:

UPDATE Mahasiswa SET kelas = ‘A’, nama = ‘Muhammad Solihin’ WHERE nim = ‘082406013’;

DELETE

Untuk menghapus record yang ada pada baris data yang terdapat pada tabel. Perintahnya adalah sebagai berikut:

DELETE FROM nama_tabel WHERE kondisi;

Contoh:

DELETE FROM Mahasiswa WHERE nim = ‘082406001’;

TRUNCATE

Untuk menghapus seluruh record data pada tabel atau dapat dikatakan sebagai pengosongan isi tabel bukan menghapus field atau tabel tersebut. Perintahnya adalah sebagai berikut:

TRUNCATE TABLE nama_tabel;

Contoh:

TRUNCATE TABLE Mahasiswa;


Data Control Language

Data Control Language (DCL) adalah bahasa komputer dan subset SQL, digunakan untuk mengontrol akses ke data dalam database.

Contoh perintah DCL meliputi:

GRANT untuk mengizinkan user tertentu untuk melakukan tugas-tugas tertentu.

REVOKE untuk membatalkan sebelumnya izin diberikan atau ditolak.

Hak berikut dapat diberikan kepada atau dicabut dari pengguna atau peran:

· ALL, Hak akses untuk semua perintah.

· ALTER, Mengubah struktur tabel.

· CREATE, Membuat tabel.

· DELETE, Menghapus record/baris

· DROP, Menghapus database atau tabel.

· GRANT, Mengubah hak akses suatu account.

· INSERT, Menambahkan data pada suatu tabel.

· SELECT, Menampilkan data dari tabel.

· UPDATE, Mengedit atau memperbaiki data pada suatu tabel.

· USAGE, Tidak mendapat hak akses apapun

Untuk melihat nama account (user) yang telah terdaftar, anda dapat menggunakan perintah:

SELECT HOST, USER FROM USER;

Untuk mengatur hak aksesnya, perintahnya sebagai berikut:

GRANT hak_akses (field) ON nama_tabel TO nama_account@namahost IDENTIFIED BY 'password';

Contoh:

GRANT SELECT (nim) ON mahasiswa TO dosen@localhost;

Setidaknya satu hak akses harus diberikan, nama_tabel : merupakan nama tabel yang diberi hak. nama_account@namahost : akan memperbaharui hak akses jika account sudah ada sebelumnya. password : tidak perlu menggunakan tambahan IDENTIFIED BY 'password' apabila tidak ada perubahan password.

Dalam menghapus batasan hak akses yang sudah diatur dengan perintah GRANT, maka kita harus menggunakan REVOKE. Sintaksnya adalah sebagai berikut.

REVOKE hakakses (field) ON nama_tabel FROM nama_account@namahost;

Contoh:

REVOKE SELECT (nim) ON mahasiswa FROM dosen@localhost;

Baca Selengkapnya...