Program Mini Blogging dengan PHP dan MySQL


Blogging sudah menjadi sebuah trend di kalangan netters saat ini. Ada yang isi blognya merupakan hasil copas dari blog lain, ada yang memang asli karangan sendiri, ada yang merupakan hasil pemindaian dari fitur RSS dan lain sebagainya. Terlepas dari keaslian content blog-blog tersebut bukanlah sesuatu yang akan kita bahas kali ini karena hal tersebut harus dikembalikan ke hati dan nurani Anda masing-masing.

Yang akan kita bahas kali ini adalah bagaimana cara membuat sebuah sistem blogging yang sederhana dengan menggunakan PHP dan MySQL. Dimana di dalam sistem tersebut kita dapat menambah berita beserta gambar untuk berita tersebut, kategori berita berikut dengan fitur manipulasi datanya. Untuk itu silahkan mengikuti artikel ini hingga akhir.

Sekilat info perihal pembuatan program, sama seperti artikel yang lain bahwa artikel ini pada awalnya merupakan request seorang teman yang hendak mengumpulkan tugas mandiri untuk mata kuliah Web dan saya pun bermaksud untuk mendokumentasikannya. Silahkan perhatikan gambar-gambar berikut ini:

1

2

3

4

5

6

7

8

9

Untuk kode program, dapat dilihat sebagai berikut:

1. File fungsi.php

<?php
date_default_timezone_set( 'Asia/Jakarta' );
mysql_connect( 'localhost', 'root', '' );
mysql_select_db( 'ahmad-rosid' );
define( 'WEB', 'Ahmad Rosyid' );
define( 'URL', 'http://localhost/ahmad-rosyid' );
$act = isset( $_POST['act'] ) ? $_POST['act'] : '';
$page = isset( $_GET['page'] ) ? $_GET['page'] : '';

// cek login
if( $act == 'Login' ) {
	$username = isset( $_POST['username'] ) ? $_POST['username'] : '';
	$password = isset( $_POST['password'] ) ? $_POST['password'] : '';
	$salah = array();
	if( !count( $salah ) ) {
		$data = mysql_fetch_array( mysql_query( "SELECT * FROM user WHERE username='{$username}' AND password='".md5( $password )."'" ) );
		if( $data ) {
			$_SESSION['uid'] = $data['uid'];
		} else {
			$salah[] = 'Password Anda salah. Ulangi lagi.';
		}
	}
	if( count( $salah ) ) { $_SESSION['login']['gagal'] = implode( '<br>', $salah ); }
	header( "Location: ".URL );
	exit;
} elseif( $page == 'logout' ) {
	session_destroy();
	header( "Location: ".URL );
	exit;
} elseif( $act == 'Simpan Kategori' ) {
	$salah = array();
	$kategori = isset( $_POST['kategori'] ) ? $_POST['kategori'] : '';
	$kategori_array = explode( ',', $kategori );
	for( $i = 0; $i < count( $kategori_array ); $i++ ) {
		if( mysql_num_rows( mysql_query( "SELECT * FROM kategori WHERE kategori='{$kategori_array[$i]}'" ) ) == 0 ) {
			mysql_query( "INSERT INTO kategori VALUES( '', '{$kategori_array[$i]}' )" );
		} else {
			$salah[] = $kategori_array[$i];
		}
	}
	if( count( $salah ) ) { $_SESSION['simpan-kategori']['gagal'] = implode( ', ', $salah ); }
	header( "Location: ".URL."/?page=kategori" );
	exit;
} elseif( $act == 'Ubah Kategori' ) {
	$salah = array();
	$kid = isset( $_GET['kid'] ) ? $_GET['kid'] : '';
	$kategori = isset( $_POST['kategori'] ) ? $_POST['kategori'] : '';
	$sql = mysql_fetch_array( mysql_query( "SELECT * FROM kategori WHERE kid='{$kid}'" ) );
	$kategori = ( $kategori == "" ) ? $sql['kategori'] : $kategori;
	if( !count( $salah ) ) {
		mysql_query( "UPDATE kategori SET kategori='{$kategori}' WHERE kid='{$kid}'" );
	}
	if( count( $salah ) ) { $_SESSION['ubah-kategori']['gagal'] = implode( ', ', $salah ); }
	if( count( $salah ) ) {
		header( "Location: ".URL."/?page=edit-kategori&kid=$kid" );
	} else {
		header( "Location: ".URL."/?page=kategori" );
	}
	exit;
} elseif( $page == 'delete-kategori' ) {
	$kid = isset( $_GET['kid'] ) ? $_GET['kid'] : '';
	mysql_query( "DELETE FROM kategori WHERE kid='{$kid}'" );
	header( "Location: ".URL."/?page=kategori" );
	exit;
} elseif( $act == 'Simpan Postingan' ) {	
	$kid = isset( $_GET['kid'] ) ? $_GET['kid'] : '';
	$uid = isset( $_SESSION['uid'] ) ? $_SESSION['uid'] : '';
	$judul = isset( $_POST['judul'] ) ? $_POST['judul'] : '';
	$isi = isset( $_POST['isi'] ) ? $_POST['isi'] : '';
	$gambar = $_FILES['gambar']['name'];
	$tmpname = $_FILES['gambar']['tmp_name'];
	$dir = "gambar/";
	$salah = array();
	$time = time();
	if( empty( $judul ) || empty( $isi ) ) { $salah[] = 'Harap mengisi seluruh data postingan sebelum mengklik tombol.'; }
	if( !count( $salah ) ) {
		if( mysql_num_rows( mysql_query( "SELECT * FROM posting WHERE judul='{$judul}'" ) ) == 0 ) {
			mysql_query( "INSERT INTO posting VALUES( '', '{$kid}', '{$uid}', '{$judul}', '{$isi}', '{$gambar}', '{$time}', '{$time}', '0' )" );
			move_uploaded_file( $tmpname, $dir . $gambar );
		} else {
			$salah[] = 'Maaf, judul posting ini sudah ada sebelumnya. Coba yang lain.';
		}
	}
	if( count( $salah ) ) { $_SESSION['simpan-posting']['gagal'] = implode( ', ', $salah ); }
	if( count( $salah ) ) {
		header( "Location: ".URL."/?page=tambah-postingan&kid=$kid" );
	} else {
		header( "Location: ".URL."/?page=kategori&kid=$kid" );
	}
	exit;
} elseif( $act == 'Edit Postingan' ) {
	$pid = isset( $_GET['pid'] ) ? $_GET['pid'] : '';
	$kid = isset( $_GET['kid'] ) ? $_GET['kid'] : '';
	$sql_posting = mysql_fetch_array( mysql_query( "SELECT * FROM posting WHERE kid='{$kid}' AND pid='{$pid}'" ) );
	$judul = isset( $_POST['judul'] ) ? $_POST['judul'] : '';
	$isi = isset( $_POST['isi'] ) ? $_POST['isi'] : '';
	$gambar = $_FILES['gambar']['name'];
	$tmpname = $_FILES['gambar']['tmp_name'];
	$dir = "gambar/";
	$salah = array();
	$time = time();
	$judul = ( $judul == "" ) ? $sql_posting['judul'] : $judul;
	$isi = ( $isi == "" ) ? $sql_posting['isi'] : $isi;
	$gambar = ( $gambar == "" ) ? $sql_posting['gambar'] : $gambar;
	if( !count( $salah ) ) {
		mysql_query( "UPDATE posting SET isi='{$isi}', judul='{$judul}', gambar='{$gambar}', diubah='{$time}' WHERE pid='{$pid}'" );
		move_uploaded_file( $tmpname, $dir . $gambar );
	}
	if( count( $salah ) ) { $_SESSION['edit-posting']['gagal'] = implode( ', ', $salah ); }
	if( count( $salah ) ) {
		header( "Location: ".URL."/?page=edit-postingan&pid=$pid" );
	} else {
		header( "Location: ".URL."/?page=kategori&kid=$kid" );
	}
	exit;
} elseif( $page == 'delete-postingan' ) {
	$pid = isset( $_GET['pid'] ) ? $_GET['pid'] : '';
	$kid = isset( $_GET['kid'] ) ? $_GET['kid'] : '';
	
	$dir = "gambar/";
	$gbr = mysql_fetch_array( mysql_query( "SELECT * FROM posting WHERE pid='{$pid}'" ) );
	if( file_exists( $dir . $gbr['gambar'] ) ) {
		unlink( $dir . $gbr['gambar'] );
	}
	
	mysql_query( "DELETE FROM posting WHERE pid='{$pid}' AND kid='{$kid}'" );
	header( "Location: ".URL."/?page=kategori&kid=$kid" );
	exit;
}

function batas( $id, $length ) {
	$str = "";
	$str .= substr( $id, 0, $length );
	if( strlen( $id ) > $length ) $str .= "...";
	return $str;
}
?>

2. File index.php

<?php
session_start();
include "fungsi.php";
$uid = isset( $_SESSION['uid'] ) ? $_SESSION['uid'] : '';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo WEB; ?></title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript">
function cek() {
	var a = document.login;
	var b = a.username.value;
	var c = a.password.value;
	if( b == "" || c == "" ) {
		alert( "Harap mengisi username dan password" );
		return false;
	} else {
		return true;
	}
}
function cek_kategori() {
	var a = document.kat;
	var b = a.kategori.value;
	if( b == "" ) {
		alert( "Harap mengisi nama kategori postingan" );
		return false;
	} else {
		return true;
	}
}
function konfirmasi(id) {
	var tanya = confirm( "Apakah Anda yakin akan menghapus data dengan ID - " + id + " ?" );
	if( tanya == true ) return true;
	else return false;
}
</script>
</head>

<body>
<?php
echo "<div class=\"wrap\">\n";
echo "	<div class=\"atas\">\n";
echo "		<div class=\"logo\">".WEB." <span class=\"sang\">Sang Pencerah</span></div>\n";
echo "		<div class=\"slogan\">Media untuk berbagi postingan yang unik, aneh, tabu tapi layak untuk dibaca</div>\n";
echo "	</div>\n";
echo "	<div class=\"page\">\n";
echo "		<div class=\"kiri\">\n";
if( $uid ) {
	echo "		<div class=\"box\">\n";
	echo "			<h1>Menu Utama</h1>\n";
	echo "			<ul class=\"menu\">\n";
	echo "				<li><a href=\"".URL."/\">Home</a></li>\n";
	echo "				<li><a href=\"".URL."/?page=kategori\">Kategori Posting</a></li>\n";
	echo "				<li><a href=\"".URL."/?page=cari-posting\">Cari Posting</a></li>\n";
	echo "				<li><a href=\"".URL."/?page=paling-baru\">Postingan Terbaru</a></li>\n";
	echo "				<li><a href=\"".URL."/?page=paling-wow\">Postingan Terwow</a></li>\n";
	echo "				<li><a href=\"".URL."/?page=logout\">Logout</a></li>\n";
	echo "			</ul>\n";
	echo "		</div>\n";
} else {
	echo "		<div class=\"box\">\n";
	echo "			<h1>Autentikasi</h1>\n";
	echo "			<form method=\"post\" action=\"\" autocomplete=\"off\" class=\"form-login\" name=\"login\">\n";
	echo "				<input type=\"text\" name=\"username\" placeholder=\"Username\" autofocus><br>\n";
	echo "				<input type=\"password\" name=\"password\" placeholder=\"Password\"><br>\n";
	echo "				<input type=\"submit\" name=\"act\" value=\"Login\" onclick=\"return cek();\">\n";
	echo "			</form>\n";
	if( isset( $_SESSION['login']['gagal'] ) ) {
		echo "		<div class=\"error\">".$_SESSION['login']['gagal']."</div>\n";
		unset( $_SESSION['login']['gagal'] );
	}
	echo "		</div>\n";
	
	echo "		<div class=\"box\">\n";
	echo "			<h1>Quick Links</h1>\n";
	echo "			<ul class=\"menu\">\n";
	echo "				<li><a href=\"".URL."/\">Home</a></li>\n";
	echo "				<li><a href=\"".URL."/?page=cari-posting\">Cari Posting</a></li>\n";
	echo "				<li><a href=\"".URL."/?page=paling-baru\">Postingan Terbaru</a></li>\n";
	echo "				<li><a href=\"".URL."/?page=paling-wow\">Postingan Terwow</a></li>\n";
	echo "			</ul>\n";
	echo "		</div>\n";
}
echo "		</div>\n";
echo "		<div class=\"kanan\">\n";

if( $uid ) {
	if( $page == 'kategori' ) {
		$kid = isset( $_GET['kid'] ) ? $_GET['kid'] : '';
		if( $kid ) {
			$detail_kategori = mysql_fetch_array( mysql_query( "SELECT * FROM kategori WHERE kid='{$kid}'" ) );
			$postingan = mysql_query( "SELECT * FROM posting WHERE kid='{$kid}'" );
			echo "		<div class=\"box\">\n";
			echo "			<h1>Kategori : {$detail_kategori['kategori']}</h1>\n";
			echo "			<p>Postingan untuk kategori - {$detail_kategori['kategori']} &rarr; <a href=\"".URL."/?page=tambah-postingan&kid=$kid\">Tambah Postingan</a> &rarr; <a href=\"javascript:history.back();\">Kembali ke halaman sebelumnya</a></p>\n";
			echo "			<table border=\"0\">\n";
			echo "			<tr class=\"head\">\n";
			echo "				<td width=\"30\" align=\"center\">NO</td>\n";
			echo "				<td width=\"300\">Judul Postingan</td>\n";
			echo "				<td width=\"80\" align=\"center\">Dibuat</td>\n";
			echo "				<td width=\"80\" align=\"center\">Diubah</td>\n";
			echo "				<td width=\"50\" align=\"center\">Dilihat</td>\n";
			echo "				<td width=\"40\" align=\"center\">Aksi</td>\n";
			echo "			</tr>\n";
			
			if( mysql_num_rows( $postingan ) == 0 ) {
				echo "		<tr class=\"no-data\"><td colspan=\"6\">Maaf, belum ada data kategori postingan untuk saat ini</td></tr>\n";
			} else {
				$no = 1;
				while( $datapost = mysql_fetch_array( $postingan ) ) {
					echo "	<tr class=\"data\">\n";
					echo "		<td align=\"center\">{$no}</td>\n";
					echo "		<td><b><a href=\"".URL."/?page=postingan&pid={$datapost['pid']}\" title=\"Permalink - {$datapost['judul']}\">".batas( $datapost['judul'], 45 )."</a></b></td>\n";
					echo "		<td align=\"center\">".date("d-m-Y", $datapost['dibuat'] )."</td>\n";
					echo "		<td align=\"center\">".date("d-m-Y", $datapost['diubah'] )."</td>\n";
					echo "		<td align=\"center\">{$datapost['dilihat']}</td>\n";
					echo "		<td align=\"center\"><a href=\"".URL."/?page=edit-postingan&kid={$datapost['kid']}&pid={$datapost['pid']}\" title=\"Edit Postingan - {$datapost['judul']}\"><img src=\"".URL."/b_edit.png\"></a>  <a href=\"".URL."/?page=delete-postingan&kid={$datapost['kid']}&pid={$datapost['pid']}\" onclick=\"return konfirmasi('".$datapost['pid']."')\" title=\"Hapus Postingan - {$datapost['judul']}\"><img src=\"".URL."/b_drop.png\"></a></td>\n";
					echo "	</tr>\n";
					$no++;
				}		
			}
			echo "			</table>\n";
			echo "		</div>\n";		
		} else {
			echo "		<div class=\"box\">\n";
			echo "			<h1>Kategori Posting</h1>\n";
			echo "			<form method=\"post\" action=\"\" autocomplete=\"off\" class=\"kat\" name=\"kat\">\n";
			echo "				<input type=\"text\" name=\"kategori\" placeholder=\"Ketik nama kategori, pisahkan dengan koma untuk menambah sekaligus\" autofocus><br>\n";
			echo "				<input type=\"submit\" name=\"act\" value=\"Simpan Kategori\" onclick=\"return cek_kategori();\">\n";
			echo "			</form>\n";
			echo "		</div>\n";
			echo "		<div class=\"box\">\n";
			$sql_kategori = mysql_query( "SELECT * FROM kategori" );
			echo "		<p>Total Kategori : <b>".mysql_num_rows( $sql_kategori )."</b></p>\n";
			echo "			<table border=\"0\">\n";
			echo "			<tr class=\"head\">\n";
			echo "				<td width=\"35\" align=\"center\">No</td>\n";
			echo "				<td width=\"250\">Nama Kategori</td>\n";
			echo "				<td width=\"100\" align=\"center\">Total Data</td>\n";
			echo "				<td width=\"50\" align=\"center\">Aksi</td>\n";
			echo "			</tr>\n";
			if( mysql_num_rows( $sql_kategori ) == 0 ) {
				echo "		<tr class=\"no-data\"><td colspan=\"4\">Maaf, belum ada data kategori untuk saat ini</td></tr>\n";
			} else {
				$no = 1;
				while( $data_kategori = mysql_fetch_array( $sql_kategori ) ) {
					$total_lagu = mysql_num_rows( mysql_query( "SELECT * FROM posting WHERE kid='{$data_kategori['kid']}'" ) );
					echo "	<tr class=\"data\">\n";
					echo "		<td align=\"center\">{$no}</td>\n";
					echo "		<td>Kategori: <b><a href=\"".URL."/?page=kategori&kid={$data_kategori['kid']}\" title=\"Klik untuk melihat daftar postingan di kategori  - {$data_kategori['kategori']}\">{$data_kategori['kategori']}</a></b></td>\n";
					echo "		<td align=\"center\">{$total_lagu}</td>\n";
					echo "		<td align=\"center\"><a href=\"".URL."/?page=edit-kategori&kid={$data_kategori['kid']}\" title=\"Edit kategori  - {$data_kategori['kategori']}\"><img src=\"".URL."/b_edit.png\"></a> &nbsp; <a href=\"".URL."/?page=delete-kategori&kid={$data_kategori['kid']}\" onclick=\"return konfirmasi('".$data_kategori['kid']."')\" title=\"Hapus kategori - {$data_kategori['kategori']}\"><img src=\"".URL."/b_drop.png\"></a></td>\n";
					echo "	</tr>\n";
					$no++;
				}		
			}
			echo "			</table>\n";
			echo "		</div>\n";
		}
	} elseif( $page == 'edit-kategori' ) {
		$kid = isset( $_GET['kid'] ) ? $_GET['kid'] : '';
		$edit_kategori = mysql_fetch_array( mysql_query( "SELECT * FROM kategori WHERE kid='{$kid}'" ) );
		echo "		<div class=\"box\">\n";
		echo "			<h1>Edit Kategori</h1>\n";
		echo "			<p>Silahkan memasukkan nama kategori yang baru lalu tekan tombol Ubah untuk menyimpan data</p>\n";
		echo "			<form method=\"post\" action=\"\" class=\"kat\">\n";
		echo "				<input type=\"text\" name=\"kategori\" placeholder=\"Masukkan nama kategori lirik yang baru\" value=\"{$edit_kategori['kategori']}\"><br><input type=\"submit\" name=\"act\" value=\"Ubah Kategori\">\n";
		if( isset( $_SESSION['simpan-kategori']['gagal'] ) ) {
			echo "				<div class=\"cat-error\">".$_SESSION['simpan-kategori']['gagal']."</div>\n";
			unset( $_SESSION['simpan-kategori']['gagal'] );
		}
		echo "			</form>\n";
		echo "		</div>\n";	
	} elseif( $page == 'tambah-postingan' ) {
		$kid = isset( $_GET['kid'] ) ? $_GET['kid'] : '';
		$topost = mysql_fetch_array( mysql_query( "SELECT * FROM kategori WHERE kid='{$kid}'" ) );
		echo "		<div class=\"box\">\n";
		echo "			<h1>Tambah Postingan ke - {$topost['kategori']}</h1>\n";
		echo "			<form method=\"post\" action=\"\" class=\"kat\" autocomplete=\"off\" enctype=\"multipart/form-data\">\n";
		echo "				Masukkan Judul:<br><input type=\"text\" name=\"judul\" placeholder=\"Judul Postingan\"><br>\n";
		echo "				Masukkan Isi:<br><textarea name=\"isi\" rows=\"10\" placeholder=\"Ketik Isi Postingan\"></textarea><br>\n";
		echo "				<input type=\"file\" name=\"gambar\" size=\"80\"><br>\n";
		echo "				<input type=\"submit\" name=\"act\" value=\"Simpan Postingan\">\n";
		if( isset( $_SESSION['simpan-posting']['gagal'] ) ) {
			echo "				<div class=\"cat-error\">".$_SESSION['simpan-posting']['gagal']."</div>\n";
			unset( $_SESSION['simpan-posting']['gagal'] );
		}
		echo "			</form>\n";
		echo "		</div>\n";	
	} elseif( $page == 'edit-postingan' ) {
		$pid = isset( $_GET['pid'] ) ? $_GET['pid'] : '';
		$editpost = mysql_fetch_array( mysql_query( "SELECT * FROM posting WHERE pid='{$pid}'" ) );
		echo "		<div class=\"box\">\n";
		echo "			<h1>Edit: <i>{$editpost['judul']}</i></h1>\n";
		echo "			<form method=\"post\" action=\"\" class=\"kat\" autocomplete=\"off\" enctype=\"multipart/form-data\">\n";
		echo "				Masukkan Judul:<br><input type=\"text\" name=\"judul\" placeholder=\"Judul Postingan\" value=\"{$editpost['judul']}\"><br>\n";
		echo "				Masukkan Isi:<br><textarea name=\"isi\" rows=\"10\" placeholder=\"Ketik Isi Postingan\">{$editpost['isi']}</textarea><br>\n";
		echo "				<input type=\"file\" name=\"gambar\" size=\"80\"><br>\n";
		echo "				<input type=\"submit\" name=\"act\" value=\"Edit Postingan\">\n";
		if( isset( $_SESSION['edit-posting']['gagal'] ) ) {
			echo "				<div class=\"cat-error\">".$_SESSION['edit-posting']['gagal']."</div>\n";
			unset( $_SESSION['edit-posting']['gagal'] );
		}
		echo "			</form>\n";
		echo "		</div>\n";	
	} elseif( $page == 'cari-posting' ) {
		echo "		<div class=\"box\">\n";
		echo "			<h1>Pencarian Berita</h1>\n";
		echo "			<form method=\"post\" action=\"\" class=\"kat\">\n";
		echo "				<input type=\"text\" name=\"kata\" placeholder=\"Silahkan memasukkan kata kunci pencarian...\" autofocus><br>\n";
		echo "				<input type=\"submit\" name=\"act\" value=\"Cari Berita\">\n";
		echo "			</form>\n";
		echo "		</div>\n";
		
		if( $act == 'Cari Berita' ) {
			$kata = isset( $_POST['kata'] ) ? $_POST['kata'] : '';
			$katas = ( $kata == "" ) ? "Kata Kunci Pencarian Tidak Disebutkan" : $kata;
			$cari = mysql_query( "SELECT * FROM posting WHERE judul LIKE '%$kata%' OR isi LIKE '%$kata%'" );
			echo "	<div class=\"box\">\n";
			echo "		<h1>Hasil Pencarian</h1>\n";
			echo "		<p>Kata Kunci: <b>{$katas}</b> | Jumlah : <b>".mysql_num_rows( $cari )."</b> Data</p>\n";
			if( mysql_num_rows( $cari ) == 0 ) {
				echo "	<p class=\"nihil\">Maaf, tidak ditemukan data berita untuk kata kunci: <b>{$kata}</b>. Coba lagi...</p>\n";
			} else {
				$a = 1;
				while( $rowcari = mysql_fetch_array( $cari ) ) {
					$isi = nl2br( $rowcari['isi'] );
					$bg = ( $a % 2 == 0 ) ? "#FEFEFE" : "#F9F9F9";
					echo "	<div class=\"hasil\" style=\"background:$bg; \">\n";
					echo "		<div class=\"gbr\"><img src=\"".URL."/gambar/{$rowcari['gambar']}\" alt=\"Gambar\"></div>\n";
					echo "		<div class=\"isi\">\n";
					echo "			<div class=\"juduls\"><a href=\"".URL."/?page=postingan&pid={$rowcari['pid']}\">{$rowcari['judul']}</a></div>\n";
					echo "			<div class=\"body\">\n";
					echo batas( $isi, 300 );
					echo "			</div>\n";
					echo "			<div class=\"link\"><a href=\"".URL."/?page=postingan&pid={$rowcari['pid']}\">Baca Selengkapnya...</a> | ".date( "l, F d, Y H:i:s A", $rowcari['dibuat'] )."</div>\n";
					echo "		</div>\n";
					echo "		<div class=\"clear\"></div>\n";
					echo "	</div>\n";		
					$a++;	
				}
			}			
			echo "	</div>\n";
		}
	} elseif( $page == 'paling-baru' ) {
		echo "		<div class=\"box\">\n";
		echo "			<h1>Berita Paling Baru</h1>\n";
		echo "			<p>Berita-berita berikut diurutkan berdasarkan tanggal postingan</p>\n";
		$baru = mysql_query( "SELECT * FROM posting ORDER BY dibuat" );
		echo "			<table border=\"0\">\n";
		echo "			<tr class=\"head\">\n";
		echo "				<td width=\"10\">&nbsp;</td>\n";
		echo "				<td width=\"400\">Judul Berita</td>\n";
		echo "				<td width=\"100\">Kategori</td>\n";
		echo "				<td width=\"80\">Dibuat</td>\n";
		echo "			</tr>\n";
		while( $rbaru = mysql_fetch_array( $baru ) ) {
			$kats = mysql_fetch_array( mysql_query( "SELECT * FROM kategori WHERE kid='{$rbaru['kid']}'" ) );
			echo "		<tr class=\"data\">\n";
			echo "			<td>&nbsp;</td>\n";
			echo "			<td><a href=\"".URL."/?page=postingan&pid={$rbaru['pid']}\">{$rbaru['judul']}</a></td>\n";
			echo "			<td><a href=\"".URL."/?page=view-kategori&kid={$rbaru['kid']}\">{$kats['kategori']}</a></td>\n";
			echo "			<td>".date( "d-m-Y", $rbaru['dibuat'] )."</td>\n";
			echo "		</tr>\n";
		}
		echo "			</table>\n";
		echo "		</div>\n";
	}  elseif( $page == 'paling-wow' ) {
		echo "		<div class=\"box\">\n";
		echo "			<h1>Berita Paling Wow</h1>\n";
		echo "			<p>Berita-berita berikut diurutkan berdasarkan jumlah total telah dibaca.</p>\n";
		$wow = mysql_query( "SELECT * FROM posting ORDER BY dilihat DESC" );
		echo "			<table border=\"0\">\n";
		echo "			<tr class=\"head\">\n";
		echo "				<td width=\"10\">&nbsp;</td>\n";
		echo "				<td width=\"400\">Judul Berita</td>\n";
		echo "				<td width=\"100\">Kategori</td>\n";
		echo "				<td width=\"60\" align=\"center\">Dibaca</td>\n";
		echo "			</tr>\n";
		while( $rwow = mysql_fetch_array( $wow ) ) {
			$katwow = mysql_fetch_array( mysql_query( "SELECT * FROM kategori WHERE kid='{$rwow['kid']}'" ) );
			echo "		<tr class=\"data\">\n";
			echo "			<td>&nbsp;</td>\n";
			echo "			<td><a href=\"".URL."/?page=postingan&pid={$rwow['pid']}\">{$rwow['judul']}</a></td>\n";
			echo "			<td><a href=\"".URL."/?page=view-kategori&kid={$rwow['kid']}\">{$katwow['kategori']}</a></td>\n";
			echo "			<td align=\"center\">{$rwow['dilihat']} kali</td>\n";
			echo "		</tr>\n";
		}
		echo "			</table>\n";
		echo "		</div>\n";
	} elseif( $page == 'postingan' ) {
		$pid = isset( $_GET['pid'] ) ? $_GET['pid'] : '';
		mysql_query( "UPDATE posting SET dilihat=dilihat+1 WHERE pid='{$pid}'" );
		$viewpost = mysql_fetch_array( mysql_query( "SELECT * FROM posting WHERE pid='{$pid}'" ) );
		$gambar = ( $viewpost['gambar'] == "" ) ? "" : $viewpost['gambar'];
		echo "		<div class=\"box\">\n";
		echo "			<h1>{$viewpost['judul']}</h1>\n";
		echo "			<p class=\"info\">Tanggal : <i>".date( "l, F d, Y H:i:s A" )."</i> | Dilihat : {$viewpost['dilihat']} kali</p>\n";
		echo "			<img src=\"".URL."/gambar/{$gambar}\" class=\"gambar\" alt=\"Gambar\">\n";
		echo "			<p class=\"lirik\">".nl2br( $viewpost['isi'] )."</p>\n";
		echo "		</div>\n";
	} else {
		echo "		<div class=\"box\">\n";
		echo "			<h1>Selamat Datang di Blog Saya</h1>\n";
		echo "			<p>Aplikasi ini secara khusus dirancang untuk menampung informasi maupun kejadian-kejadian yang kita alami sehari-hari yang terjadi di sekitar kita. Penulis merasa dari ke semua peristiwa maupun hal-hal yang dirasa tabu untuk diperbincangkan dan sangat tidak mungkin jika dinalar dengan akal sehat manusia perlu ada suatu wadah atau media yang dapat digunakan untuk mendokumentasikan peristiwa agar tidak lekang dikikis zaman.</p>\n";
		echo "			<p>Selain itu, aplikasi ini juga sengaja dikembangkan dengan harapan dapat turut serta dalam meramaikan dunia jurnalistik Indonesia dalam bidang dunia maya yang dikemas dalam bentuk blog virtual sehingga dapat diakses dimana saja dan kapan saja selama masih terkoneksi dengan layanan internet.</p>\n";
		echo "		</div>\n";
		
		echo "		<div class=\"box\">\n";
		echo "			<h1>Untuk Apa dan Mengapa</h1>\n";
		echo "			<p>Tidak ada maksud dan tujuan tersirat apalagi terselubung dalam hati sanubari saya dalam membuat aplikasi hanya tujuan pembuatan aplikasi ini adalah sebagai bentuk tanggung jawab saya di dalam mempelajari materi mata kuliah Perancangan dan Pemrograman web yang diajarkan oleh <b>Bapak Tukino, S.Kom., M.SI.</b> di Kampus Universitas Putera Batam yang kemudian saya tuangkan dalam bentuk makalah ilmiah.</p>\n";
		echo "			<p>Dan di samping karena masih sangat awam dengan PHP dan MySQL, maka penulis haturkan beribu-ribu maaf dalam pengembangan aplikasi ini. Harapan saya, semoga kiranya dengan adanya aplikasi ini dapat memperkaya wawasan dan pengetahuan kita bersama.</p>\n";
		echo "			<p>Salam hangat dari Sang Jurnalis,</p>\n";
		echo "			<p>Ahmad Rosyid | Ar-Rosyid Media Production</p>\n";
		echo "		</div>\n";
	}
} else {

	 if( $page == 'postingan' ) {
		$pid = isset( $_GET['pid'] ) ? $_GET['pid'] : '';
		mysql_query( "UPDATE posting SET dilihat=dilihat+1 WHERE pid='{$pid}'" );
		$viewpost = mysql_fetch_array( mysql_query( "SELECT * FROM posting WHERE pid='{$pid}'" ) );
		$gambar = ( $viewpost['gambar'] == "" ) ? "" : $viewpost['gambar'];
		echo "		<div class=\"box\">\n";
		echo "			<h1>{$viewpost['judul']}</h1>\n";
		echo "			<p class=\"info\">Tanggal : <i>".date( "l, F d, Y H:i:s A" )."</i> | Dilihat : {$viewpost['dilihat']} kali</p>\n";
		echo "			<img src=\"".URL."/gambar/{$gambar}\" class=\"gambar\" alt=\"Gambar\">\n";
		echo "			<p class=\"lirik\">".nl2br( $viewpost['isi'] )."</p>\n";
		echo "		</div>\n";
	} elseif( $page == 'cari-posting' ) {
		echo "		<div class=\"box\">\n";
		echo "			<h1>Pencarian Berita</h1>\n";
		echo "			<form method=\"post\" action=\"\" class=\"kat\">\n";
		echo "				<input type=\"text\" name=\"kata\" placeholder=\"Silahkan memasukkan kata kunci pencarian...\" autofocus><br>\n";
		echo "				<input type=\"submit\" name=\"act\" value=\"Cari Berita\">\n";
		echo "			</form>\n";
		echo "		</div>\n";
		
		if( $act == 'Cari Berita' ) {
			$kata = isset( $_POST['kata'] ) ? $_POST['kata'] : '';
			$katas = ( $kata == "" ) ? "Kata Kunci Pencarian Tidak Disebutkan" : $kata;
			$cari = mysql_query( "SELECT * FROM posting WHERE judul LIKE '%$kata%' OR isi LIKE '%$kata%'" );
			echo "	<div class=\"box\">\n";
			echo "		<h1>Hasil Pencarian</h1>\n";
			if( mysql_num_rows( $cari ) == 0 ) {
				echo "	<p class=\"nihil\">Maaf, tidak ditemukan data berita untuk kata kunci: <b>{$kata}</b>. Coba lagi...</p>\n";
			} else {
				$a = 1;
				while( $rowcari = mysql_fetch_array( $cari ) ) {
					$isi = nl2br( $rowcari['isi'] );
					$bg = ( $a % 2 == 0 ) ? "#FEFEFE" : "#F9F9F9";
					echo "	<div class=\"hasil\" style=\"background:$bg; \">\n";
					echo "		<div class=\"gbr\"><img src=\"".URL."/gambar/{$rowcari['gambar']}\" alt=\"Gambar\"></div>\n";
					echo "		<div class=\"isi\">\n";
					echo "			<div class=\"juduls\"><a href=\"".URL."/?page=postingan&pid={$rowcari['pid']}\">{$rowcari['judul']}</a></div>\n";
					echo "			<div class=\"body\">\n";
					echo batas( $isi, 300 );
					echo "			</div>\n";
					echo "			<div class=\"link\"><a href=\"".URL."/?page=postingan&pid={$rowcari['pid']}\">Baca Selengkapnya...</a> | ".date( "l, F d, Y H:i:s A", $rowcari['dibuat'] )."</div>\n";
					echo "		</div>\n";
					echo "		<div class=\"clear\"></div>\n";
					echo "	</div>\n";		
					$a++;	
				}
			}			
			echo "	</div>\n";
		}
	}  elseif( $page == 'paling-baru' ) {
		echo "		<div class=\"box\">\n";
		echo "			<h1>Berita Paling Baru</h1>\n";
		echo "			<p>Berita-berita berikut diurutkan berdasarkan tanggal postingan</p>\n";
		$baru = mysql_query( "SELECT * FROM posting ORDER BY dibuat" );
		echo "			<table border=\"0\">\n";
		echo "			<tr class=\"head\">\n";
		echo "				<td width=\"10\">&nbsp;</td>\n";
		echo "				<td width=\"400\">Judul Berita</td>\n";
		echo "				<td width=\"100\">Kategori</td>\n";
		echo "				<td width=\"80\">Dibuat</td>\n";
		echo "			</tr>\n";
		while( $rbaru = mysql_fetch_array( $baru ) ) {
			$kats = mysql_fetch_array( mysql_query( "SELECT * FROM kategori WHERE kid='{$rbaru['kid']}'" ) );
			echo "		<tr class=\"data\">\n";
			echo "			<td>&nbsp;</td>\n";
			echo "			<td><a href=\"".URL."/?page=postingan&pid={$rbaru['pid']}\">{$rbaru['judul']}</a></td>\n";
			echo "			<td><a href=\"".URL."/?page=view-kategori&kid={$rbaru['kid']}\">{$kats['kategori']}</a></td>\n";
			echo "			<td>".date( "d-m-Y", $rbaru['dibuat'] )."</td>\n";
			echo "		</tr>\n";
		}
		echo "			</table>\n";
		echo "		</div>\n";
	}  elseif( $page == 'paling-wow' ) {
		echo "		<div class=\"box\">\n";
		echo "			<h1>Berita Paling Wow</h1>\n";
		echo "			<p>Berita-berita berikut diurutkan berdasarkan jumlah total telah dibaca.</p>\n";
		$wow = mysql_query( "SELECT * FROM posting ORDER BY dilihat DESC" );
		echo "			<table border=\"0\">\n";
		echo "			<tr class=\"head\">\n";
		echo "				<td width=\"10\">&nbsp;</td>\n";
		echo "				<td width=\"400\">Judul Berita</td>\n";
		echo "				<td width=\"100\">Kategori</td>\n";
		echo "				<td width=\"60\" align=\"center\">Dibaca</td>\n";
		echo "			</tr>\n";
		while( $rwow = mysql_fetch_array( $wow ) ) {
			$katwow = mysql_fetch_array( mysql_query( "SELECT * FROM kategori WHERE kid='{$rwow['kid']}'" ) );
			echo "		<tr class=\"data\">\n";
			echo "			<td>&nbsp;</td>\n";
			echo "			<td><a href=\"".URL."/?page=postingan&pid={$rwow['pid']}\">{$rwow['judul']}</a></td>\n";
			echo "			<td><a href=\"".URL."/?page=view-kategori&kid={$rwow['kid']}\">{$katwow['kategori']}</a></td>\n";
			echo "			<td align=\"center\">{$rwow['dilihat']} kali</td>\n";
			echo "		</tr>\n";
		}
		echo "			</table>\n";
		echo "		</div>\n";
	} else {
		echo "		<div class=\"box\">\n";
		echo "			<h1>Selamat Datang di Blog Saya</h1>\n";
		echo "			<p>Aplikasi ini secara khusus dirancang untuk menampung informasi maupun kejadian-kejadian yang kita alami sehari-hari yang terjadi di sekitar kita. Penulis merasa dari ke semua peristiwa maupun hal-hal yang dirasa tabu untuk diperbincangkan dan sangat tidak mungkin jika dinalar dengan akal sehat manusia perlu ada suatu wadah atau media yang dapat digunakan untuk mendokumentasikan peristiwa agar tidak lekang dikikis zaman.</p>\n";
		echo "			<p>Selain itu, aplikasi ini juga sengaja dikembangkan dengan harapan dapat turut serta dalam meramaikan dunia jurnalistik Indonesia dalam bidang dunia maya yang dikemas dalam bentuk blog virtual sehingga dapat diakses dimana saja dan kapan saja selama masih terkoneksi dengan layanan internet.</p>\n";
		echo "		</div>\n";
		
		echo "		<div class=\"box\">\n";
		echo "			<h1>Untuk Apa dan Mengapa</h1>\n";
		echo "			<p>Tidak ada maksud dan tujuan tersirat apalagi terselubung dalam hati sanubari saya dalam membuat aplikasi hanya tujuan pembuatan aplikasi ini adalah sebagai bentuk tanggung jawab saya di dalam mempelajari materi mata kuliah Perancangan dan Pemrograman web yang diajarkan oleh <b>Bapak Tukino, S.Kom., M.SI.</b> di Kampus Universitas Putera Batam yang kemudian saya tuangkan dalam bentuk makalah ilmiah.</p>\n";
		echo "			<p>Dan di samping karena masih sangat awam dengan PHP dan MySQL, maka penulis haturkan beribu-ribu maaf dalam pengembangan aplikasi ini. Harapan saya, semoga kiranya dengan adanya aplikasi ini dapat memperkaya wawasan dan pengetahuan kita bersama.</p>\n";
		echo "			<p>Salam hangat dari Sang Jurnalis,</p>\n";
		echo "			<p>Ahmad Rosyid | Ar-Rosyid Media Production</p>\n";
		echo "		</div>\n";
		
		$news = mysql_query( "SELECT * FROM posting ORDER BY dibuat DESC LIMIT 5" );
		echo "	<div class=\"box\">\n";
		echo "		<h1>5 Berita Terbaru</h1>\n";
		if( mysql_num_rows( $news ) == 0 ) {
			echo "	<p class=\"nihil\">Maaf, tidak ditemukan data berita untuk kata kunci: <b>{$kata}</b>. Coba lagi...</p>\n";
		} else {
			$a = 1;
			while( $rows = mysql_fetch_array( $news ) ) {
				$isi = nl2br( $rows['isi'] );
				$bg = ( $a % 2 == 0 ) ? "#FEFEFE" : "#F9F9F9";
				echo "	<div class=\"hasil\" style=\"background:$bg; \">\n";
				echo "		<div class=\"gbr\"><img src=\"".URL."/gambar/{$rows['gambar']}\" alt=\"Gambar\"></div>\n";
				echo "		<div class=\"isi\">\n";
				echo "			<div class=\"juduls\"><a href=\"".URL."/?page=postingan&pid={$rows['pid']}\">{$rows['judul']}</a></div>\n";
				echo "			<div class=\"body\">\n";
				echo batas( $isi, 300 );
				echo "			</div>\n";
				echo "			<div class=\"link\"><a href=\"".URL."/?page=postingan&pid={$rows['pid']}\">Baca Selengkapnya...</a> | ".date( "l, F d, Y H:i:s A", $rows['dibuat'] )."</div>\n";
				echo "		</div>\n";
				echo "		<div class=\"clear\"></div>\n";
				echo "	</div>\n";		
				$a++;	
			}
		}			
		echo "	</div>\n";
	}
}	
echo "		</div>\n";
echo "		<div class=\"clear\"></div>\n";
echo "	</div>\n";
echo "	<div class=\"slogan\">Ar-Rosyid Media Production &trade; | Copyright &copy; - ".date("Y")."</div>\n";
echo "</div>\n";

?>
</body>
</html>

3. File style.css

*{
	margin:0;
	padding:0;
	outline:none;
}

body{
	font-size:12px;
	font-family:tahoma;
	background:#EFEFEF;
}

a{
	color:#0066FF;
	text-decoration:none;
}
a:hover{
	color:#FF0000;
	text-decoration:none;
}
p{
	margin:0;
	padding:10px;
	line-height:18px;
}
ol,ul{
	list-style-type:none;
}
table{
	border-collapse:collapse;
	width:100%;
	margin:0 0 10px 0;
}
tr:nth-child(odd){
	background:#FFFFFF;
}
tr:nth-child(even){
	background:#F3F3F3;
}

tr.head{
	height:40px;
	background:-moz-linear-gradient(top, #E3E3E3 3%, #F4F4F4 3%, #D6D6D6 100%);
	background:-webkit-linear-gradient(top, #E3E3E3 3%, #F4F4F4 3%, #D6D6D6 100%);
	font-weight:bold;
}
tr.data{
	height:40px;
}
tr.no-data{
	height:40px;
	background:#fff;
	font-weight:bold;
	color:#FF0000;
	text-align:center;
}


input[type="text"],
input[type="password"],
textarea{
	margin:0;
	padding:8px 5px;
	font-size:14px;
	font-family:'calibri';
	border:1px solid #C4C4C4;
	border-radius:3px;
}
input[type="submit"]{
	margin:5px 0;
	padding:8px 15px;
	font-size:12px;
	font-weight:bold;
	font-family:tahoma;
	border:1px solid #C9C9C9;
	border-radius:5px;
	background:-moz-linear-gradient(top, #FFFFFF 3%, #F4F4F4 3%, #EBEBEB 100%);
	background:-webkit-linear-gradient(top, #FFFFFF 3%, #F4F4F4 3%, #EBEBEB 100%);
	cursor:pointer;
}

.wrap{
	margin:10px auto;
	width:900px;
	text-align:justify;
}

.atas{
	height:70px;
}
.logo{
	line-height:50px;
	font-family:'calibri';
	font-size:35px;
	text-align:center;
}

.sang{
	position:absolute;
	font-size:10px;
	font-weight:normal;
	color:#B6B6B6;
	padding:10px;
	line-height:50px;
}
.slogan{
	color:#669966;
	padding:10px;
	border:1px solid #C4C4C4;
	border-radius:5px;
	background:-moz-linear-gradient(top, #FFFFFF 3%, #F4F4F4 3%, #EBEBEB 100%);
	background:-webkit-linear-gradient(top, #FFFFFF 3%, #F4F4F4 3%, #EBEBEB 100%);
	box-shadow:0px 0px 0px 4px #e8e8e8;
	text-align:center;
	text-shadow:0px 1px 0px #fff;
}

.page{
	margin:30px 0;
}
.kiri{
	float:left;
	width:240px;
}
.kanan{
	float:right;
	width:630px;
}
.clear{
	clear:both;
}

.box{
	margin:0 0 15px 0;
	padding:0;
	border:1px solid #C7C7C7;
	border-radius:5px;
	background:#fff;
	box-shadow:0px 0px 0px 4px #e5e5e5;
}
.box h1{
	padding:7px 10px;
	font-size:20px;
	font-weight:normal;
	background:-moz-linear-gradient(top, #FFFFFF 3%, #F4F4F4 3%, #EBEBEB 100%);
	background:-webkit-linear-gradient(top, #FFFFFF 3%, #F4F4F4 3%, #EBEBEB 100%);
	border-bottom:1px solid #C7C7C7;
	font-family:'calibri';
	border-radius:5px 5px 0 0;
}

.form-login{
	margin:10px;
}
.form-login input[type="text"],
.form-login input[type="password"]{
	width:95%;
	margin:5px 0;
}

.menu li{
	line-height:30px;
	border-bottom:1px solid #EDEDED;
}
.menu li:last-child a{
	border-radius:0 0 5px 5px;
}
.menu li a{
	background:url('b_minus.png') no-repeat 2% 18px;
	font-weight:bold;
	padding:7px 25px;
	display:block;
	transition:all .25s ease-in-out;
}
.menu li a:hover{
	padding:7px 25px 7px 30px;
}

.kat{
	margin:10px;
}
.kat input[type="text"],
.kat textarea{
	width:98%;
	margin:5px 0 10px 0;
}

/* error */
.error{
	padding:10px 0;
	font-weight:bold;
	color:#FF0000;
	text-align:center;
}

.cat-error{
	float:right;
	position:relative;
	margin:10px 0 0 0;
	color:#FF0000;
}


.gambar{
	margin:10px;
	border-radius:5px;
	padding:2px;
	border:1px solid #DADADA;
	width:96%;
	height:300px;
}

.hasil{
	margin:0;
	padding:10px;
	border-bottom:1px solid #D9D9D9;
}
.gbr{
	float:left;
	width:110px;
}
.gbr img{
	width:100px;
	height:100px;
	border-radius:5px;
}

.isi{
	float:right;
	width:480px;
	line-height:18px;
	font-family:'calibri';
	color:#727272;
	text-shadow:0px 1px 0px #fff;
}

.hasil:last-child{
	border-bottom:none;
}

.juduls{
	line-height:25px;
	font-size:23px;
	font-weight:normal;
	text-align:left;
}
.body{
	margin:10px 0;
	font-size:13px;
}
.link{
	margin:10px 0;
}

Dan untuk link download dapat dikunjungi link berikut ini:

Download Program Mini Blogging

Untuk mencoba sistem, dapat login dengan username = ahmad dan password = ahmad.

Semoga program sederhana ini dapat bermamfaat bagi Anda sekalian. Salam dan terimakasih…

One thought on “Program Mini Blogging dengan PHP dan MySQL

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s