Anda di halaman 1dari 28

Bagaimana Cara Membuat Blog Anda Sendiri!!

Sampai saat ini seharusnya anda sudah mempelajari materi HTML, PHP dan MySQL
serta sudah memahami cara menghubungkan katiganya dengan baik. Jika belum,
maka saya sarankan anda untuk kembali terlebih dahulu ke pateri kursus-online.com
tersebut dan kembali lagi ke sini saat sudah menyelesaikannya.

Pada e-book ini ini, kita akan melihat penggunaan PHP dalam membuat sebuah
aplikasi web yang berfungsi penuh yaitu sebuah blog.

Saya yakin bahwa anda semua sudah mengenal apa itu blog, karena saat ini aplikasi
blog ini sangat populer digunakan oleh pengguna internet baik yang masih baru
maupun sudah advance.

Nah, bila biasanya anda akan menggunakan Wordpress atau blogspot untuk
membuat blog anda, maka di e-book ini anda akan belajar bagaimana membuat
aplikasi blog anda sendiri dari nol menggunakan PHP. Selamat menikmati.

Menyiapkan Database dan Direktori

Langkah pertama yang harus dilakukan adalah menyiapkan databasenya. Kita harus
membuat database MySQL siap untuk menerima dan menyimpan data posting blog.
Saya tidak akan membahas lagi mengenai berbagai cara membuat sebuah database
atau tabel di sini, karena anda bisa menemukannya di materi MySQL ataupun video
tutorial cara menghubungkan HTML, PHP & MySQL.

Saya hanya akan menunjukkan cara membuat tabelnya dengan perintah command
line seperti ini:

CREATE TABLE blog (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
judul
VARCHAR(100) NOT NULL, isi TEXT NOT NULL, tanggal DATETIME NOT NULL,
user VARCHAR (100))

Untuk cara membuat database, tabel dan user selengkapnya menggunakan


PHPMyAdmin, bisa anda pelajari di materi http://kursus-online.com Video Tutorial
Menghubungkan HTML, PHP dan MySQL pada bagian 3 (membuat tabel 2). Dalam e-
ook ini saya megasumsikan kita membuat database sebagai berikut:
Nama database = blog
Nama tabel = blog
Nama user = user
Password =pass
Langkah-langkah singkat menggunakan PHPMyAdmin adalah sebagai berikut:

Pastikan server PHP dan MySQL sudah jalan.

Buat database baru dengan nama blog dan sebuah tabel baru dengan 5 field dengan
nama blog juga.
Definisikan field-fieldnya seperti gambar di bawah ini.
Setelah di simpan, maka akan muncul konfirmasi dibuatnya tabel seperti gambar
berikut ini.

Langkah berikutnya adalah membuat user dan password. Klik Hak Akses.
Klik Menambahkan pengguna baru.

Isi Nama Pengguna dengan user, dan password dengan pass. Check pada semua
privilliges Data.
Klik Go. Kemudian pilih tabel blog dari drop down menu ‘Menambahkan hak
(privilliges) pada database berikut:’

Check pada semua privilliges Data dan klik Go.


PENTING!!
Setting register_global untuk program blog ini diasumsikan on. Jika anda
kebetulan memperoleh XAMPP versi baru, maka setting default register_global
adalah off. Untuk itu mohon lakukan langkah-langkah sederhana berikut
Update di file berikut ini:

c:\\Program Files\xampp\apache\bin\php.ini

Buka file tesebut dengan menggunakan Notepad, dan cari baris yang bertuliskan:

register_global off

Ubahlah menjadi

register_global on

Setelah itu Klik File  Save.

Silahkan buka lagi XAMPP control panel

Matikan Apache dengan mengklik tombol Stop dan nyalakan lagi dengan mengklik
tombol Start di samping tulisan Apache.

Langkah berikutnya kita perlu membuat direktori khusus untuk file-file kita agar
mudah dikelola. Dalam kasus ini saya mengasumsikan bahwa kita menggunakan
XAMPP dan terinstall di direktori C:\\Program Files\xampp.

Silahkan buka File Explorer dan buat sebuah direktori bernama blogku di root
direktori xampp sehingga menjadi seperti ini: C:\\Program
Files\xampp\htdocs\blogku. Kita akan meletakkan semua file kita di sini.
Membuat File Koneksi ke Database

Karena kita akan membuat beberapa halaman, yang semuanya akan mengakses
database MySQL yang sama, maka kita sebaiknya membuat fungsi yang akan kita
tulis di sebuah file terpisah.
Kita juga harus menggunakan fungsi mysql_error(), untuk menampilkan error yang
terjadi saat mengakses tabel di database kita. Hal ini sangat perlu dilakukan saat
kita mengalami masalah dengan koneksi atau saat query kita tidak mengeluarkan
data yang kita inginkan.

Nah, kita akan membuat file tersebut dengan nama sql_connect.inc. Dengan isi
codenya adalah sebagai berikut:

<?php
function sql_connect ($database) { //Fungsi membuat koneksi ke MySQL
if ($dbc = mysql_connect ('localhost', 'user', 'pass')) {
if (!@mysql_select_db("$database")) {
die ();
//Jika pemilihan database gagal, skrip akan berhenti.
}
} else {
die ();
//Jika server MySQL tidak bisa dihubungi, skrip akan berhenti.
}
}
?>

Fungsi ini melakukan beberapa langkah. Tugas pertamanya adalah menghubungkan


ke server MySQL menggunakan argumen server, username dan password (anda
harus mengganti server dengan localhost, username dan passsword dengan
username dan password anda sendiri. Jika bingung, lihat kembali materi
http://kursus-online.com video tutorial cara menghubungkan HTML, PHP dan MySQL
ya …)

Jika gagal terhubung, maka fungsi ini akan menghentikan eksekusi keseluruhan
skrip dengan perintah ‘die”.

Jika server MySQL bisa dihubungi, maka skrip ini akan mencoba untuk membuat
hubungan ke database yang sudah kita definisikan dalam argumen fungsi (dalam hal
ini adalah argumen ‘database’). Dan jika gagal membuka koneksi, maka skrip ini
akan menghentikan seluruh skrip seperti sebelumnya.

Membuat Halaman Depan

Nah, sekarang kita sudah memiliki database dan menyiapkan sebuah fungsi untuk
terhubung ke database tersebut. Saatnya untuk membuat halaman yang pertama.
Halaman ini berfungsi untuk menampilkan postingan yang ada di field isi dalam tabel
kita tadi.

Halaman ini akan menampilkan isi posting tadi ke homepage, dan bisa dilihat oleh
siapapun yang mengakses blog kita ini. Saat kita membuat halaman ini, kita akan
mempelajari kembali cara untuk mengirimkan query dasar ke server MySQL,
mengambil hasilnya dari server, kemudian menggunakan proses loop ‘while’ untuk
memproses data tadi menjadi kode HTML agar siap ditampilkan di browser.
Karena file sql_connect.inc tadi sangat penting dan bila tidak ditemukan skrip kita
tidak akan berdungsi, maka kita menggunakan ‘require’ di sini. (kalau lupa lihat
pelajaran PHP lagi ya, mengenai perbedaan include dan require).

<?php require ('sql_connect.inc');

Kita akan menggunakan fungsi sql_connect() buatan kita sendiri untuk membuka
koneksi ke database:
//Menghubungi database MySQL kita.
sql_connect(blog);

Kita akan membuat query kita mengambil seluruh data dari database dan
mengurutkannya dari yang paling baru. Kita hanya akan mengambil field-field yang
diperlukan saja, agar data yang di kirim dari server MySQL bisa kita perkecil
jumlahnya. Dan tentu saja, hal ini akan mempercepat proses juga.

$query = "SELECT `judul` , `isi` , `tanggal` , `user` FROM blog ORDER


BY tanggal DESC";

Sebelum kita lanjutkan lebih jauh, kita akan tambahkan pemanis berupa gambar
header dan judul blog di sini. Tidak lupa juga sebuah link yang akan menuju ke
halaman login admin bila di klik.

?>
<table align="center" border="0" width="80%">
<tr>
<td colspan="2" background=header.jpg>
<center><font size=5 face=arial>MYBLOG
PROJECT<br><br></center>
<font size=3 face=arial><b>Blog buatan saya
sendiri<br><br></b>
</td>
</tr>
<tr>
<td><a href=login.php>Admin</a></td>
</tr>
</table>
<?

Nah sekarang querynya sudah siap, kita akan mengirimkannya ke server MySQL
dengan perintah mysql_query(). (lihat lagi video tutorial ‘Cara Menghubungkan
HTML, PHP dan MySQL’ bila lupa ya )

Hasil query ini kita simpan sementara dalam variabel yang bernama ‘$r’. Sub bagian
‘else’ dalam potongan kode di bawah ini akan menggunakan ‘die’ lagi untuk
menghentikan skrip jika querynya gagal.

If ($r = mysql_query ($query)) {


//mengirimkan query ke server MySQL

Hasilnya (yang saat ini masih dalam bentuk array) kemudian diambil dan dilewatkan
dalam sebuah loop ‘while’. Hal ini akan membuat skrip kita bisa mengambil data per
baris dan mengulangnya lagi sampai baris data habis diambil.
Kita menggunakan fungsi ‘mysql_fetch_array’ untuk memproses setiap baris dalam
variabel pointer array ‘$r’ secara bergantian. Setelah diambil rownya, fungsi
mysql_fetch_array akan melanjutkan ke baris array berikutnya. Saat mencapain
baris terakhir, fungsi ini akan mengembalikan indikator null yang akan digunakan
oleh loop while kita untuk berhenti.

While ($baris = mysql_fetch_array($r)) {


//melakukan input data ke dalam tabel
//Loop while mengambil semua data dalam array $r

Baris berikutnya akan membawa data dari masing-masing elemen baris dan
memformatnya jika diperlukan. Saat ini, kita akan memasukkan data ke dalam
variabel tertentu sehingga bisa kita lakukan pemformatan terhadap data tersebut.
Kita juga akan menggunakan fungsi ‘date’ dan ‘nl2br’.

Fungsi date memungkinkan kita memformat tanggal dalam bentuk yang mudah
dimengerti. Fungsi kedua, akan mengubah karakter CR (ganti baris) yang disimpan
dalam database MySQL menjadi tag <br> agar dapat tampil sebagaimana
seharusnya di browser.

$tanggal = date ('M j y g:i A', strtotime($baris['tanggal']));


//Data waktu kita ubah formatnya agar bisa tampil dengan baik

$user = $baris['user'];
$judul = $baris['judul'];
$isi = $baris[‘isi’];
$isi = nl2br ($isi);

Sekarang kita akan membuat kode HTML untuk masing-masing tabel agar dapat
ditampilkan di halaman depan situs web kita. Meskipun saya menggunakan contoh
satu tabel untuk tiap isi posting, namun tentu saja anda bisa membuatnya dalam
sebauh tabel besar bila menginginkannya.

Dengan menggunakan PHP, kita bisa menutup dan membuka kembali tag-tag PHP di
seluruh jode halaman yang kita buat dengan skrip PHP yang tetap kontinyu. Aspek
ini kita gunakan di sini agar kode kita nampak bersih dan mudah dibaca. Tentu saja,
anda bisa menggunakan ‘echo’ juga untuk menampilkan setiap baris HTML yang
ingin anda tampilkan sebagai alternatif lainnya.

?>
<table align="center" border="0" width="80%">
<tr>
<td>
<b><?php echo $judul; ?></b>-
Di posting oleh: <b><?php echo $user; ?></b>
</td>
<td>
<div align="right"><?php echo $tanggal; ?></div>
</td>
</tr>
<tr>
<td colspan="2">
<?php echo $isi; ?>
</td>
</tr>
</table><br />
<?php }

} else { //query tidak bekerja.


die ();
}

Dengan mempertimbangkan beban server MySQL, maka kita lebih baik menutup sesi
koneksi ke server MySQL dengan baik daripada membiarkan sesi tersebut tetap
terbuka sampai kena time out. Ini akan membebaskan sebagian resourve server dan
tidak memberatkan server MySQL.

mysql_close();
?>

Nah, kita sudah selesai membuat halaman depan blog kita. Tentu saja kita bisa
memolesnya lagi nanti agar nampak lebih profesional dan sesuai keinginan kita
masing-masing.

Kita akan lihat lagi kodenya secara keseluruhan ya, silahkan di simpan di dalam
direktori C:\\Program Files\xampp\blogku dengan nama index.php :

<?php require ('sql_connect.inc');

//Menghubungi database MySQL kita.


sql_connect(blog);
$query = "SELECT `judul` , `isi` , `tanggal` , `user` FROM blog ORDER
BY tanggal DESC";
?>
<table align="center" border="0" width="80%">
<tr>
<td colspan="2" background=header.jpg>
<center><font size=5 face=arial>MYBLOG
PROJECT<br><br></center>
<font size=3 face=arial><b>Blog buatan saya
sendiri<br><br></b>
</td>
</tr>
<tr>
<td><a href=login.php>Admin</a></td>
</tr>
</table>
<?

If ($r = mysql_query ($query)) {


//mengirimkan query ke server MySQL
While ($baris = mysql_fetch_array($r)) {
//melakukan input data ke dalam tabel
//Loop while mengambil semua data dalam array $r
$tanggal = date ('M j y g:i A', strtotime($baris['tanggal']));
//Data waktu kita ubah formatnya agar bisa tampil dengan baik
$user = $baris['user'];
$judul = $baris['judul'];
$isi = $baris[‘isi’];
$isi = nl2br ($isi);
?>
<table align="center" border="0" width="80%">
<tr>
<td>
<b><?php echo $judul; ?></b>-
Di posting oleh: <b><?php echo $user; ?></b>
</td>
<td>
<div align="right"><?php echo $tanggal; ?></div>
</td>
</tr>
<tr>
<td colspan="2">
<?php echo $isi; ?>
</td>
</tr>
</table><br />
<?php }
} else { //query tidak bekerja.
die ();
}
mysql_close();
?>

Sekedar review, kita sudah belajar beberapa hal menarik di sini antara lain:

 Bagaimana membuat dan menggunakan fungsi buatan kita sendiri.


 Bagaimana cara meletakkan fungsi kita tersebut dalam file terpisah untuk
memungkinkan penggunaan kembali fungsi tersebut di halaman-halaman
lainnya nanti (perhatikan lagi bahwa kita menggunakan include/require untuk
melakukan ini).
 Fungsi ini dibuat untuk membuka koneksi ke server MySQL dan database
yang kita inginkan.
 Kita menggunakan 2 perintah PHP khusus yaitu ‘mysql_connect’ dan
mysql_select_db’ untuk membuka koneksi ini.
 Kita juga sudah mempelajari cara memanipulasi string agar data dari
database dapat tampil lebih baik di browser dan menggunakan loop while
untuk menampilkan seluruh hasil query baris per baris.

Berikutnya kita akan membuat halaman admin yang berfungsi untuk menambah,
mengedit dan menghapus isi blog kita. Siap …

Membuat Halaman Admin

Kita akan membuat halaman login terlebih dahulu untuk mencegah orang lain masuk
ke halaman admin kita. Proses login akan melibatkan 2 file yaitu file login.php (yaitu
form login) dan file ceklogin.php (yang bertugas untuk proses verifikasi dan
pendaftaran session).

Pertama kita akan membuat sebuah form login sederhana yang memiliki 3 elemen
webb yaitu:

 User Id
 Password
 Tombol Login

Skripnya silahkan disimpan dengan nama login.php, dan kodenya adalah sebagai
berikut:

<table width="300" border="0" align="center" cellpadding="0"


cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="ceklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1"
bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text"
id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>

File berikutnya yang perlu kita siapkan adalah file ceklogin.php. Dalam file ini kita
mulai berkenalan dengan variabel session. Di sini kita akan mengecek apakah user
dan password yang dimasukkan sudah benar. Dan apabila benar, maka variabel
session dengan nama myusername akan di register. Variabel inilah yang akan
mengidentifikasikan bahwa kita sudah pernah login sebelumnya. Selama kita belum
menutup browser atau terkena perintah session_destroy, maka variabel ini akan
terus berada di memory server. Adapun listing programnya adalah sebagai berikut:

<?
$username=user;//Ini adalah nama user yang boleh masuk ke halaman admin
$password=pass;//dan ini passwordnya
if ($myusername == $username and $mypassword == $password){
session_start();
session_register(myusername);
echo ("Login berhasil. Silahkan klik <a href=admin.php>di
sini</a> untuk menuju halaman admin");
}else{
echo ("login gagal");
}
?>
Nah, kita perlu membuat satu lagi file kecil yang akan kita panggil dengan include
pada setiap file yang memerlukan pengamanan untuk mengecek apakah sudah login
dengan benar atau belum. Di sini kita akan memberikan nilai false pada variabel
session $myusername untuk menghindari penyalahgunaan otorisasi dengan
memberikan nilai pada variabel tersebut dari luar program. Setelah itu, kita memulai
session dengan session_start. Setelah perintah session_start ini, maka kita sudah
bisa menggunakan variabel session yang pernah kita register sebelumnya yaitu
$myusername. Variabel session ini akan kita gunakan untuk mengecek apakah
pengunjung sudah login atau belum. Jika variabel session ini ada, maka pengunjung
sudah pernah berhasil login sebelumnya. Kita beri nama file ini cek.inc.

<?
$myusername=false;
session_start();
if(!$myusername){
echo ("Anda harus login dahulu");
die();
}
?>

Pembuatan halaman admin ini akan kita mulai dengan menggunakan kembali
sebagian kode yang kita gunakan untuk membuat halaman depan. Kode ini kita
harapkan akan mengambil data sama seperti di halaman depan dan memformatnya
dalam bentuk tabel agar mudah dilihat.

Karena kita akan bekerja dengan data dari database, maka kita perlu memiliki cara
untuk mengenali masing-masing isi posting. Nah, kita akan memanfaatkan fiels auto
incrementing dalam database kita tadi untuk mewujudkannya. Kita akan mengambil
field ID juga dalam query kita (ingat, saat menampilkan halaman depan, kita tidak
mengambil field ini).

Nah, karena kita mengambil seluruh field yang ada, maka kita akan menggunakan
asterisk (*) untuk mempermudah penulisan querynya.

Perhatikan juga bahwa kita mulai menggunakan lagi file sql_connect.inc dan
menggunakan file cek.inc untuk memastikan bahwa pengakses file sudah login
sebelumnya.

<?
require ('sql_connect.inc');
include (‘cek.inc’);

//Menghubungi database MySQL kita


sql_connect('blog');

//Ini adalah query untuk keperluan admin;


//Kita mengambil semua artikel yang ada beserta seluruh kolomnya.
$query = 'SELECT * FROM blog ORDER BY tanggal DESC';

//Baris kode ini untuk mengeksekusi query


//Jika kita memperoleh hasil positif, akan dilanjutkan dengan proses
loop while
If ($r = mysql_query ($query)) {

//Membuat tampilan tabel


?>
<table align="center" border="1" width="80%">
<tr>

<td colspan="2">
<b><center>Pengelolaan
Berita</b></center></b>
</td>
</tr>

<?php

Di sini koneksi MySQL sudah jalan dan data sudah diperoleh. Selanjutnya data
tersebut akan kita format agar tampil dalam format yang bisa dibaca manusia.
Perhatikan bahwa manipulasi string yang kita lakukan sama dengan yang kita
lakukan di halaman depan. Perbedaannya hanya pada penambahan field ‘id’. Field ini
digunakan untuk mengidentifikasikan masing-masing isi blog yang kita ambil dari
database.

While ($baris = mysql_fetch_array($r)) {


//memasukkan data ke dalam bentuk tabel
$judul = $baris['judul'];
$user = $baris['user'];
$isi = $baris[‘isi’];
//Data tanggal disesuaikan agar tampil dengan baik
$tanggal = date ('M j y g:i A', strtotime($baris['tanggal']));
$isi = nl2br ($isi);
?>
<tr>
<td colspan="2">
<table align="center" border="0" width="100%">
<tr>
<td>

<b><?php echo $judul ?></b> - Diposting oleh: <b><?php echo $user;


?></b>
</td>
<td>
<div align="right"><?php echo $tanggal; ?></div>

</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2"><?php echo $isi; ?></td>
</tr>

Sekarang, kita sudah memiliki semua informasi dari isi blog yang ditampilkan, kita
perlu menambahkan pilihan untuk melakukan manipulasi atas data ini. Kita akan
tambahkan baris baru yang memiliki 2 buah form: satu adalah form untuk halaman
edit (edit.php) dan satu lagi untuk halaman yang bertugas menghapus isi blog
(hapus.php).

Perhatikan bagaimana variabel $id yang berisi id masing-masing isi blog kita
kirimkan sebagai variabel tersembunyi (hidden variable). Variabel ini diperlukan bagi
form selanjutnya untuk mengidentifikasikan secara tepat, isi blog mana yang akan
dimanipulasi. Tabel kita tutup pada akhir loop.
<tr>
<td>
<table align="center" width="200" border="0">
<tr>
<td>
<form action="edit.php" method="post">
<input type="hidden" name="id" value="<?=$id ?>">
<input type="submit" name="submit" value="Edit">
</form>
</td>
<td>
<form action="hapus.php" method="post">
<input type="hidden" name="id" value="<?=$id ?>">
<input type="submit" name="submit" value="Hapus">
</form>
</td>
</tr>
</table>
</td>
</tr>
<?php
}
?>
</table>
<?php
} else {
//kalau query tidak berhasil.
die ("<p>Query tidak berhasil karena: <b>" . mysql_error() .
"</b></p>\n");
}

mysql_close();
//Menutup sesi MySQL

Sekarang semua isi blog sudah bisa ditampilkan, kita memerlukan sebuah form
untuk menambahkan entry baru pada tabel blog. Ini adalah form posting kita.
Dalam form ini, kita akan mengumpulkan 4 buah informasi dinamis. Halaman form
ini kemudian akan mengirimkan keempat data tersebut ke sebuah halaman
pemroses yang akan kita buat sebentara lagi.

?>
<form action="tambah.php" method="POST">
<table align="center">

<tr>
<td>Judul Posting: </td>
<td><input type="text" name="judul" size="40" maxsize="100" /></td>
</tr>
<tr>

<td>User : </td>
<td><input type="text" name="user" size="40" maxsize="100" /></td>
</tr>
<tr>
<td>Isi Posting: </td>

<td><textarea name="entry" cols="100" rows="10"></textarea></td>


</tr>
<tr>
<td><input type="submit" name="Kirim" value="Kirim" /></td>
</tr>
</table>
</form>

Akhirnya, halaman depan admin kita sudah lengkap. DI halaman ini kita bisa melihat
seluruh isi posting yang sudah dilakukan dan tersedia juga link untuk melakukan
editing atau penghapusan. Sebagai tambahan, di bagian bawah, kita juga bisa
melakukan posting baru pada blog kita ini.

Mari kita lihat keseluruhan kodenya dan simpan dengan nama admin.php:

<?
require ('sql_connect.inc');
include (‘cek.inc’);

//Menghubungi database MySQL kita


sql_connect('blog');

//Ini adalah query untuk keperluan admin;


//Kita mengambil semua artikel yang ada beserta seluruh kolomnya.
$query = 'SELECT * FROM blog ORDER BY tanggal DESC';

//Baris kode ini untuk mengeksekusi query


//Jika kita memperoleh hasil positif, akan dilanjutkan dengan proses
loop while
If ($r = mysql_query ($query)) {

//Membuat tampilan tabel


?>
<table align="center" border="1" width="80%">
<tr>
<td colspan="2">
<b><center>Pengelolaan
Berita</b></center></b>
</td>
</tr>
<?php

While ($baris = mysql_fetch_array($r)) {


//memasukkan data ke dalam bentuk tabel
$judul = $baris['judul'];
$user = $baris['user'];
$isi = $baris[‘isi’];
//Data tanggal disesuaikan agar tampil dengan baik
$tanggal = date ('M j y g:i A',
strtotime($baris['tanggal']));
$isi = nl2br ($isi);
?>
<tr>
<td colspan="2">
<table align="center" border="0" width="100%">
<tr>
<td>
<b><?php echo $judul ?></b> - Diposting oleh: <b><?php echo $user;
?></b>
</td>
<td>
<div align="right"><?php echo $tanggal; ?></div>

</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2"><?php echo $isi; ?></td>
</tr>

<tr>
<td>
<table align="center" width="200" border="0">
<tr>
<td>
<form action="edit.php" method="post">
<input type="hidden" name="id" value="<?=$id ?>">
<input type="submit" name="submit" value="Edit">
</form>
</td>
<td>
<form action="hapus.php" method="post">
<input type="hidden" name="id" value="<?=$id ?>">
<input type="submit" name="submit" value="Hapus">
</form>
</td>
</tr>
</table>
</td>
</tr>
<?php
}
?>
</table>
<?php
} else {
//kalau query tidak berhasil.
die ("<p>Query tidak berhasil karena: <b>" . mysql_error() .
"</b></p>\n");
}

mysql_close();
//Menutup sesi MySQL

?>
<form action="tambah.php" method="POST">
<table align="center">
<tr>
<td>Judul Posting: </td>
<td><input type="text" name="judul" size="40" maxsize="100" /></td>
</tr>
<tr>
<td>User : </td>
<td><input type="text" name="user" size="40" maxsize="100" /></td>
</tr>
<tr>
<td>Isi Posting: </td>
<td><textarea name="isi" cols="100" rows="10"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Kirim" /></td>

</tr>
</table>
</form>

Halaman berikut yang harus kita buat adalah halaman pemroses pertama yaitu
halaman tambah posting. Ini adalah proses 2 tahap. Pertama data harus kita peroleh
dengan menggunakan POST. Tahap berikutnya meliputi pembersihan data dan
melakukan format agar kompatibel bagi database MySQL.

Karakter-karakter seperti tanda kutip tunggal dan ganda dapat menyebabkan query
tidak berjalan. Kita harus menambahkan escape characters. Kita juga akan
menambahkan proses penangkapan error untuk mengecek data yang dikirimkan.
Jika ada, proses akan dilanjutkan, namun jika tidak ada, maka pesan error akan
ditampilkan.

<?
if (isset($_POST['submit'])) {
require ('sql_connect.inc');

//menghubungkan ke database MySQL


sql_conenct('blog');

Proses berikutnya adalah menangkap data yang dikirimkan dari form halaman depan
admin kita.

$judul = $_POST['judul'];
$isi = $_POST['isi'];
$user = $_POST['user'];

Perintah trim akan menghapus semua spasi yang tidak diperlukan pada akhir atau
awal string. Ini perlu dilakukan agar data tetap berukuran sekecil mungkin dan
nampak indah saat ditampilkan.

//Membersihkan teks menggunakan trim


trim ($judul);
trim ($isi);
trim ($user);

Fungsi adslashes adalah fungsi PHP yang akan menambahkan escape character (‘/’)
ke semua karakter yang bermasalah seperti tanda kutip.

//menambahkan escape characters pada query


$judul = addslashes ($judul);
$isi = addslashes ($isi);
$user = addslashes ($user);
$tanggal = date('Y-m-d H:i');

Sampai di sini, semua data sudah selesai di proses dan siap untuk dimasukkan ke
dalam tabel database MySQL. Karena kita akan menambahkan data baru, maka kita
akan menggunakan INSERT agar MySQL menyisipkan baris baru. Perhatikan bahwa
field id akan secara otomatis bertambah meskipun kita set di query ini dengan angka
0. Dengan cara ini, maka id tersebut akan tetap unik.

//mendefinisikan query
$query = "INSERT INTO blog (id, judul, isi, tanggal, user)
VALUES (0, '$judul', '$isi', ‘$tanggal’, '$user')";

Sisa kode di halaman ini akan mengirimkan query ke database MySQL. Sebagai
tambahan, kita akan tampilkan status hasil posting oleh user tersebut agar tahu
bahwa entry posting sudah berhasil.

//mengeksekusi query
if (@mysql_query ($query)) {
?>
<center>Posting sudah berhasil disimpan.
<a href="admin.php">Kembali ke halaman admin
</a></center>
<?php
} else {
?>
<center>Posting gagal.
<a href="admin.php">Kembali ke halaman admin
</a></center>
<?php
}
mysql_close(); //Menutup sesi MySQL
} else {
<center>Tidak ada data yang bisa di proses.
<a href="admin.php">Kembali ke halaman admin
</a></center>
}

Sampai di sini, kita sudah berhasil menyelesaikan halaman utama admin yang akan
terhubung dengan 3 halaman pemroses selanjutnya yaitu tambah.php untuk
menambah posting baru, edit.php untuk melakukan editing terhadap posting dan
hapus.php untuk menghapus posting.

Kemudian kita juga sudah membuat halaman tambah.php, yang keseluruhan


kodenya adalah sebagai berikut:

<?
if (isset($_POST['submit'])) {
require ('sql_connect.inc');
include (‘cek.inc’);

//menghubungkan ke database MySQL


sql_conenct('blog');
$judul = $_POST['judul'];
$isi = $_POST['isi'];
$user = $_POST['user'];

//Membersihkan teks menggunakan trim


trim ($judul);
trim ($isi);
trim ($user);
//menambahkan escape characters pada query
$judul = addslashes ($judul);
$isi = addslashes ($isi);
$user = addslashes ($user);
$tanggal = date('Y-m-d H:i');
//mendefinisikan query
$query = "INSERT INTO blog (id, judul, isi, tanggal, user)
VALUES (0, '$judul', '$isi', ‘$tanggal’, '$user')";

//mengeksekusi query
if (@mysql_query ($query)) {
?>
<center>Posting sudah berhasil disimpan.
<a href="admin.php">Kembali ke halaman admin
</a></center>
<?php
} else {
?>
<center>Posting gagal.
<a href="admin.php">Kembali ke halaman admin
</a></center>
<?php
}
mysql_close(); //Menutup sesi MySQL
} else {
<center>Tidak ada data yang bisa di proses.
<a href="admin.php">Kembali ke halaman admin
</a></center>
}
?>

Tugas berikutnya adalah membuat file untuk proses edit dan hapus. Siap….

Yang pertama kita akan membuat file-file pemroses edit isi blog. Di sini kita akan memerlukan 2
buah file, yang pertama adalah form yang akan kita gunakan untuk mengedit data, dan file kedua
akan memproses upadate dari form pertama tadi ke database MySQL.

Halaman form yang pertama tadi akan mengambil data dari database MySQL dan
menampilkannya dalam bentuk form. Nah, karena form ini menggunakan HTML standar, maka
kita perlu melakukan sedikit langkah agar teks yang tersimpan tadi tidak mengacaukan tag-tag
HTML.

Seperti biasa, kita mulai dengan membuka koneksi:

<?php
require ('sql_connect.inc');
include (‘cek.inc’);

//menghubungi database MySQL


sql_connect('blog');

Setelah koneksi terbuka, kita perlu menangkap data POST yang dikirimkan oleh
halaman utama admin. Kita perlu menangkap field hidden bernama ‘id’. Kita juga
akan menggunakan klausul WHERE dalam query kita agar data yang diambil hanya
data yang relevan saja, yaitu data yang sesuai dengan ‘id’.

//menangkap data POST


$id = $_POST['id'];
//mendefinisikan query
$query = "SELECT * FROM blog WHERE id=’$id’";
//menjalankan query
if ($r = mysql_query($query)) {

$baris = mysql_fetch_array ($r); //mengambil informasi, perhatikan bahwa


kita tidak perlu menggunakan while karena hanya ada 1 baris saja.

Setelah pengambilan data selesai, kita akan melanjutkan dengan proses untuk
tampilan. ‘Judul’ dan ‘’isi’ akan kita tampilkan dalam sebuah field teks di form kita
ini. Karena field ini kemungkinan sudah berisi data, maka kita harus menghapus tag
HTML dan menggantikannya dengan escape character yang sesuai. Dengan cara ini,
maka apapun tag HTML yang ikut tersimpan tidak akan mengacaukan tampilan
proses editing ini. Kita akan menggunakan fungsi ‘htmlentities’ untuk melakukannya.

Karena data dari form ini masih akan dikirimkan lagi ke halaman lain yang bertugas
untuk melakukan update ke database MySQL, maka data ini tetap harus di track,
dan kita akan menggunakan field id yang hidden lagi.

//meletakkan informasi dari query ke dalam variabel agar siap tampil.


$judul = htmlentities($baris['judul']);
$user = htmlentities($baris['user’]);
$id = $baris['id'];
$isi = htmlentities($baris['isi']);
?>

Sekarang kita akan menampilkan isi variabel ini ke dalam field dalam form dengan
perintah echo seperti ini <?php echo $judul; ?>.

<center>
Halaman berikutnya yang akan memproses data dari sini akan kita namakan
editsave.php, jadi kita masukkan di sini.
<form action="editsave.php" method="POST">
<table>
<tr>
<td>
Judul Posting:
<input type="text" name="judul" size="40"
maxsize="100" value="<?php echo $judul; ?>" />
</td>
<td>
User:
<input type="text" name="user" size="20"
maxsize="50" value="<?php echo $user; ?>" />
</td>

</tr>
<?php

//}
?>

<tr>
<td colspan=2>
Isi Posting:
</td>
</tr>
<tr>
<td>
<textarea name="isi" cols="100" rows="15"><?php
echo $isi; ?></textarea>
</td>
</tr>
<tr>
<td>
//Jika user memutuskan untuk menyimpan perubahan, maka halaman ini akan
menuju ke halaman editsave.php:
<form action="editsave.php"
method="post">
<input type="hidden" name="id"
value="<?php echo $id ; ?>" />
<input type="submit" name="submit"
value="Simpan" />
</form>
</td>
<td>

//Jika user ingin membatalkan perubahan, kita akan arahkan kembali ke


halaman utama admin:
<form action="admin.php" method="post">
<input type="submit" name="submit"
value="Cancel" />
</form>
</td>
</tr>
</table>
</center>
<?php

Kita akan mengakhiri halaman ini dengan menangkap error jika ada, dan kemudian
menutup koneksi MySQL.

} else {
echo "<p>Tidak bisa mengambil data posting. </p>";
}

mysql_close(); //Menutup sesi MySQL

Nah, listing program keseluruhan untuk file edit.php ini adalah sebagai berikut:

<?php
require ('sql_connect.inc');
include ('cek.inc');

//menghubungi database MySQL


sql_connect('blog');
//menangkap data POST
$id=$_POST['id'];

//mendefinisikan query
$query = "SELECT * FROM blog WHERE id='$id'";
//menjalankan query
if ($r = mysql_query($query)) {

$baris = mysql_fetch_array ($r); //mengambil informasi, perhatikan bahwa


kita tidak perlu menggunakan while karena hanya ada 1 baris saja.
//meletakkan informasi dari query ke dalam variabel agar siap tampil.
$judul = htmlentities($baris['judul']);
$user = htmlentities($baris['user']);
$id = $baris['id'];
$isi = htmlentities($baris['isi']);
?>
<center>
<form action="editsave.php" method="POST">
<table>
<tr>
<td>
Judul Posting:
<input type="text" name="judul" size="40"
maxsize="100" value="<?php echo $judul; ?>" />
</td>
</tr>
<tr>
<td>
User:
<input type="text" name="user" size="20"
maxsize="50" value="<?php echo $user; ?>" />
</td>

</tr>
<?php

//}
?>

<tr>
<td colspan=2>
Isi Posting:
</td>
</tr>
<tr>
<td>
<textarea name="isi" cols="100" rows="15"><?php
echo $isi; ?></textarea>
</td>
</tr>
<tr>
<td>

<form action="editsave.php"
method="post">
<input type="hidden" name="id"
value="<?php echo $id ; ?>" />
<input type="submit" name="submit"
value="Simpan" />
</form>
</td>
<td>

<form action="admin.php" method="post">


<input type="submit" name="submit"
value="Cancel" />
</form>
</td>
</tr>
</table>
</center>
<?php
} else {
echo "<p>Tidak bisa mengambil data posting. </p>";
}
mysql_close(); //Menutup sesi MySQL
?>

Kita masih harus membuat 2 halaman lagi, namun jangan khawatir karena 2
halaman ini kecil-kecil aja ko.

Halaman berikut yang akan kita buat adalah halaman editsave.php yang ekan
memproses data dari form edit.php ke MySQL.

Kita akan menggunakan perintah MySQL UPDATE dlaam querynya. Seperti biasa,
kita mulai dengan membuka hubungan ke server MySQL.

require ('sql_connect.inc');
//menghubungi database MySQL
sql_connect('blog');
?>

Kemudian kita akan menangkap data dari form sebelumnya dan menyiapkannya
untuk di masukkan ke dalam database. Seperti sebelumnya, kita akan menggunakan
trim dan addslashes.

//menangkap data POST

$judul = $_POST['judul'];
$isi = $_POST['isi'];
$user = $_POST['user'];
$id = $_POST['id'];

//membersihkan data sebelum diinput


trim ($judul);
trim ($isi);
trim ($user);

//menambahkan escape character


$judul = addslashes ($judul);
$isi = addslashes ($isi);
$user = addslashes ($user);

Query berikut ini akan menggunakan field hidden ‘id’ untuk dapat memproses dan
mengambil hanya data yang kita inginkan saja. Cara mengambilnya adalah
menggunakan fungsi ‘mysql_affected_rows’ untuk memastikan bahwa sebuah baris
sudah berhasil diupdate. Kita bisa memverifikasi hasilnya menggunakan if-else.

//mendefinisikan query
$query = "UPDATE blog SET judul='$judul', isi='$isi', user='$user' WHERE
id={$id}";

//menjalankan query
$r = mysql_query ($query);

?>
<table>
<?php
if (mysql_affected_rows() == 1) {
//Jika update berhasil
?>
<table>
<tr>
<td>
Update Berhasil
</td>
</tr>
<?php
} else {
//jika gagal
?>
<tr>
<td>
Update Gagal
</td>
</tr>
<?php
}
?>

<tr>
<td>
<form action="admin.php" method="post">
<input type="submit" name="submit" value="Ok" />
</form>
</td>
</tr>
</table>

<?php

mysql_close(); //Menutup sesi MySQL


?>

Sampai di sini, kita sudah menyelesaikan file editsave.php kita, yang keseluruhan
kodenya adalah sebagai berikut:

<?
require ('sql_connect.inc');
include (‘cek.inc’);

//menghubungi database MySQL


sql_connect('blog');

//menangkap data POST

$judul = $_POST['judul'];
$isi = $_POST['isi'];
$user = $_POST['user'];
$id = $_POST['id'];

//membersihkan data sebelum diinput


trim ($judul);
trim ($isi);
trim ($user);

//menambahkan escape character


$judul = addslashes ($judul);
$isi = addslashes ($isi);
$user = addslashes ($user);
//mendefinisikan query
$query = "UPDATE blog SET judul='$judul', isi='$isi', user='$user' WHERE
id={$id}";

//menjalankan query
$r = mysql_query ($query);

?>
<table>
<?php
if (mysql_affected_rows() == 1) {
//Jika update berhasil
?>
<table>
<tr>
<td>
Update Berhasil
</td>
</tr>
<?php
} else {
//jika gagal
?>
<tr>
<td>
Update Gagal
</td>
</tr>
<?php
}
?>

<tr>
<td>
<form action="admin.php" method="post">
<input type="submit" name="submit" value="Ok" />
</form>
</td>
</tr>
</table>

<?php

mysql_close(); //Menutup sesi MySQL


?>

Akhirnya, kita sampai juga di pembuatan halaman terakhir dari proyek pembuatan
blog sederhana ini yaitu halaman hapus.php.

Halaman ini sebenarnya sangat mirip dengan halaman editsave.php, dengan


perbedaan bahwa perintah MySQL yang digunakan adalah DELETE. Karena itu, kita
sama sekali tidak perlu menyiapkan datanya terlebih dahulu seperti yang kita
lakukan pada editsave.php.
Sekali lagi kita akan menggunakan fungsi ‘mysql_affected_rows’ untuk memastikan
proses penghapusan sudah berjalan dengan baik.

<?
require ('sql_connect.inc');
include (‘cek.inc’);

//menghubungi database MySQL


sql_connect('blog');

$id=$_POST['id'];

//Mendefinisikan query
$query = "DELETE FROM blog WHERE id='$id' LIMIT 1";

//Mengirimkan query untuk menghapus isi posting


mysql_query ($query);

if (mysql_affected_rows() == 1) {
//jika penghapusan berhasil
?>
<table>
<tr>
<td>
Penghapusan data berhasil
</td>
</tr>
<?php
} else {
//Jika gagal
?>
<tr>
<td>
Penghapusan data gagal
</td>
</tr>
<?php
}
?>

<tr>
<td>
<form action="admin.php" method="post">
<input type="submit" name="submit" value="Ok" />
</form>
</td>
</tr>
</table>

<?php

mysql_close(); //Menutup sesi MySQL


?>

Nah, semua halaman yang diperlukan untuk membuat blog kita sudah jadi. Tentu
saja seperti yang sudah saya sampaikan, ini adalah bentuk yang sangat
disederhanakan dari sebuah aplikasi blog. Masih sangat banyak yang bisa
disempurnakan, namun untuk menjaga kesederhanaan penjelasan, maka sampai di
sini dulu proses pembuatan aplikasi blog kita.

Sekarang anda sudah siap untuk mengembangkan aplikasi anda sendiri.

Anda mungkin juga menyukai