Jumat, 27 November 2009

Mengenal Firebird

Pendahuluan
Jika Anda membaca makalah ini, mungkin ini adalah pertemuan Anda yang pertama dengan SMBDR Firebird. Makalah ini akan menjelaskan pada Anda keistimewaan-keistimewaan yang dimiliki database Firebird. Di akhir makalah, saya yakin Anda akan penasaran untuk segera mengunduh installer-nya yg kecil dan ringan serta mencobanya sendiri.

Sejarah
Firebird diturunkan dari kode sumber Borland Interbase 6.0 yang kemudian dikembangkan lebih lanjut. Firebird bersifat open source (kode sumber terbuka) dan tidak berlisensi ganda. Tak peduli Anda akan menggunakannya untuk tujuan aplikasi komersil atau sumber terbuka atau gratis, Anda tak perlu bingung apalagi khawatir, Firebird sepenuhnya BEBAS digunakan!

Teknologi Firebird, berdasarkan kode asalnya, telah digunakan selama lebih dari 20 tahun. Hal ini menjadikan Firebird sebagai produk yang mapan dan stabil.
Keistimewaan Utama

Jangan tertipu dengan ukuran installer-nya! Firebird adalah sebuah SMBDR yang hebat dan penuh keistimewaan. Firebird mampu menangani database dari yang cuma berukuran beberapa KB hingga gigabita dengan unjuk kerja yang baik dan nyaris tidak membutuhkan perawatan selama bekerja!

Berikut daftar beberapa keistimewaan utama yang dimiliki Firebird:
* Mendukung penuh Stored Procedure dan Trigger
* Sepenuhnya mengikuti aturan transaksi yang ACID
* Mendukung integritas keterhubungan
* Dibangun dengan arsitektur multigenerasi
* Kebutuhan sumber daya yang relatif sangat kecil
* Mendukung penuh pemrograman berbasis bahasa SQL (PSQL)
* Mendukung pustaka fungsi luar
* Membutuhkan sedikit atau tanpa campur tangan Admin Database
* Nyaris tidak perlu konfigurasi, tinggal install dan gunakan!
* Komunitas yang besar sehingga ada banyak tempat untuk bertanya dan meminta bantuan
* Tersedia versi yang tidak membutuhkan server (embedded), cocok untuk membuat katalog di CDROM, aplikasi pengguna-tunggal, atau aplikasi evaluasi
* Ada lusinan aplikasi bantu dari pihak ketiga, termasuk aplikasi GUI untuk pengelolaan, aplikasi penggandaan (replikasi), dlsb
* Teknik penyimpanan yang hati-hati, pemulihan yang cepat, tidak membutuhkan catatan (log) transaksi!
* Tersedia banyak cara untuk mengakses database, bisa melalui API langsung, dbExpress, ODBC, OLEDB, penyedia .Net, JDBC langsung tipe 4, modul Python, pustaka PHP, Perl, dlsb
* Mendukung banyak sistem operasi, seperti Windows, Linux, Solaris, MacOS
* Mendukung pencadangan berkelanjutan
* Tersedia versi untuk arsitektur CPU 64 bit
* Sepenuhnya menerapkan kursor dalam PSQL
* Tersedia tabel untuk memantau database
* Mendukung Trigger untuk koneksi dan transaksi
* Mendukung tabel sementara

Coba Sekarang Juga!
Mencoba Firebird adalah pekerjaan yang mudah. Ukuran installer-nya biasanya kurang dari 5 MB (tergantung pilihan sistem operasi Anda) dan sepenuhnya otomatis. Anda bisa mengunduhnya dari situs utama Firebird. Lepasan stabil paling akhir adalah versi 2.1.

Anda akan melihat bahwa Firebird tersedia dalam 3 jenis: SuperServer, Classic, dan Embedded. Anda lebih baik memulai dari SuperServer. Saat ini, Classic disarankan untuk digunakan di mesin yang mendukung SMP atau beberapa situasi khusus lain. SuperServer berbagi sumber daya untuk banyak koneksi dan menggunakan thread untuk menangani setiap koneksi. Sedangkan Classic menggunakan satu proses server yang mandiri dan terpisah untuk setiap koneksi yang ditangani.

Jenis Embedded adalah variasi yang mencengangkan. Jenis ini memiliki seluruh keistimewaan server Firebird yang dibungkus hanya dalam beberapa berkas saja. Sangat mudah disebarkan, karena tidak perlu dipasang di server. Ideal untuk katalog di CDROM, aplikasi demo, atau aplikasi desktop tunggal.

Firebird dilengkapi dengan seperangkat aplikasi yang bisa membantu Anda membuat database baru, membaca statistik database, menjalankan perintah SQL, melakukan pencadangan dan pengembalian, dlsb. Jika Anda lebih suka menggunakan aplikasi basis GUI (antarmuka grafis), tersedia banyak sekali pilihan untuk itu, termasuk yang gratis. Daftar aplikasi pada akhir makalah ini bisa menjadi awalan yang bagus.

Di Windows, Anda bisa menjalankan Firebird sebagai service atau aplikasi biasa. Installer bisa menyediakan ikon di Control Panel yang bisa Anda gunakan untuk mengelola server (mulai, hentikan, dlsb).


Dokumentasi

Ada banyak sekali makalah, tanya-jawab, dan artikel yang mungkin Anda ingin baca di situs utama Firebird. Anda mungkin juga perlu mencari tahu apakah ada situs komunitas atau milis lokal di negara Anda, sehingga Anda bisa memperoleh bantuan dalam bahasa asli Anda.

Seluruh informasi dapat Anda cari di lingkungan situs utama Firebird. Anda juga bisa mengakses situs Firebird News untuk memperoleh berita terbaru terkait Firebird.

Untuk Segala Ukuran Database
Beberapa orang mengira bahwa Firebird adalah SMDBR yang hanya cocok untuk database kecil dan hanya diakses beberapa pengguna saja. Mereka salah! Firebird digunakan di banyak perusahaan besar dengan akses pengguna yang tinggi. Salah satu contoh yang bagus adalah seperti yang ditunjukkan di Softool’06 dimana Avarda (aplikasi ERP buatan Rusia) beroperasi menggunakan Firebird 2.0 jenis Classic dengan rata-rata 100 koneksi berkesinambungan mengakses database berukuran 120 GB berisi 700 juta record! Servernya adalah mesin SMP (2 prosesor, Dell PowerEdge 2950) dengan RAM 6 GB.
Aplikasi Bantu dan Komponen

Berikut adalah daftar aplikasi yang menarik seperti aplikasi bantu, driver, dlsb. Silakan periksa situs resmi Firebird untuk daftar yang lebih lengkap dan terbarui.

Aplikasi Administrasi GUI
* IBExpert (tersedia versi GRATIS untuk pribadi)
* FlameRobin (open source, bisa di Windows, Linux, MacOS X, dan FreeBSD)
* DB Workbench
* Firebird Development Studio

Driver dan Komponen Akses
* Komponen Delphi
o IB Objects
o FIBPlus
o UIB (Unified Interbase Components)
o Zeos
o MDO
* ODBC
o Gemini ODBC Driver
o Firebird ODBC Driver
o EasySoft
* OLEDB
o ZStyleGroup
o IBProvider
* Java
o JayBird
* .Net Provider
o Firebird .Net Provider
* C++
o IBPP
* Bahasa pemrograman lain
o PHP
o Python
o Perl

Aplikasi Penggandaan
* IBReplicator
* FBReplicator
* Replication Manager

Dukungan dan Tautan Sumber Daya
* Firebird News
* FireBase (bahasa Portugis)
* IBPhoenix
* CFLP (bahasa Portugis)
* Daftar milis dan forum komunitas
* IBase (bahasa Rusia)
* Firebird Developers Magazine

Lain-Lain
* Firebird 2.1 – Kemampuan Baru
* Firebird 2008 RoadMap
* Fyracle – Oracle mode Firebird

Makalah dan Dokumentasi
* Firebird Official Documentation Project (awalan dan panduan umum)
* FB Online Manual (Admin, PHP, PSQL, etc.)
* FirebirdFAQ

Anda berniat membantu?
Sebagaimana umumnya proyek open source, setiap orang boleh menyumbang dengan cara membantu mengembangkan kode program Firebird atau memperbaiki kesalahan program yang ada. Jika Anda ingin menjadi anggota Tim Pengembang Firebird, unduh kode program Firebird dari SourceForge dan pelajarilah. Anda juga boleh bergabung dalam milis fbdevel untuk bertemu dengan para pengembang yang lain (catatan: fbdevel bukan milis bantuan umum, jadi jangan meminta bantuan di situ, sebaiknya gunakan milis firebird-support untuk mendapatkan bantuan gratis dari komunitas).

Anda tidak perlu menjadi penulis program untuk bisa membantu proyek ini. Menjadi anggota Yayasan Firebird atau memberi sumbangan uang berarti Anda telah membantu pendanaan para pengembang inti sehingga mereka bisa mencurahkan waktu dan tenaga mereka untuk proyek ini.

Terima kasih atas waktu Anda…

Selasa, 24 November 2009

Cross-tab dengan mysql

Cross-tab atau cross tabulation adalah bentuk laporan statistik yang merupakan de-normalisasi dari data dab ditampilkan dalam bentuk kelompok (group) dari sebuah field dan kolomnya terdiri atas nilai-nilai yang berbeda dari suatu field lain.

Misalnya ada tabel mhs dengan isi sebagai berikut:
nama seks fakultas
Joni P Biologi
Hardi P Biologi
Anita W Psikologi
Kadir P Ilmu Budaya
Budiman P Teknik
Husin P Psikologi
Linda W Biologi
Kartono P Teknik
Kartini W Psikologi
Suciwati W Teknik
Legiman P Biologi
Kuntoro P Teknik
Susan W Biologi
Aniati W Teknik

Hasil cross-tab untuk kolom fakultas dan seks adalah:
fakultas P W total
Biologi 3 2 5
Ilmu Budaya 1 0 1
Psikologi 1 2 3
Teknik 3 2 5

Pembuatan cross-tab secara manual
Tabel cross-tab tersebut dapat diperoleh dengan memanfaatkan fasilitas
query yang ada pada MySQL. Namun sebelum melihat bentuk query-nya, kita lihat
dulu penyelesaian masalah tersebut secara manual.

Kita buat tabel dengan kolom fakultas, P, dan W. Setelah itu kita urut
satu persatu baris dalam tabel mhs. Setiap menemukan data fakultas yang belum
ada di tabel kita tulis nama fakultas tersebut pada kolom fakultas. Untuk setiap
baris kita tambahkan nilai 1 pada kolom P jika seks bernilai \’P\’ dan kita tambahkan
nilai 1 pada kolom W jika seks bernilai \’W\’. Hasil tabel sementara sebagai berikut:
fakultas P W
Biologi 1+1 0+0

Ternyata mudah. Prinsipnya adalah jumlahkan ke kolom P jika bernilai \’P\’ dan
jumlahkan ke kolom W jika bernilai \’W\’.

Query I
Jika kata yang ditulis tebal pada kalimat sebelum ini diganti dengan Bahasa Inggris hasilnya
adalah: sum ke kolom P if bernilai ‘P’ dan sum ke kolom W
jika bernilai ‘W’. Atau dalam SQL menjadi:

mysql> SELECT fakultas, SUM(IF(seks=\'P\',1,0)) AS P,
-> SUM(IF(seks=\'W\',1,0)) AS W
-> FROM mhs
-> GROUP BY fakultas;

Hasilnya:
fakultas P W
Biologi 3 2
Ilmu Budaya 1 0
Psikologi 1 2
Teknik 3 2

Bagaimana dengan kolom jumlah (total)? Mudah juga ubah sedikit SQL tersebut menjadi:

mysql> SELECT fakultas, SUM(IF(seks=\'P\',1,0)) AS P,
-> SUM(IF(seks=\'W\',1,0)) AS W,
-> COUNT(*) as total
-> FROM mhs
-> GROUP BY fakultas;

Hasilnya:
fakultas P W total
Biologi 3 2 5
Ilmu Budaya 1 0 1
Psikologi 1 2 3
Teknik 3 2 5

Mungkin timbul pertanyaan kenapa ingin mencacah baris/record menggunakan
sum bukan count? Ternyata count dan sum
cara kerjanya mirip dan bisa dikatakan sama untuk kasus tertentu. Coba SQL berikut:

mysql> SELECT COUNT(*) from mhs;

Hasilnya:
count(*)
24

Sekarang ganti \’count(*)\’ pada SQL tersebut dengan \’sum(1)\’:

mysql> SELECT SUM(1) from mhs;

Hasilnya:
sum(1)
24


Query II
Pada kasus tersebut nama kolom sudah diketahui sebelumnya yaitu \’P\’ dan \’W\’. Bagaimana jika
isi kolom tidak atau belum diketahui sebelumnya? Misalnya untuk kasus tersebut tetapi nama
kolom adalah nama fakultas sedang baris berisi seks.

Pertama kita ambil nama-nama fakultas dengan SQL:

mysql> SELECT distinct fakultas from mhs;

Hasilnya:
fakultas
Biologi
Psikologi
Ilmu Budaya
Teknik

Anda bisa menyusun SQL secara manual dengan memasukkan sum/if untuk setiap fakultas.
Namun demikian ada cara yang lebih baik. Ubah SQL tersebut menjadi:

mysql> SELECT distinct concat(\', sum(if(fakultas=\"\',fakultas,
-> \'\",1,0)) as `\',fakultas,\'`\') from mhs;

Hasilnya:
concat(’, sum(if(fakultas=\”\”‘,
, sum(if(fakultas=\”Biologi\”,1,0)) as `Biologi`
, sum(if(fakultas=\”Psikologi\”,1,0)) as `Psikologi`
, sum(if(fakultas=\”Ilmu Budaya\”,1,0)) as `Ilmu Budaya`
, sum(if(fakultas=\”Teknik\”,1,0)) as `Teknik`

Terlihat bahwa kita dapat menyusun kode SQL dengan SQL. Dengan cut and paste maka
dapat disusun SQL sesuai dengan keinginan yaitu:

mysql>select seks
->, sum(if(fakultas=\" Biologi\",1,0)) as `Biologi`
->, sum(if(fakultas=\" Psikologi\",1,0)) as `Psikologi`
->, sum(if(fakultas=\" Ilmu Budaya\",1,0)) as `Ilmu Budaya`
->, sum(if(fakultas=\" Teknik\",1,0)) as `Teknik`
->, count(*) as total
->from mhs
->group by seks

Hasilnya:
seks Biologi Psikologi Ilmu Budaya Teknik total
P 3 1 1 3 8
W 2 2 0 2 6

Minggu, 22 November 2009

AdoDb PHP

Berikut langkah-langkah menggunakan library ADOdb untuk koneksi ke datatabase MySQL

1. Kebutuhan software
* OS Linux/ Windows
* Apache Web Server
* PHP 4 atau 5
* Database (Pada contoh ini menggunakan library MySQL)
* Library ADOdb yang dapat didownload di http://adodb.sourceforge.net

2. Direktori aplikasi
* Tentukan direktori dokumen root anda (direktori tempat meletakan aplikasi web), pada sistem operasi linux biasanya dokumen root terletak dalam direktori /var/www/html/. Jika anda menggunakan paket XAMPP pada sistem operasi windows, maka dokumen root terletak dalam DIREKTORI_INSTALASI_XAMPP/htdocs/ dan jika XAMPP di linux ada pada direktori /opt/lampp/htdocs.
* Ektrak pustaka ADOdb hasil download dalam direktori aplikasi anda (misal myapp) yang berada didalam direktori dokumen root, misalnya /var/www/html/myapp.
* Hasil ekstrak akan menghasilkan direktori adodb/.

3. Buat basis data (Pada contoh ini database yang digunakan MySQL )
* Misal sudah ada informasi database:
o Database server : localhost (komputer local)
o User Database : rojul
o Password Database : r4h4si4
o Nama Basis Data : latihan
* Buat tabel, misal tabel buku_tamu, dengan field :
o id : integer auto_increment primary key
o Nama : varchar(32)
o Pesan : text
o Tanggal : date

4. Memulai kode program
* Buat Kode Program Berikut ini pada direktori myapp dan beri nama adokoneksi.php :

include('adodb/adodb.inc.php');
// definisikan software database
$driver = 'mysql';

// definisikan variabel database
define("DBHOST","localhost");
define("DBUSER","rojul");
define("DBPASS","r4h4si4");
define("DBNAME","latihan");

$db = ADONewConnection($driver); # eg. 'mysql' or 'oci8'
$db->debug = true;

// Koneksi Ke Database
//$db->Connect($server, $user, $password, $database);
$status = $db->Connect(DBHOST,DBUSER,DBPASS,DBNAME);

if ($status ) echo '

Koneksi Sukses

'
else echo '

Koneksi Gagal

' . $db->ErrorMsg();
?>

5. Akses lewat BrowserBuka browser anda arahkan url ke file adokoneksi.php,misalnya alamat urlnya : http://localhost/myapp/adokoneksi.phpJika semua lancar, seharusnya dalam browser anda akan muncul halaman web yang berisi :
“Koneksi Sukses “

6. Query ke database :
* Diasumsikan telah ada table pada database anda, misal table members
* Buat file dalam myapp, beri nama file list_member.php, Berikut isi kode programnya :

// sertakan file koneksi
include_once 'adokoneksi.php';

// definisikan query
$sql = "select * from members";

// eksekusi query dan simpan dalam object resultset
$rs=&$db->Execute( $sql );

// populasi data
while (!$rs->EOF)
{
echo $rs->fields['idmember'].’ | ‘. $rs->fields['username'];
echo ‘
’;
$rs->moveNext();
}
?>

* Akses melalui browser file list_member.php maka akan tampil data members

ADO-DB PHP

ADOdb adalah kumpulan pustaka program (library) database untuk bahasa pemrograman PHP dan Python yang dikembangkan berdasarkan konsep ActiveX Data Objects (ADO) milik Microsoft. Dengan ADOdb memungkinkan pengembang software (programmer) menuliskan kode program untuk aplikasi yang dibuat menjadi lebih konsisten dalam berkomunikasi dengan sebuah database. Keuntungan utama dari menggunakan pustaka ADOdb adalah perubahan database pada sisi aplikasi dimungkinkan dengan minimnya perubahan kode program atau perubahan kode program hanya terjadi pada baris kode untuk koneksi ke database saja.

Saat ini ADOdb telah mensupport beberapa vendor database seperti : MySQL, PostgreSQL, Interbase, Firebird, Informix, Oracle, MS SQL, Foxpro, Access, ADO, Sybase, FrontBase, DB2, SAP DB, SQLite, Netezza, LDAP, and generic ODBC, ODBTP. The Sybase, Informix, FrontBase and PostgreSQL, Netezza, LDAP.

ADOdb juga telah mensupport secara penuh PHP5, versi terakhr ADOdb adalah versi 4990.

Berikut langkah-langkah menggunakan library ADOdb untuk koneksi ke datatabase MySQL
* Buat Kode Program Berikut ini adokoneksi.php :

include('adodb/adodb.inc.php');
// definisikan software database
$driver = 'mysql';

// definisikan variabel database
define("DBHOST","aquarius-db");
define("DBUSER","bps000");
define("DBPASS","r4h4si4");
define("DBNAME","bps000db");

$db = ADONewConnection($driver); # eg. 'mysql' or 'oci8'
$db->debug = true;

// Koneksi Ke Database
//$db->Connect($server, $user, $password, $database);
$status = $db->Connect(DBHOST,DBUSER,DBPASS,DBNAME);

if ($status ) echo '

Koneksi Sukses

'
else echo '

Koneksi Gagal

' . $db->ErrorMsg();
?>

Buka browser anda, arahkan url ke file adokoneksi. php,misalnya alamat urlnya : http://noc.bps.go.id/adokoneksi.phpJika semua lancar, seharusnya dalam browser anda akan muncul halaman web yang berisi :
“Koneksi Sukses “

Sejarah SQL

Sejarah dari SQL tidak lepas dari sejarah project dari IBM yang bernama System R. Tujuan dari project ini adalah untuk penelitian Relational ( hubungan ) Databases Server. Project ini dibuat pada laboratorium penelitian IBM di San Jose California. Project tersebut diniatkan untuk mendemonstrasikan keunggulan penggunaan fitur dari relasi pemodelan yang akan diterapkan pada suatu sistem untuk memenuhi kebutuhan database modern server.

Project System R ini telah memecahkan permasalahan yaitu permasalahan tentang tidak adanya bahasa baku pada relasional database. Sehingga dengan adanya bahasa yang baku, setiap database dapat diacu dengan mudah. Sequel adalah nama bahasa yang diasung oleh adanya project System R ini yang didesain oleh R.F Boyce dan D.D. Chamberlin. Dalam pembuatan project tersebut, bahasa Sequel berganti nama menjadi SQL karena kata “Sequel” bermasalah dalam trademark.

Project System R terbentuk dari 3 tahap, tahap pertama dinamakan tahap ke-0 sekitar tahun 1974-1975. Pada tahap ini hanya sebagian kecil yang di-implementasikan pada SQL. Sebagai contoh, fungsi JOIN ( menggunakan data dari beberapa table) belum diterapkan namun hanya single user version yang dulu diterapkan. Tujuan pada tahap ini adalah untuk mengetahui apakah implementasi pada beberapa sistem dapat diterapkan.

Tahap ke-1 dimulai pada tahun 1976-1977. Semua kode program ditulis pada tahap ke-0 sebagai awalan. Pada tahap ke-1 ini terdiri dari keseluruhan sistem, hal ini berarti pada tahap ini telah banyak hal baru dibuat. Sebagai contoh telah terbentuknya multiuser dan penggunaan JOIN.Tahap terakhir dari System R adalah sistem ini telah terinstal di beberapa komponen dalam IBM dan sebagian besar dari client IBM. Tahap ini terjadi sekitar tahun 1978-1979.

Para pengembang menggunakan pengetahuan yang dimiliki dan teknologi dari penerapan pada 3 tahap untuk membuat SQL/DS. SQL/DS adalah relational database server yang bersifat komersil pertama milik IBM. Pada tahun 1981, SQL/DS menjadi paket penjualan dari sistem operasi DOS/VSE, dan versi VM/CMS muncul tahun 1983. Pada tahun yang sama DB2 juga telah dilauncing. Sekarang ini DB2 telah banyak digunakan oleh beberapa sistem operasi.

IBM telah mempublikasikan idenya mengenai pengembangan dari System R pada suatu konferensi atau seminar mengenai relational database server sehingga perusahaan lain seperti Oracle menggunakan SQL sebagai bahasa databasenya. Dalam beberapa tahun sekarang ini telah muncul produk dari SQL pada dunia IT. Dan akhirnya SQL menjadi bahasa yang compatible dengan semua sistem operasi baik yang besar maupun yang kecil.

Referensi : Addison Wesley, SQL for MySQL Depelovers.
Semoga bermanfaat.

Foreign Key Di MySQL

Dalam relational basis data, terdapat istilah kunci utama (primary key) dan kunci tamu (foreign key). Tujuan utama dari adanya kedua istilah tersebut adalah pengidentifikasian tiap table dan kejelasan hubungan antara 2 atau lebih table. Primary key adalah satu atau beberapa kolom pada table yang mengidentifikasikan tiap kolom dan baris pada table tersebut. Sedangkan Foreign Key adalah satu atau beberapa kolom pada table yang merupakan primary key pada table satu namun diletakan pada table dimana tablenya berelasi dengan table dirinya.


Pada gambar diatas, nim pada table mhs adalah primary key. Sedangkan primary key pada table matkul adalah id_matkul. Lalu id_matkul menempel pada table mhs yang kita sebut sebagai foreign key.

Biasanya saya menyebut table yang berisi foreign key sebagai table anak karena table tersebut mengait pada table lain. Sedangkan table yang terkait saya sebut sebagai table induk. Pada contoh table di atas, mhs sebagai table anak sedangkan matkul sebagai table induk.
Contoh isi dari kedua table tersebut dapat dilihat dibawah ini.

Table mhs
Nim Nama Alamat Id_matkul
10107644 Adiputra Artupida Bekasi IF123
10107634 Hermansyah Bandung IF222
10107635 Budianto Nugroho Semarang IF111
10107636 Silan Bekasi IF333

Table Matkul
Id_matkul Nm_matkul Jml_sks
IF123 Pemrograman Web 3
IF111 Pemrograman C 3
IF222 Pemrograman Java 3
IF333 Pemrograman OOP 3

Saya langsung praktikan pada mysql. Berikut adalah codenya :

CREATE TABLE IF NOT EXISTS matkul(
id_matkul CHAR(5) NOT NULL PRIMARY KEY,
nm_matkul VARCHAR(30) NOT NULL,
jml_sks INT(3) NOT NULL
);



CREATE TABLE IF NOT EXISTS mhs(
nim CHAR(8) NOT NULL PRIMARY KEY,
nama VARCHAR(50) NOT NULL,
alamat VARCHAR(60) NOT NULL,
id_matkul CHAR(5),
FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul)
);

INSERT INTO mhs VALUES
(‘10107633′,’Adiputra Artupida’,'Bekasi’,'IF123′),
(‘10107634′,’Hermansyah’,'Bandung’,'IF222′),
(‘10107635′,’Budianto Nugroho’,'Semarang’,'IF111′),
(‘10107636′,’Silan’,'Bekasi’,'IF333′);

INSERT INTO matkul VALUES
(‘IF123′,’Pemrograman Web’,3),
(‘IF111′,’Pemrograman C’,3),
(‘IF222′,’Pemrograman Java’,3),
(‘IF333′,’Pemrograman OOP’,3);


Perhatikan baris kode pada table mhs,

FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul)

Itulah cara mendefinikan foreign key pada mysql. Id_matkul didefinisikan sebagai foreign key yang mereferensikan(mengacu) pada table matkul pada kolom id_matkul.

Yang ingin saya fokus bicarakan pada artikel ini adalah bagaimana bila data matkul misalnya data dengan id_matkul=’IF123’ dihapus? Apakah data mahasiswa yang mengambil id_matkul akan dihapus juga atau akan dibiarkan apa adanya?

DELETE FROM matkul WHERE id_matkul=’IF123’

Maka pasti terjadi error

“Cannot delete or update a parent row: a foreign key constaint fails (‘test’.’mhs’,CONSTRAINT ‘mhs_ibfk_3’ FOREIGN KEY (‘id_matkul’) REFERENCES ‘matkul’ (‘id_matkul))

Maksudnya adalah tidak dapat menghapus atau mengupdate kolom pada table induk karena bereferensi pada table mhs.
Lalu bagaimana solusinya?

Pada MYSQL, kita harus menambahkan perintah ON DELETE [opsi] dan ON UPDATE [opsi]pada table yang mereferensikan foreign key. Opsi pada perintah tersebut jelasnya dibawah ini.

1. RESTRICT, Jika tabel anak berisi nilai dalam kolom yang mengkait yang nilainya sama dengan di kolom terkait pada tabel induk, baris dalam tabel induk tidak bisa dihapus, dan nilai di kolom terkait tidak dapat diupdate. Ini adalah opsi default jika klausa ON DELETE atau ON UPDATE tidak dispesifikasikan.

2. CASCADE, Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk dihapus ketika barisbaris yang berkaitan dihapus dari tabel induk. Baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk diupdate ketika nilai-nilai yang berkaitan diupdate dalam tabel induk.

3. SET NULL, Nilai-nilai dalam kolom yang mengkait dari tabel anak diset ke NULL saat baris-baris dengan data terkait dalam tabel induk dihapus dari tabel induk atau ketika data terkait dalam tabel induk diupdate. Untuk menggunakan opsi ini, semua kolom-kolom yang mengkait dalam tabel anak harus mengijinkan nilai NULL.

4. NO ACTION Tidak ada aksi yang diambil dalam tabel anak ketika baris-baris dihapus dari tabel induk atau nilai-nilai dalam kolom terkait dalam tabel induk diupdate.

5. SET DEFAULT Nilai-nilai dalam kolom-kolom yang mengkait dari tabel anak diset ke nilai default mereka ketika baris-baris dihapus dari tabel induk atau kolom terkait dari tabel induk diupdate.

Ketika kita mendefinisikan foreign key dengan
FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul)
Maka perintah ON DELETE dan ON UPDATE nya ber-Opsi RESTRICT karena defaultnya dari references foreign key, yang artinya tidak boleh dihapus atau diupdate. Itulah yang menyebabkan error bila kita mendelete atau mengapdate table induk.

Coba sekarang kita ubah struktur table dari mhs dengan merubah references foreign key dengan opsi ON DELETE dan ON UPDATE CASCADE.


Karena kita menggunakan OPSI CASCADE pada ON DELETE dan ON UPDATE nya maka bila kita menghapus salah satu kolom pada table induk maka table anak pun akan terhapus juga. Terlihat bahwa data mahasiswa yang bernama Adiputra Artupida dihapus karena Adiputra Artupida mengambil matkul dengan id ‘IF123’ dimana id tersebut telah dihapus pada table matkul.

Yang lainnya silakan improve sendiri. Saran kalau kita ingin merelasikan foreign key biasakan menggunakan perintah ON UPDATE dan ON DELETE dengan OPSI yang disesuaikan dengan kebutuhan.

Tentang ADOdb dan Class MySQL, SQLite (PHP)

Ketika kita membangun aplikasi berbasis web yang dinamis, semisal sistem informasi manajemen atau yang lebih sering dikenal dengan sebutan SIM, maka tidak pelak dibutuhkan sebuah bahasa pemrograman dan database. Dan dalam hal ini akan dibahas salah satu komponennya yaitu komunikasi bahasa PHP dengan database MySQL. Untuk melakukan manipulasi data pada database, maka sudah disediakan fungsi-fungsi dalam PHP, namun akan lebih praktis lagi jika fungsi-fungsi yang terpisah itu disusun dalam sebuah fungsi yang dapat dipanggil secara berulang-ulang. Dan fungsi-fungsi ini kita bungkus dalam sebuah class, sehingga dalam penggunaannya kita tinggal mengincludekannya saja.

Dan inilah yang dilakukan oleh ADOdb, namun lebih dari itu ia mendukung tidak hanya satu database saja.

Secara sederhana ADOdb ini adalah sebuah layer tambahan yang menjembatani berbagai database – MySQL, Oracle, MSQL, Sybase, Informix, PostgreSQL, FrontBase, SQLite, Interbase, Foxpro, Access, ADO, DB2, SAP DB dan ODBC – dengan bahasa pemrograman PHP, sehingga dengan mudah kita dapat menggunakan dan beralih database sesuai yang kita perlukan. Secara skematis hal ini dapat digambarkan di bawah ini.


Jika PHP telah menyediakan fungsi-fungsi manipulasi untuk masing-masing database, maka ADOdb berperan sebagai Abstraction layer seperti terlihat pada gambar di atas. Dalam mengaplikasikannya kita gunakan contoh database dengan nama adodb dan tabel agama_ref dengan database MySQL. Untuk instalasi Apache, MySQL dan PHP anda dapat menggunakan XAMP, WAMP, atau bahkan menginstallnya satu persatu. Di sini saya gunakan WAMP.


Nah, di atas kita sudah memiliki sebuah database adodb dan tabel agama_ref dengan 5 data di dalamnya, yang selanjutnya akan kita gunakan dalam artikel ini.

Kita akan mencoba membuat program PHP dengan memanfaatkan ADOdb untuk menampilkan data dari database yang telah dibuat. Maka secara sederhana, file nya adalah sebagai berikut dan kita beri nama file ini contoh.php.


Sesuai isi file contoh.php di atas, kita pakai beberapa fungsi ADOdb, diantaranya adalah :

1. Mengincludekan ADOdb ke dalam program yang kita buat [baris ke-2].
2. Mendeklarasikan kelas ADOdb dengan parameter mysql sebagai databasenya [baris ke-3].
3. Memanggil fungsi connect dengan memberikan parameter host, user, password dan database yang digunakan, dalam hal ini akan menjalankan mysql_connect dan mysql_select_db [baris ke-4].
4. Menjalankan query SQL, untuk mengambil semua data dari tabel agama_ref, dalam hal ini akan menjalankan mysql_execute [baris ke-5].
5. Untuk mendapatkan hasil berupa array 2 tingkat [baris ke-6].
6. Kemudian baris ke-8 sampai 12 adalah untuk menampilkan data yang telah didapatkan.

Maka jika dijalankan dalam browser akan didapatkan hasil sebagai berikut :


Dengan menggunakan ADOdb ini, jika kita kemudian akan melakukan migrasi dari MySQL ke PostgreSQL atau oracle atau bahkan database lainnya, maka kita tinggal mengganti baris ke-3 [nama database yang digunakan] dan ke-4 [fungsi untuk melakukan koneksi] dan file kita masih dapat memberikan hasil yang sama dan berjalan dengan baik.

Beberapa fungsi yang sering saya gunakan dalam manipulasi database, antara lain :
1. Melacak id terakhir yang dimasukkan dalam database secara autoincrement, untuk memanggilnya digunakan fungsi $db−>Insert_ID();
2. Melakukan transaction, untuk mengesekusi beberapa query atau membatalkannya jika terdapat beberapa kekeliruan. Fungsi yang digunakan $db−>BeginTrans(); kemudian beberapa query dan diakhiri dengan $db−>CommitTrans(); atau $db−>RollbackTrans();
3. Melakukan insert, update dan delete dengan fungsu $db−>Execute();

Sebagai catatan, transaction hanya dapat diterapkan pada tabel dengan tipe innodb. Jika anda hanya menggunakan ADOdb untuk database MySQL, maka ada baiknya jika hanya menyertakan file-file yang memang dipakai saja, diantaranya adalah
* adodb.inc.php
* adodb-lib.inc.php
* adodb-time.inc.php
* drivers/adodb-mysql.inc.php
* license.txt (untuk alasan legal)
* adodb-php4.inc.php
* adodb-iterator.inc.php

Anda dapat mengexplore lebih jauh fungsi-fungsi yang disuport oleh ADOdb dengan mendownload sourcenya di sini atau dapat didownload dari internet untuk mendapatkan versi terakhinya.

Namun saya juga telah mengembangkan sebuah class yang dapat melakukan fungsi-fungsi di atas untuk database mysql dan sqlite. Jika anda tertarik dapat anda download di sini.

Di dalamnya terdapat file contoh untuk mamanfaatkan class tersebut.

Rabu, 18 November 2009

Jalan Buntu...?

Pernahkan Anda menemui jalan buntu? Sebenarnya jalan buntu itu adalah suatu istilah untuk sebuah jalan yang tertutup. Hanya saja, orang sering mendramatisir seolah tidak ada jalan lain lagi untuk mencapai tujuan kita. Jika sebuah jalan buntu, memang tidak ada jalan keluar jika kita hanya berpikir itu satu-satunya jalan. Padahal, di luar sana masih banyak jalan yang bisa kita lalui.

Kesalahan kita ialah seringkali mempersempit pandangan kita. Seperti uraian diatas, pandangan kita sempit, kita hanya memikirkan jalan tersebut saja, sehingga seolah peluang kita mencapai tujuan telah sirna. Namun, jika kita mau memperluas pandangan, sebenarnya masih banyak jalan-jalan lain yang bisa kita lalui.
Jalan buntu adalah suatu analogi sebuah masalah yang kita hadapi dalam kehidupan kita. Dalam bisnis, karir, sosial, keluarga, dan sebagainya. Banyak orang begitu stress menghadapi masalah, mengatakan sudah menemui jalan buntu, dan menyerah begitu saja. “Mau apa lagi?” katanya.

Hal ini diperparah oleh ungkapan yang mengatakan bahwa peluang hanya datang satu kali. Sehingga saat seseorang kehilangan peluang kerja, peluang bisnis, dan peluang lainnya dia pikir tidak ada lagi peluang lain sehingga dia stress dan ketakutan kehilangan peluang yang ada di depan matanya.

“Peluang masuk ke perusahaan ini hanya sekali. Jika sekarang gagal, maka kita tidak akan pernah lagi diterima di perusahaan ini.”

Betul, peluang untuk masuk ke perusahaan tersebut memang satu kali. Jika pandangan kita hanya perusahaan tersebut, maka kita akan berpikir peluang hanya datang satu kali. Namun, cobalah rentangkan pikiran kita. Kita akan temukan bahwa peluang kerja di perusahaan lain masih banyak.

Jika kita merentangkan pikiran kita lebih luas lagi, ternyata bukan hanya bekerja cara kita mencari nafkah. Anda bisa bisnis. Banyak peluang bisnis di sekitar kita. Kita tinggal pilih dan bisa jadi kita akan mendapatkan bisnis yang memberikan penghasilan jauh lebih besar dibanding kita bekerja di perusahaan idaman kita.

“Tapi saya tidak punya modal!”

Sekali lagi, Anda masih menyempitkan pandangan Anda. Pandangan Anda hanya sebatas bahwa bisnis itu perlu modal uang saja. Rentangkan lagi pikiran kita. Tanyakan 2 pertanyaan ini: “Bagaimana saya memulai bisnis tanpa modal?” dan “Bagaimana saya mendapatkan modal?” Jika belum bisa menjawab pertanyaan ini, rentangkan kembali pikiran Anda.

Teruslah untuk melatih mengembangkan pandangan Anda. Perluas cakrawala Anda sehingga kita akan melihat bahwa jalan itu tidak satu. Semakin tinggi kita naik ke atas gunung atau gedung bertingkat, kita akan melihat bahwa sebenarnya banyak jalan yang bisa kita lalui. Jika kita tidak melihat banyak jalan, artinya, karena kita berdiam diri di bawah. Naiklah.

Selasa, 17 November 2009

Joomla Tutorial Series – Managing Content

Pada seri pertama tutorial ini kita telah membahas bagaimana menginstall joomla! 1.5 dan saya yakin anda sudah sukses menginstallnya.

Saya harap anda seperti saya yang memulai dengan fresh joomla!, atau saya tidak memilih untuk menginstall sample data. Yang artinya, website saya masih kosong melompong.

Nah, kali ini kita akan membahas bagaimana membuat, mengedit dan menghapus content serta membuat menu yang merujuk ke article (sengaja saya membahasakan article supaya saya dan anda biasa) tersebut.
Sebelumnya, kita akan membahas dulu logika joomla!, ya, sebagaimana sebuah keluarga, joomla memiliki sebuah struktur dan prioritas.

Logika Joomla!
Joomla! mengatur article atau content lainnya dalam sebuah hirarki: Section >> Category >> Article.
Ini berarti, kita harus membuat section lebih dahulu baru bisa membuat category, dan barulah article dikelompokkan dalam sebuah category.

Kebalikannya adalah saat menghapus sebuah section atau category. Sebelum dapat menghapus section, anda harus menghapus category milik section yang bersangkutan.Dan sebelum menghapus category, anda harus menghapus semua article milik kategori yang bersangkutan. Pastikan, tidak ada item milik sebuah kategori yang masih ada di dalam trash.

Anda bisa membuat section, category dan article sebanyak mungkin, dan sebaiknya, anda membuat akses menu.

Membuat Section Baru
Seperti telah dibahas di atas, section adalah induk dari kategori. Agar memudahkan dalam mengorganisasi struktur website anda, ada baiknya anda membuat section dengan lingkup yang tidak terlalu luas (dan juga tidak terlalu sempit ?).
Maksudnya, jika section yang anda buat terlalu luas lingkupnya, mungkin anda akan bingung meletakkan sebuah artikel yang memiliki cakupan yang luas dan seharusnya lebih cocok menjadi category. Begitu juga sebaliknya.

Bagaimana membuat section baru?

1. Anda bisa memulai dari control panel administrator anda, klik thumbnail section manager. Atau jika anda tidak berada di control panel, klik saja Content >> Section Manager di menu administrator anda.jooomla section manager
2. Pada panel section manager, anda bisa mengklik ikon New.
3. Pada jendela berikutnya, isilah nama section yang anda inginkan. Nama alias sections bisa anda abaikan karena akan diisi otomatis. Anda juga harus menentukan apakah section tersebut bisa diakses public ataukah hanya untuk kalangan tertentu saja (registered / special users).
4. Jika anda sudah selesai, klik Save atau Apply untuk menyimpan. Klik Cancel untuk membatalkan.

Membuat Category
Langkah-langkah membuat category hampir sama dengan membuat section. Bedanya, anda memilih tombol Content >> Category Manager.


Membuat Article
Untuk membuat article, langkahnya juga tidak jauh beda.

1. Silahkan pilih menu Content >> Article Manager atau dari control panel, New Article.


Yang paling penting harus anda isi adalah judul article, nama alias (bisa anda lewatkan!), memilih apakah dienable (boleh dilihat) atau tidak, apakah article akan tampil di halaman depan atau tidak.


3. Pilih juga section dan kemudian category yang sesuai
4. Pada bagian sebelah kanan terdapat beberapa field isian parameter dan informasi metadata untuk keperluan SEO. Sebaiknya anda mengisi bagian metadata ini.
5. Klik Save atau Apply jika anda sudah selesai. Klik Cancel untuk membatalkan.

Bagaimana Menambahkan Gambar
Gambar atau photo dapat anda tambahkan dengan mengklik ikon gambar pada text editor TinyMCE. Sayangnya, tidak ada fasilitas upload-nya sehingga gambar yang akan anda gunakan haruslah telah anda upload dan anda ketahui alamat url-nya.

Untuk menambahkan gambar dari server lokal, simpan/upload gambar anda menggunakan FTP client ke direktori images/story di instalasi joomla anda. Atau jika anda hanya mengupload satu gambar, anda bisa menggunakan tombol Image di bawah text editor anda.

Setelah anda mengklik tombol ini, akan muncul jendela popup yang menutupi layar browser.


Klik gambar yang diinginkan dari daftar gambar yang ada, masukkan deskripsi dan title yang sesuai. Pilih juga posisi gambar terhadap teks (float) apakah kiri atau kanan.

Membuat Pembatas Article atau Read More
Pembatas article atau lebih kita kenal dengan read more akan membagi article menjadi dua bagian. Bagian preview (excerpt) dan bagian sisa article yang akan tampil setelah kita mengklik link read more.


Untuk membuat pembatas article, letakkan kursor mouse anda pada tempat yang anda inginkan, dan klik tombol readmore pada bagian bawah text editor atau pada mode HTML, tambahkan tag ini:




Membuat Pembatas Halaman
Pembatas halaman fungsinya sama seperti namanya, yaitu untuk memecah article menjadi beberapa halaman. Ini penting untuk sebuah article yang sangat panjang.

Caranya, letakkan kursor pada tempat yang diinginkan, dan klik tombol PagBreak di bawah editor.

Pada layar, anda akan diminta memberikan Page title dan Table of content Alias. Page title akan menjadi sub judul pada halaman kedua dan Table of content alias akan menjadi judul link pada index artikel.add joomla page break


Atau jika anda menggunakan mode HTML editor, anda bisa menyisipkan tag ini:



Seri Tutorial Joomla: Panduan Installasi Joomla 1.5

Seri Tutorial Joomla ini adalah seri pertama dari serangkaian tutorial joomla 1.5 yang saya rencanakan. Penyebabnya, karena saya sedang belajar joomla dan juga sedang mengelola sebuah website dengan joomla.

Joomla yang kita bahas di sini adalah versi stable terbaru, versi 1.5.x. X kecil pada versi tadi mewakili angka release minor, biasanya merupakan patch atau perbaikan fitur. Saat tutorial ini ditulis, angkanya sudah menjadi 2. So, sebaiknya anda menggunakan joomla versi 1.5.2.
Apakah Joomla itu?

Sejauh ini joomla adalah:

Joomla! is a free open source framework and content publishing system designed for quickly creating highly interactive multi-language Web sites, online communities, media portals, blogs and eCommerce applications.

Joomla! provides an easy-to-use graphical user interface that simplifies the management and publishing of large volumes of content including HTML, documents, and rich media. Joomla! is used by organisations of all sizes for Public Web sites, Intranets, and Extranets and is supported by a community of thousands of users.

Jadi, joomla itu adalah cms pintar, yang bisa menjadi apa saja, tergantung anda. Meskipun serba bisa, power joomla akan terlihat saat kita menggunakannya untuk content publishing system for websites.

Sebagai blog jika dibandingkan dari sisi kenyamanan, lebih nyaman menggunakan wordpress daripada joomla sebagai blog engine.
Pra-Instalasi Joomla

Sebelum mulai menggunakan joomla, anda harus menginstall joomla lebih dulu. Sebelum menginstall joomla anda akan membutuhkan:

1. Server Apache.
Lebih baik lagi jika server itu mendukung modul rewrite, dan lain-lain yang menunjang kinerja joomla.
2. Database MySQL.
MySQL adalah optimized database untuk joomla. Database lain bisa digunakan, tetapi memerlukan setup ekstra.
3. Kopian paket instalasi joomla.
Download dari situs joomla.org jika anda belum punya.

Jika anda sudah memiliki web dan hosting sendiri (komersil), anda bisa menggunakan tool fantastico untuk menginstal joomla. Hanya saja, anda tidak akan mendapat manfaat banyak dari tutorial instalasi ini.

Selanjutnya, buka halaman akses phpmyadmin (jika anda menggunakan XAMPP, akses melalui alamat http://localhost/phpmyadmin.). Buatlah sebuah database baru. Pada contoh, saya menggunakan nama ltguide.



Menginstal Joomla

Saya menginstal joomla di lokal webserver saya. Saya menggunakan XAMPP. Untuk kebutuhan tutorial ini, saya mengekstrak paket installer joomla di directory lomboktravelguide.
Untuk memulai, silahkan buka browser firefox anda dan akses http://localhost/lomboktravelguide.


Langkah Pertama. Memilih Bahasa Instalasi

Anda akan diminta memilih bahasa instalasi yang sesuai preferensi anda.


Langkah kedua adalah melakukan pengecekan terhadap kemampuan server anda

Pada gambar, semua requirements telah terpenuhi, ditandai dengan tulisan berwarna hijau. Jika ada salah satu requirements yang ternyata berwarna merah, silahkan anda perbaiki. Misalkan parameter php register globals-nya on, anda buka php.ini anda dan rubah menjadi off.
Langkah ketiga adalah menyetujui lisensi yang digunakan joomla.

Joomla menggunakan lisensi GPL. Artinya, joomla tidak bertanggung jawab terhadapa kerusakan software dan kehilangan data karena joomla didistribusikan sebagai mana adanya (as is). Bukan berarti joomla tidak memiliki quality control lho!

Jika anda tidak setuju dengan lisensinya, tutup browser anda, jangan install joomla.



Langkah keempat adalah melakukan konfigurasi database.

Biasanya anda akan diminta memasukkan informasi alamat akses server myqsl, biasanya sih localhost. Kemudian username, password dan database yang diassign dengan username tadi. Assign itu artinya, username tersebut memiliki hak untuk mengelola database tersebut. Biasanya penting dan banyak digunakan di web server komersial.

Satu hal lagi adalah, pada mode advanced, anda bisa memilih prefix tabel yang akan digunakan. Ini bermanfaat untuk anda yang memiliki web server dengan jumlah database yang diperbolehkan terbatas. Anda bisa menggunakan prefix yang berbeda untuk instalasi CMS yang berbeda pada database yang sama, tidak cuma joomla.


Langkah kelima adalah mengkonfigurasi FTP Layer.

FTP layer adalah kemampuan joomla untuk mengatur permission file-file di instalasinya sendiri. Ini penting, misalnya untuk melindungi file konfigurasi atau manajemen file lainnya. Masukkan username dan password yang sesuai. Sebelum melanjutkan, sebaiknya anda mengetes dulu apakah koneksi ftp sudah benar dan oneksi bisa dilakukan apa tidak dengan mengklik “Verify FTP Settings”.


Updated: Jika anda menginstall di localhost, setting ini tidak perlu diisi karena sifatnya opsional
Langkah keenam adalah mengkonfigurasi website anda.

Masukkan nama website anda, password admin yang anda inginkan serta email yang akan digunakan untuk administrasi.


Jangan lupa, jika anda belum ahli sama sekali dan tidak memiliki gambaran seperti apa website anda nantinya, sebaiknya anda menginstall sampel data default terlebih dahulu.
Silahkan klik tombol “Install Sample Data” sebelum melanjutkan.

Finish!, selamat anda telah memiliki website baru dengan joomla sebagai engine-nya.


Jika anda ingin mengakses administrasi website anda, anda bisa mengaksesnya di http://localhost/instalasi_joomla/administrator.


Sedangkan website anda bisa diakses di http://localhost/instalasi_joomla. Sebelumnya, pastikan anda merubah file configuration.php di root directory instalasi anda menjadi read only. Juga sebaiknya anda menghapus direktori installation, bukan sekedar me-rename-nya.

OK, sampai disini dulu seri pertama tutorial joomla kali ini. Di seri ke-2 kita akan mulai dengan membuat menu, content, dan sebagainya.

Menginstall dan Mensetting LAMPP atau XAMPP

LAMPP (Linux, Apache, MySQL, PHP dan Perl) adalah aplikasi yang bagus sekali dan bersifat portable. Artinya, anda bisa menginstallnya di sembarang sistem, selama anda memiliki akses root.
Fitur LAMPP/XAMPP

Release terbaru LAMPP/XAMPP adalah versi 1.6.5

Menyertakan segudang aplikasi, antara lain:

* Apache 2.2.6
* MySQL 5.0.51
* PHP 4.4.7
* PHP 5.2.5
* Perl 5.8.7
* ProFTPD 1.3.1
* phpMyAdmin 2.11.3
* Webalizer 2.01
* SQLite 2.8.17 (for PHP4 + PHP5)
* SQLite 3.3.17 (for PHP5 PDO SQLite)
* phpSQLiteAdmin 0.2
* FPDF 1.53

Mendownload LAMPP/XAMPP

Download file binarynya di situs Apache Friend.
Instalasi LAMPP/XAMPP

Ekstrak file binarynya di direktori /opt sebagai root.

sudo tar -xjvf xampp-xxx.tar.gz /opt

Dari hasil ekstrak akan terbentuk direktori lampp, kemudian rubah permissionnya menjadi 775

sudo chmod -R 775 /opt/lampp


Menjalankan LAMPP/XAMPP

Untuk menjalankan LAMPP/XAMPP, caranya mudah.
Melalui terminal, jalankan sebagai root:

sudo /opt/lampp/lampp start

LAMPP akan menjalankan service http server (apache2), database server (mysql 5), Server Side Scripting (PHP 5 dan Perl), FTP service (ProFTP).

Dan jika instalasi sukses, anda bisa mengakses server anda di alamat http://localhost atau http://nama_domain_lokal (mis: http://lomedia).


Sedangkan file-file server diletakkan di direktori:

/opt/lampp/htdocs

Untuk menghentikannya,

sudo /opt/lampp/lampp stop
Perintah LAMPP/XAMPP Lainnya

Perintah LAMPP/XAMPP berbasis commandline:
cara penggunaan: sudo /opt/lampp/lampp [action]

Action yang bisa anda pilih:

start
Start XAMPP (Apache, MySQL and eventually others)

startapache
Start only Apache

startssl
Start only SSL support

startmysql
Start only MySQL

startftp
Start only ProFTPD

stop
Stop XAMPP (Apache, MySQL and eventually others)

stopapache
Stop only Apache

stopssl
Stop only SSL support

stopmysql
Stop only MySQL

stopftp
Stop only ProFTPD

reload
Reload (menjalankan kembali dgn konfigurasi baru) XAMPP (Apache, MySQL and eventually others)

reloadapache
Reload only Apache

reloadmysql
Reload only MySQL

reloadftp
Reload only ProFTPD

restart
Stop and start XAMPP

security
Check XAMPP’s security

php5
Activate PHP5

php4
Activate PHP4

phpstatus
Which version of PHP is active?

backup
Make backup file of your XAMPP config, log and data files

panel
Starts graphical XAMPP control panel (memerlukan beberapa file/library lain)

Nah, sampai sini dulu pembahasan kita. InsyaAllah di post berikutnya, saya akan membahas konfigurasi LAMPP/XAMPP. Just wait ya!

Menginstall PHP 5 dan MySQL Di Webserver Windows IIS

Apache, bukan satu-satunya server dimana PHP bisa hidup. PHP memang multi platform. Anda bisa menggunakannya dengan hampir (kalau gak salah) semua web server di dunia. Baik yang anda ketahui maupun tidak.

Meskipun demikian, PHP akan menunjukkan keperkasaannya jika disandingkan dengan Apache. Dan apache bekerja paling sempurna pada lingkungan Unix (Linux, misalnya).
Tutorialini untuk anda yang masih belum bermigrasi atau iseng.

IIS yang saya gunakan adalah default dari CD instalasi Windows XP, versi 5. Saya menginstallnya melalu Programs >> Control Panel >> Add/Remove Programs. Klik tab Add/Remove Windows Components.

Centang IIS (Internet Information Services), klik next-next-finish :-)
Menginstall MySQL

Menginstall MySQL di windows relatif mudah. Anda tinggal mendownload installernya dari situs mysql dan menjalankannya.
Ikuti saja langkah-langkahnya. Yah, tinggal klik next-next-next tahu-tahu finish :-)
Menginstall PHP 5

Menginstall PHP bersama IIS sama saja susahnya dengan menginstall PHP bersama Apache. Di IIS anda “tertolong” karena bisa melakukan klak-klik melalu IIS Control Panel.

Pertama, sebaiknya anda mendownload source code php dulu. Pastikan anda memilih “For Windows!”.
Ekstrak ke c:\php
Sehingga struktur direktorinya seperti ini:
c:\php, c:\php\ext (ini yang penting anda ketahui)

Langkah selanjutnya adalah mengkonfigurasi PHP agar bekerja di IIS.
Langkah-langkah ini valid untuk IIS versi 4 ke-atas. IIS yang saya dapatkan adalah versi 5.

1. Modifikasi file php.ini
Masuk ke folder c:\php. Rename file php.ini-recommended menjadi php.ini.
Buka dengan editor teks (notepad). Cari baris dan set nilainya sbb:
doc_root = c:\inetpub\wwwroot
extension_dir = c:\php\ext
browsecap = c:\windows\system32\inetsrv\browscap.ini

2. Menambahkan folder instalasi php dalam path windows
Menambahkan folder instalasi ke path windows akan membuat anda gampang melakukan upgrade php, daripada mengkopi file-file dan meletakkannya di folder systems windows.
Langkahnya adalah. Klik kanan My Computer > Properties > Advanced > Environment variables

Pada bagian system variables di sub bagian PATH. Klik edit. Tambahkan “;c:\php” tanpa tanda kutip.



3. Konfigurasi IIS Untuk PHP
Aktifkan IIS Control Panel melalui menu Programs > Administrative Tools > Internet Information Services.
Jika anda tidak melihat menu Administrative Tools, klik kanan pada Start Menu anda, klik Properties. Klik bagian customize, pindah ke tab Advanced, Scroll dibagian Start menu items, pilih Display on … di bagian System Administration Tools.

Navigasikan mouse anda ke bagian webserver, di sidebar kiri. Klik nama komputer anda, klik websites, dan klik kanan pada Default Web Sites. Pilih properties.


Pada jendela konfigurasi yang terbuka. Klik tab ISAPI Filters.
Klik Add untuk menambahkan filter baru. Tulis php sebagai nama filter, c:\php\php5isapi.dll sebagai executable-nya. Atau klik browse, jika anda menginstall ditempat lain.


Pada tab home directory, pada bagian execution permissions, pastikan anda memilih scripts only. klik di bagian configuration untuk menambahkan php.


Pada bagian mapping, klik Add. Ketik c:\php\php5isapi.dll atau file php5isapi.dll.
Pada bagian ekstension, ketik .php
Pastikan anda mencentang pilihan script engine.


Berpindah ke bagian Documents, tambahkan index.php di bagian document header.


Sekarang, restart webserver anda (stop dan start lagi), dengan mengklik tombol stop dan play (yap, ikonnya seperti pada ikon player).
Checking

Buat file test.php dan simpan di folder c:\inetpub\wwwroot menggunakan notepad. Tambahkan baris berikut:



Simpan dan akses menggunakan web browser anda di alamat http://localhost/test.php.

Jika yang keluar adalah halaman informasi instalasi php, berarti anda sudah sukses melakukan instalasi.
TroubleShooting

Asumsi saya, jika anda mengikuti instalasi sesuai tutorial ini, anda pasti sukses 100%. Jika ada masalah, coba sekali lagi. Kalau anda bingung, silahkan diketik di komentar saja. Terangkan juga detil error yang terjadi.

Yang jelas, saya menemukan masalah yang cukup membingungkan dan sampaisekarang belum solved. Konfigurasi php,php.ini tidak mau diupdate/load.

Tutorial Membuat Virtual Host Domain di XAMPP Apache

Salah satu kesulitan kita sebagai pengembang website dan para web master adalah ketika mengembangkan website yang menggunakan CMS dengan alamat URL absolute.

Seperti misalnya Wordpress. Dalam kasus Wordpress, kita akan mengalami kesulitan saat memindahkan database dan instalasi Wordpress yang telah kita develop di localhost kita ke server yang sebenarnya.

Masalah utamanya sebenarnya adalah pada domain URL absolut tersebut.

Lalu bagaimana kita membuat domain sendiri di localhost kita?

Saya punya tipsnya. Sayangnya, tips ini hanya untuk pengguna Linux :-) karena saya kurang familiar dengan sistem operasi lain. Dan tentu jika anda menggunakan Apache. Bisa xampp, lampp, atau lainnya.
Konfigurasi Virtual Host (Virtual Domain)

Buka file httpd.conf (atau apache.conf) anda. Letaknya biasanya di direktori /etc atau /opt/lampp/etc.

Aktifkan modul Virtual Host dengan mengcoment baris:

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

menjadi:

LoadModule vhost_alias_module modules/mod_vhost_alias.so

Atau nama module yang sejenis.

Tambahkan baris berikut ini pada bagian paling bawah:

# Customs
Include /opt/lampp/htdocs/virtual-host.conf

atau

# Customs
Include /home/amrinz/virtual-host.conf

Jika instalasi default apache sudah memiliki file konfigurasi virtual-host.conf atau sejenisnya, gunakan saja itu.

Tambahkan baris-baris ini dan simpan pada file virtual-host.conf:


ServerName linuxindo.web.id
DocumentRoot /home/amrinz/website/linuxindo.web.id

AllowOverride All
Options All


Tambahkan Host/Domain

Lalu tambahkan host linuxindo.web.id dengan IP 127.0.1.2 ke file /etc/hosts (sebagai root!)

127.0.1.2 linuxindo.web.id

Atau jika anda menggunakan ubuntu seperti saya, melalui menu System >> Administration >> Network.

setup ip and host for apache virtual host

Buat Direktori Virtual Host

Setelah anda membuat dan mengedit file virtual-host.conf dan file hosts, saatnya anda membuat direktori sesuai nama domain yang ditambahkan.

Seperti pada contoh, saya membuat direktori linuxindo.web.id di direktori /home/amrinz/website.

Restart Apache, XAMPP atau LAMPP

Selanjutnya, restart apache atau xampp atau lampp anda.

/opt/lampp/lampp start

atau

/etc/init.d/apache2 start

Sekarang buka browser anda, dan coba mengakses http://linuxindo.web.id.
Jika berhasil, selamat, anda bisa mengembangkan website anda di komputer lokal tanpa perlu khawatir saat memindahkannya ke server remote.

Sejarah DNS (Domain Name System)

Sebelum dipergunakannya DNS, jaringan komputer menggunakan HOSTS files yang berisi informasi dari nama komputer dan IP address-nya. Di Internet, file ini dikelola secara terpusat dan di setiap loaksi harus di copy versi terbaru dari HOSTS files, dari sini bisa dibayangkan betapa repotnya jika ada penambahan 1 komputer di jaringan, maka kita harus copy versi terbaru file ini ke setiap lokasi. Dengan makin meluasnya jaringan internet, hal ini makin merepotkan, akhirnya dibuatkan sebuah solusi dimana DNS di desain menggantikan fungsi HOSTS files, dengan kelebihan unlimited database size, dan performace yang baik. DNS adalah sebuah aplikasi services di Internet yang menerjemahkan sebuah domain name ke IP address. Sebagai contoh, www untuk penggunaan di Internet, lalu diketikan anama domain, misalnya: yahoo.com maka akan di petakan ke sebuah IP mis 202.68.0.134. Jadi DNS dapat dianalogikan pada pemakaian buku telepon, dimana orang yang kita kenal berdasarkan nama untuk menghubunginya kita harus memutar nomor telepon di pesawat telepon. Sama persis, host komputer mengirimkan queries berupa nama komputer dan domain name server ke DNS, lalu oleh DNS dipetakan ke IP address.

Pengertian DNS(Domain Name System)

Domain Name System (DNS) adalah distribute database system yang digunakan untuk pencarian nama komputer (name resolution) di jaringan yang mengunakan TCP/IP (Transmission Control Protocol/Internet Protocol). DNS biasa digunakan pada aplikasi yang terhubung ke Internet seperti web browser atau e-mail, dimana DNS membantu memetakan host name sebuah komputer ke IP address. Selain digunakan di Internet, DNS juga dapat di implementasikan ke private network atau intranet dimana DNS memiliki keunggulan seperti:

1. Mudah, DNS sangat mudah karena user tidak lagi direpotkan untuk mengingat IP address sebuah komputer cukup host name (nama Komputer).
2. Konsisten, IP address sebuah komputer bisa berubah tapi host name tidak berubah.
3. Simple, user hanya menggunakan satu nama domain untuk mencari baik di Internet maupun di Intranet.

DNS dapat disamakan fungsinya dengan buku telepon. Dimana setiap komputer di jaringan Internet memiliki host name (nama komputer) dan Internet Protocol (IP) address. Secara umum, setiap client yang akan mengkoneksikan komputer yang satu ke komputer yang lain, akan menggunakan host name. Lalu komputer anda akan menghubungi DNS server untuk mencek host name yang anda minta tersebut berapa IP address-nya. IP address ini yang digunakan untuk mengkoneksikan komputer anda dengan komputer lainnya.

Struktur DNS
Domain Name Space merupakan sebuah hirarki pengelompokan domain berdasarkan nama, yang terbagi menjadi beberapa bagian diantaranya:
a) Root Level Domain
Domain ditentukan berdasarkan tingkatan kemampuan yang ada di struktur hirarki yang disebut dengan level. Level paling atas di hirarki disebut dengan root domain. Root domain di ekspresikan berdasarkan periode dimana lambang untuk root domain adalah (".").
b) Top Level Domain (TLD)
Top Level Domain adalah domain pada level teratas di bawah root (.). Ada tiga
pengelompokkan Top Level Domain:
1. Domain Generik
Terdiri atas 7 domain yaitu :
a. com
Untuk organisasi komersial. contoh: ibm.com, sun.com.
b. net
Untuk organisasi/perusahaan penyedia layanan jaringan/Internet. contoh: internic.net, nsf.net.
c. gov
Untuk lembaga/organisasi pemerintahan. contoh: whitehouse.gov, nasa.gov.
d. mil
Untuk badan/organisasi militer. contoh: army.mil.
e. org
Untuk organisasi non-komersial. contoh: linux.org.
f. edu
Untuk lembaga pendidikan. contoh: mit.edu, berkeley.edu.
g. int
Untuk organisasi Internasional. contoh: nato.int.
Selain 7 domain di atas ada lagi 7 domain baru dari ICANN (www.icann.org) yaitu:
h. aero
Untuk industri atau perusahaan udara.
i. biz
Untuk perusahaan atau lembaga bisnis.
j. coop
Untuk perusahaan atau lembaga kooperatif
k. info


Untuk penggunaan umum.
l. museum
Untuk museum.
m. name
Untuk registrasi bagi penggunaan individual/personal.
n. pro
Untuk para profesional seperti: akuntan, dan lain-lain.
2. Domain Negara
Merupakan standar pembagian geografis berdasarkan kode negara. Contoh: id untuk Indonesia, au untuk Australia, uk untuk Inggris, dan lain-lain. Domain negara ini dapat dan umumnya diturunkan lagi ke level-level di bawahnya yang diatur oleh NIC dari masing-masing negara, untuk Indonesia yaitu IDNIC. Contoh level bawah dari id yaitu net.id, co.id, web.id.
3. Domain Arpa
Merupakan domain untuk jaringan ARPAnet. Tiap domain yang tergabung ke Internet berhak memiliki name-space .in-addr.arpa sesuai dengan alamat IP-nya.

Second-Level Domains
Second-level domains dapat berisi host dan domain lain, yang disebut dengan subdomain. Untuk contoh: Domain Zulfanruri, zulfanruri.com terdapat komputer (host) seperti apel.zulfanruri.com dan subdomain kates.zulfanruri.com. Subdomain kates.bujangan.com juga terdapat komputer (host) seperti apel.training.bujangan.com.


Host Names
Domain name yang digunakan dengan host name akan menciptakan fully qualified domain name (FQDN) untuk setiap komputer. Sebagai contoh, jika terdapat kates.zulfanruri.com, dimana kates adalah host name dan zulfanruri.com adalah domain name.

Tutorial Setting DNS & Hosting Gratis

Jika sudah mendaftarkan diri Anda di www.co.cc dan http://www.000webhost.com. Kini saatnya melakukan proses pengaturan antara DNS co.cc dengan server 000webhost. Jika belum daftar, silahkan daftar terlebih dahulu, di sini www.co.cc (untuk nama Domain anda) dan http://www.000webhost.com (untuk hosting website anda). Pengaturan ini dilakukan agar domain Anda dapat menampilkan halaman web yang tersimpan di server 000webhost. Proses pengaturan ini hanya memakan waktu beberapa menit saja. Dan berikut ini adalah cara pengaturannya :

Untuk proses setting, kita membutuhkan data-data server. Untuk itu, kita harus login terlebih dahulu untuk mendapat data-data tersebut. Data yang dibutuhkan hanya name server saja untuk proses setting ini. Agar pada saat DNS Anda diakses maka secara otomatis DNS Anda akan mendirect data-data yang ada diserver ke komputer si user. Login ke http://www.member.000webhost.com dan masukkan username serta password Anda.

Setelah berhasil login, Anda akan masuk kedalam halaman index dari 000webhost. Langkah selanjutnya Anda klik Go To CPanel. CPanel merupakan Sebuah Control Panel yang terdapat di dalam server. Jadi proses setting, upload, download, dan maintanance akan dilakukan disini.

Klik Go To CPanel agar Anda dapat memasuki main menu.
Kemudian, Pilih menu View Account Detail. Semua informasi mengenai server ada disini.

Disini Anda akan mendapatkan name server yang akan diberikan oleh server. Catat dan ingatlah name server Anda. Karena nanti kita akan menggunakan name server ini ke DNS Anda.

Catatlah Name server Detail. Di dalam contoh gambar name server1 adalah ns01.000webhost.com, sedangkan name server 2 adalah : ns02.000webhost.com

Setelah mendapatkan Name server 1 dan 2. Maka proses selanjutanya adalah men-setting DNS kita dengan name server 1 dan 2 yang telah didapatkan tadi. Setting DNS dengan name server 1 dan 2. Langkah-langkahnya adalah sebagai berikut :

Buka www.co.cc

Kemudian, masukkan username ( email ) dan password Anda hingga Anda dapat masuk kedalam halaman Home [ Manage Domain ].

Klik DNS yang ingin Anda setting. Sampai masuk kedalam DNS setting.

Sekarang masuk ke menu Manage Domain -> Manage DNS. Kemudian Masukkan name server 1 dan 2 yang telah disediakan

Kemudian Klik Set Up. Proses setting DNS Anda telah selesai. Tunggulah kurang lebih 2 x 24 jam agar server dapat memverifikasi DNS Anda.

Semoga bermanfaat.

Sumber :
KOMUNITAS PELAJAR ILMU KOMPUTER INDONESIA
http://mr-amateur.co.cc

Langkah – Langkah Memperbaiki Registry

Umumnya kita mengklik ikon program yang ada di start menu atau di desktop untuk menjalankan program tertentu. Tetapi program-program utilitas tidak semuanya tersedia di start menu atau di desktop. Program-program ini (misalnya REGEDIT.EXE, CMD.EXE) biasanya dijalankan melalui menu Start > Run. Apa yang dapat kita lakukan seandainya menu Run tidak ada di start menu? Berikut beberapa alternatif menjalankan program tertentu dengan cara yang ‘tidak biasa’:

a. Memanfaatkan Windows Explorer

Jalankan program Windows Explorer, cari file program yang ingin dijalankan di folder C:\Windows, atau di C:\Windows\System, atau di C:\Windows\System32. Kemudian klik dua kali pada file program tersebut.

b. Memanfaatkan Command Prompt (CMD.EXE)

= Klik Start > Programs > Accessories > Command Prompt, atau jalankan CMD.EXE dengan cara pertama di atas.

= Ketikkan nama program yang ingin dijalankan, kemudian tekan enter.

C:\Documents and Settings\mr. orche!>REGEDIT

c. Menggunakan Batch File

= Jalankan Notepad melalui start menu atau melalui Windows Explorer.
= Ketik nama program yang ingin dijalankan, misalnya “REGEDIT” (tanpa tanda petik).
= Simpan file tersebut menggunakan ekstensi .bat, misalnya “TES.BAT”.
= Jalankan file .bat tersebut melalui Windows Explorer (klik dua kali).

d. Menggunakan Task Manager (TASKMGR.EXE) (Windows XP)

= Tekan Ctrl + Alt + Del.
= Klik tombol [New Task...] pada tab Applications.
= Ketikkan nama program, lalu tekan enter.

e. Memanfaatkan Browser File pada ACDSee

= Jalankan ACDSee dari Start Menu.
= Cari file program yang ingin dijalankan di jendela browser file.
= Klik dua kali pada file program tersebut.


2. Cara-cara Alternatif Operasi Registry

Jika REGEDIT tidak dapat dijalankan, operasi registry masih dapat dilakukan dengan beberapa alternatif berikut:

Alternatif 1: Menggunakan perintah REG

1. Jalankan Command Prompt (CMD.EXE).

2. Untuk melihat daftar key dan value, gunakan perintah REG QUERY lokasikey.
Contoh:
REG QUERY HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
REG DELETE HCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

3. Ketikkan REG DELETE namakey /V namavalue untuk menghapus value tertentu.

Contoh:
REG DELETE HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /V NoRun
REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /V NoFolderOptions

Catatan:

= Nama root harus disingkat, HKCR untuk HKEY_CLASSES_ROOT, HKLM untuk HKEY_LOCAL_MACHINE, HKCU untuk HKEY_CURRENT_USER, HKU untuk HKEY_USERS, dan seterusnya.

= Untuk nama key yang mengandung spasi, nama key diapit dengan tanda petik ganda.

= Untuk mengetahui tatacara operasi selengkapnya menggunakan perintah REG, ketikkan “REG /?” tanpa tanda petik.

Alternatif 2: Menggunakan file .REG
1. Jalankan Notepad dan ketikkan seperti contoh berikut:

Format baru (WinXP):
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
“NoFolderOptions”=dword:00000000

Format lama (Win9X/NT):
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
“NoFolderOptions”=dword:00000000

2. Simpan file tersebut dengan ekstensi .REG, kemudian klik dua kali pada file .reg yang telah disimpan.

Penjelasan:

= Baris pertama, “Windows Registry Editor Version 5.00” atau “REGEDIT4”, adalah aturan baku untuk menandai file registry.

= Baris kedua, “[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]” menunjukkan lokasi key registry, di mana daftar value beserta nilai data yang disebutkan di bawahnya akan disimpan.

= Baris ketiga, “NoFolderOptions”=dword:00000000, menyebutkan nama value beserta data yang diinginkan untuk value tersebut. Pada contoh ini berarti mengubah/memberi data bernilai 0 pada value bernama “NoFolderOptions”.

= File regedit yang diketik dengan format WinXP (format baru) maupun format lama (Win9X/NT), keduanya dapat digunakan untuk Windows XP, tetapi format lama hanya dapat digunakan untuk Windows 9X/NT.

Alternatif 3: Menggunakan StartUp Disk (hanya berlaku untuk Win9X)
Cara ini adalah cara yang paling susah, dan mungkin merupakan satu-satunya cara efektif memulihkan registry ketika sistem sudah terlanjur lumpuh sama sekali.

1. Boot menggunakan StartUp Disk
a. Masukkan StartUp Disk Win95/98 ke floppy drive.
b. Restart (pastikan konfigurasi setting boot sequence di BIOS menunjuk ke disket).

2. Masuk ke direktori (folder) C:\Windows
A:\>C:
C:\>CD WINDOWS

3. Lakukan ekspor data dari registry ke file .reg khusus untuk key yang diinginkan
Format perintah:
REGEDIT /E namakey namafilereg

Contoh:
REGEDIT /E HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer TES.REG

Jika nama key mengandung spasi, gunakan tanda petik:
REGEDIT /E “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer” TES.REG

3. Memunculkan Kembali Menu Folder Options pada Windows Explorer

Beberapa virus perlu menyembunyikan file-file tertentu agar user (pemakai komputer) tidak menyadari adanya virus dan agar virus tersebut lebih susah dihapus, dengan membuat file tersebut menjadi hidden. File hidden tersebut masih dapat dilihat oleh user jika setting Folder Options pada pilihan ‘Show hidden files and folders’ diaktifkan. Kadang-kadang menu inipun dihilangkan oleh virus untuk menjamin file-file virus tetap tak terlihat. Untuk menyembunyikan menu Folder Options, cara paling mudah dan paling umum diterapkan oleh virus adalah dengan mengubah setting registry, dengan menyisipkan value “NoFolderOptions” yang bernilai 1. Untuk memunculkan kembali menu Folder Options, value ini harus dihapus, atau diubah nilainya menjadi “0”.

= Untuk mengubah setting Folder Options, klik menu Tools > Folder Options pada Windows Explorer.

= Value NoFolderOptions pada registry berada salah satu atau kedua lokasi berikut:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

Value tersebut dapat dihapus dengan menggunakan program REGEDIT, atau dengan mengetikkan perintah berikut pada Command Prompt:

REG DELETE HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /V NoFolderOptions

REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /V NoFolderOptions

4. Memunculkan Menu Run

Hapus value “NoRun” atau ubah nilainya menjadi 0 dengan menggunakan operasi registry (lihat contoh operasi registry untuk memunculkan menu Folder Options di atas). Value “NoRun” berada pada key:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

5. Memunculkan Menu Find

Hapus value “NoFind” atau ubah nilainya menjadi 0 dengan menggunakan operasi registry (lihat contoh operasi registry untuk memunculkan menu Folder Options di atas). Value “NoFind” berada pada key:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

6. Mengaktifkan REGEDIT

Kadang-kadang REGEDIT tidak dapat dijalankan karena di-disable melalui setting registry oleh virus. Untuk memulihkan kembali, hapus value “DisableRegistryTools” atau ubah nilainya menjadi 0 dengan menggunakan Command Prompt (hanya untuk WinXP), atau dengan membuat file .REG (hanya untuk Win9X).

7. Memunculkan File Hidden dengan Mengubah Atributnya Melalui Command Prompt

File hidden (tersembunyi) dapat dimunculkan tanpa memainkan Folder Options, tetapi dengan menonaktifkan atribut hidden pada file tersebut. Atribut file hidden hanya dapat diubah di Windows Explorer jika setting Folder Options memungkinkan file hidden ditampilkan. Alternatifnya adalah dengan mengubah atribut file tersebut melalui Command Prompt. Untuk melihat daftar file hidden melalui Command Prompt, gunakan perintah “DIR /AH”. Selanjutnya gunakan perintah ATTRIB diikuti parameter atribut yang akan diubah. Contoh berikut dapat digunakan untuk menonaktifkan atribut hidden, read only, dan system sekaligus, pada semua file di direktori aktif:

ATTRIB –r –h –s *.*

8. Mencari File Melalui Command Prompt

a. Melihat daftar file/folder yang berada di folder aktif:

DIR *.*

b. Melihat daftar file/folder yang berada di folder aktif, termasuk file/folder hidden:

DIR *.* /A “A” adalah singkatan dari “ALL”

c. Melihat daftar file (tidak termasuk folder) yang berada di folder aktif:

DIR *.* /A-D “D” adalah singkatan dari “DIRECTORY”, “-“ berarti pengecualian

d. Melihat daftar folder (tidak termasuk file) yang berada di folder aktif:

DIR *.* /AD “D” adalah singkatan dari “DIRECTORY”

e. Melihat daftar file/folder hidden:

DIR *.* /AH “H” adalah singkatan dari “HIDDEN”

f. Melihat daftar file/folder urut berdasarkan nama:

DIR *.* /ON untuk file dan folder, “O” berarti “ORDER BY”, “N” berarti “NAME”
DIR *.* /AD /ON untuk folder saja
DIR *.* /A-D /ON untuk file saja
DIR *.* /A-DH /ON untuk file hidden saja
DIR *.* /ADH /ON untuk folder hidden saja

g. Melihat daftar file/folder urut berdasarkan tipe (ekstensi)

Caranya mirip dengan pengurutan berdasarkan nama, hanya saja “/ON” diganti dengan “/OE”.

h. Melihat daftar file urut berdasarkan ukuran

Caranya mirip dengan pengurutan berdasarkan nama, hanya saja “/ON” diganti dengan “/OS”.
Untuk informasi rinci tentang aturan pemakaian perintah DIR, ketikkan “DIR /?” lalu tekan enter.

9. Mematikan Proses yang Dicurigai

Yang dimaksud proses adalah program yang berjalan di latar belakang (background program), tidak memiliki form karena tidak dibuat untuk berinteraksi dengan user. Berbeda dengan program aplikasi yang memang terlihat karena harus berinteraksi dengan user. Virus biasanya dibuat sedemikian rupa sehingga ketika virus tersebut berjalan tidak terlihat sama sekali, ia hanya berupa proses. File virus yang sedang berjalan biasanya tidak dapat dihapus karena prosesnya sedang berjalan. Biasanya file virus tersebut baru dapat dihapus setelah prosesnya dihentikan. Daftar program aplikasi dan proses yang sedang berjalan dapat dilihat menggunakan Windows Task Manager (TASKMGR.EXE) cukup dengan menekan tombol Ctrl + Alt + Del. Setelah jendela Windows Task Manager muncul, kita dapat memilih “Applications” untuk melihat daftar program aplikasi; atau “Processes” untuk melihat daftar proses. Pilihan lainnya adalah “Performance”, “Networking”, dan “Users”.
Untuk menghentikan program aplikasi yang sedang berjalan, pilih nama aplikasi dari daftar, kemudian klik tombol “End Task”. Untuk menghentikan proses yang sedang berjalan, pilih nama proses kemudian klik tombol “End Process”. Jika Windows Task Manager tidak dapat dijalankan, kita masih dapat melihat dan menghentikan proses yang sedang berjalan dari Command Prompt dengan memanggil program “TASKLIST.EXE” untuk melihat daftar proses, kemudian memanggil program “TASKKILL.EXE” untuk menghentikan proses.

Contoh:
TASKLIST
TASKKILL /F /IM Notepad.exe /IM MSPAINT.EXE
TASKKILL /F /PID 1230 /PID 1253 /T