Buscar

Memuat...

Aplikasi Berita dengan PHP dan MySQL

Kali ini saya akan berbagi cara membuat aplikasi berita yang sederhana menggunkan PHP dan database MySQL. Sumber belajar saya yaitu dari diktat kuliah pemograman web 2 Achmad Solichin. Halaman depan aplikasi bisa dilihat seperti di bawah ini :

Untuk membuat aplikasi berita secara sederhana, langkah pertama yang kita lakukan adalah merancang tabel-tabel database yang diperlukan. Secara sederhana, struktur tabel dapat dibuat dengan spesifikasi sebagai berikut :

1. Berikut ini perintah (SQL) untuk membuat tabel "berita" :
CREATE TABLE berita(
  id_berita int(5) unsigned NOT NULL auto_increment,
  id_kategori int(3) unsigned NOT NULL default '0',
  judul varchar(100) NOT NULL default '',
  headline text NOT NULL,
  isi text NOT NULL,
  pengirim varchar(15) NOT NULL default '',
  tanggal datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY (id_berita)
) TYPE=MyISAM;
2. Berikut ini perintah (SQL) untuk membuat tabel "kategori" :
CREATE TABLE kategori(
  id_kategori int(3) unsigned NOT NULL auto_increment,
  nm_kategori varchar(30) NOT NULL default '',
  deskripsi varchar(200) NOT NULL default '',
  PRIMARY KEY (id_kategori)
)TYPE = MyISAM;
Catatan : Isikan sejumlah data ke tabel kategori langsung di database, agar data kategori bisa muncul di form input.
3. Membuat File Koneksi Database
Nama File : koneksi.php
Deskripsi : Program koneksi ke database.
<?php  
$host = "localhost";  
$user = "root";  
$pass = "";  
$dbnm = "pw2";  
  
$conn = mysql_connect($host, $user, $pass);  
if($conn){  
 $connect = mysql_select_db($dbnm);  
 if(!$connect){  
  die("Database tidak dapat dibuka");  
 }  
}else{  
 die("Server MySql tidak terhubung");   
}  
?>
4. Membuat File Menampilkan Headline Berita
Nama File : index.php
Deskripsi : Program menampilkan 5 berita terbaru di halaman depan.
<?
include "koneksi.php";

?>
<html>
<head><title>Index Berita</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
 <a href="index.php">Halaman Depan</a> &nbsp|
    <a href="arsip_berita.php">Arsip Berita</a>&nbsp|
    <a href="input_berita.php">Input Berita</a>
    <br><br>    
    <h2>Halaman Depan ~ Lima Bertita Terbaru</h2>
    <?
    $query = "SELECT A.id_berita, B.nm_kategori, A.judul, A.isi, A.pengirim, A.tanggal FROM berita A, kategori B WHERE A.id_kategori=B.id_kategori ORDER BY A.id_berita DESC LIMIT 0,5";
 $sql = mysql_query($query);

 while ($hasil=mysql_fetch_array($sql)){
 $id_berita = $hasil['id_berita']; 
 $kategori = stripslashes($hasil['nm_kategori']);
 $judul = stripslashes($hasil['judul']);
 $isi = nl2br(stripslashes($hasil['isi']));
 $pengirim = stripslashes($hasil['pengirim']);
 $tanggal = stripslashes($hasil['tanggal']);
 //tampilkan berita
 echo "<font size=4>
   <a href='berita_lengkap.php?id=$id_berita'>$judul</a></font></br>";
echo "<small>Berita dikirimkan oleh <b>$pengirim</b>
    pada tanggal <b>$tanggal</b> dalam kategori <b>
   $kategori</b></small>";
 echo "<p>$headline</p>";
 echo "<hr>";
 }
 ?>
</body>
</html>
5. Membuat Halaman Input Berita
Nama File : input_berita.php
Deskripsi : Program input berita.
<?php
include "koneksi.php";
//proses input berita
if(isset($_POST['input'])){
 
 $judul = addslashes(strip_tags($_POST['judul']));
 $kategori = $_POST['kategori'];
 $headline = addslashes(strip_tags($_POST['headline']));

 $isi_berita = addslashes(strip_tags($_POST['isi']));
 $pengirim = addslashes(strip_tags($_POST['pengirim']));
 //insert ke tabel
 $query = "INSERT INTO berita VALUES('','$kategori','$judul','$headline','$isi_berita','$pengirim',now())";
 $sql = mysql_query($query);
 if($sql){
  echo "<h2><span style='color: blue;'>Berita telah berhasil ditambahkan</span></h2>"; 
 }else{
  echo "<h2><span style='color: red;'>Berita gagal ditambahkan</span></h2>";
 }
}
?>
<html>
    <head><title>Input Berita</title>
     <link href="style.css" rel="stylesheet"></link>
    </head>
    <body>
    <a href="index.php">Halaman Depan</a>  
    <a href="arsip_berita.php">Arsip Berita</a> 
    <a href="input_berita.php">Input Berita</a>
    <br><br>    
    <form action="" method="post" name="input">
    <table border="0" cellpadding="0" style="width: 700px;">
 <tr>
 <td colspan="2"><h2>Input Berita</h2>
 </td>
   </tr>
 <tr>
         <td width="200">Judul Berita</td>
            <td>: <input name="judul" size="30" type="text" /></td>
        </tr>
<tr>
         <td>Kategori</td>
            <td>: 
            <select name="kategori">
<?     
            $query = "SELECT id_kategori, nm_kategori FROM kategori ORDER BY nm_kategori";
   $sql = mysql_query($query);
   while($hasil = mysql_fetch_array($sql)){
    echo "<option value='".$hasil[id_kategori]."'>$hasil[nm_kategori]</option>"; 
   }
?>
</select>
            </td>
        </tr>
<tr>
         <td>Headline Berita</td>
            <td>: <textarea cols="50" name="headline" rows="4"></textarea></td>
        </tr>
<tr>
         <td>Isi Berita</td>
            <td>: <textarea cols="50" name="isi" rows="10"></textarea></td>
        </tr>
<tr>
         <td>Pengirim</td>
            <td>: <input name="pengirim" size="30" type="text" /></td>
        </tr>
<tr>
         <td> </td>
            <td>  
            <input name="input" type="submit" value="Input Berita" />
              
            <input name="reset" type="reset" value="Cancel" /></td>
        </tr>
</table>
</form>
</body>
</html>
6. Menampilkan berita lengkap
Nama File : berita_lengkap.php
Deskripsi : Program menampilkan berita lengkap.
<?php
include "koneksi.php";
if(isset($_GET['id'])){
 $id_berita = $_GET['id']; 
}else{
 die("Error. No Id Selected!"); 
}
?>
<html>
 <head><title>Berita Lengkap</title>
    <link href="style.css" rel="stylesheet"></link>
    </head>
    <body>
    <a href="index.php">Halaman Depan</a> 
    <a href="arsip_berita.php">Arsip Berita</a> 
    <a href="input_berita.php">Input Berita</a>
    <br><br>
    <h2>Berita Lengkap</h2>
<?
    $query = "SELECT A.id_berita, B.nm_kategori, A.judul, A.isi, A.pengirim, A.tanggal FROM berita A, kategori B WHERE A.id_kategori=B.id_kategori AND A.id_berita='$id_berita'";
 $sql = mysql_query($query);
 $hasil = mysql_fetch_array($sql);
 $id_berita = $hasil['id_berita']; 
 $kategori = stripslashes($hasil['nm_kategori']);
 $judul = stripslashes($hasil['judul']);
 $isi = nl2br(stripslashes($hasil['isi']));
 $pengirim = stripslashes($hasil['pengirim']);
 $tanggal = stripslashes($hasil['tanggal']);
 //tampilkan berita
 echo "<font size=5 color=blue>$judul</font><br>";
 echo "<small>Berita dikirimkan oleh <b>$pengirim</b>
    pada tanggal <b>$tanggal</b> dalam kategori <b>
   $kategori</b></small>";
 echo "<p>$isi</p>";
 ?>  
</body>
</html>
7. Membuat Halaman Arsip Berita
Nama File : arsip_berita.php
Deskripsi : Program arsip keseluruhan berita.
<?php
include "koneksi.php";
?>
<html>
<title>Arsip Berita</title>
   <link href="style.css" rel="stylesheet">
      <script language="javascript">
        function tanya(){
      if(confirm("Apakah anda yakin akan menghapus berita ini?")){
    return true; 
  }else{
    return false; 
     }
   }
      </script>
 

  <a href="index.php">Halaman Depan</a> 
    <a href="arsip_berita.php">Arsip Berita</a> 
    <a href="input_berita.php">Input Berita</a>
    <br><br>
    <h2>Arsip Berita</h2>
<ol>
<?
    $query = "SELECT A.id_berita, B.nm_kategori, A.judul, A.pengirim, A.tanggal FROM berita A, kategori B WHERE A.id_kategori=B.id_kategori ORDER BY A.id_berita DESC";
 $sql = mysql_query($query);
 while($hasil = mysql_fetch_array($sql)){
  $id_berita = $hasil['id_berita']; 
  $kategori = stripslashes($hasil['nm_kategori']);
  $judul = stripslashes($hasil['judul']);
  $pengirim = stripslashes($hasil['pengirim']);
  $tanggal = stripslashes($hasil['tanggal']);
  //tamppilkan arsip berita
  echo "<li><a href='berita_lengkap.php?id=$id_berita'>$judul</a>";
  echo "<small>Berita dikirimkkan oleh <b>$pengirim</b> pada tanggal <b>$tanggal</b> dalam kategori <b>$kategori</b> </small>";
  echo "<b>Action : </b><a href='edit_berita.php?id=$id_berita'>Edit</a> | ";
  echo "<b>Action : </b><a href='delete_berita.php?id=$id_berita' onclick='return tanya()'>Delete</a>";
  echo "<small></small></li>";
 }
 ?>
</ol>
</html>
8. Membuat Halaman Edit Berita
Nama File : edit_berita.php
Deskripsi : Program untuk mengedit berita.
<?php
include "koneksi.php";

if(isset($_GET['id'])){
 $id_berita = $_GET['id'];
}else{
 die("Error. No Id Selected!"); 
}
$query = "SELECT id_berita, id_kategori,judul, headline, isi, 
   pengirim, tanggal FROM berita WHERE id_berita='$id_berita'";
$sql = mysql_query($query);
$hasil = mysql_fetch_array($sql);
$id_berita = $hasil['id_berita']; 
$id_kategori = stripslashes($hasil['id_kategori']);
$judul = stripslashes($hasil['judul']);
$headline = stripslashes($hasil['headline']);
$isi = stripslashes($hasil['isi']);
$pengirim = stripslashes($hasil['pengirim']);
$tanggal = stripslashes($hasil['tanggal']);

//proses edit berita
if(isset($_POST['edit'])){
 $id_berita = $_POST['hidberita'];
 $judul = addslashes(strip_tags($_POST['judul']));
 $kategori = $_POST['kategori'];
 $headline = addslashes(strip_tags($_POST['headline']));
 $isi_berita = addslashes(strip_tags($_POST['isi']));
 $pengirim = addslashes(strip_tags($_POST['pengirim']));
 
 //update berita
 $query = "UPDATE berita SET id_kategori='$kategori', judul='$judul', headline='$headline', 
 isi='$isi_berita', pengirim='$pengirim' WHERE id_berita='$id_berita' ";
 $sql = mysql_query($query);

 if($sql){
  echo "<h2><span style='color: blue;'>Berita telah berhasil diedit</span></h2>";
 }else{
  echo "<h2><span style='color: red;'>Berita gagal diedit</span></h2>";
 }
}
?>
<html>
    <head><title>Edit Berita</title>
     <link href="style.css" rel="stylesheet">
     </head>
     <body>  
    <a href="index.php">Halaman Depan</a>  
    <a href="arsip_berita.php">Arsip Berita</a> 
    <a href="input_berita.php">Input Berita</a>
   <br><br>
    <form action="" method="post" name="input">
    <table style="width: 700px;" border="0" cellpadding="0">
 <tr>
         <td colspan="2"><h2>Edit Berita</h2></td>
        </tr>
 <tr>
         <td width="200">Judul Berita</td>
            <td>: <input name="judul" size="30" value="<?=$judul?>" type="text"></td>
        </tr>
<tr>
         <td>Kategori</td>
            <td>: 
            <select name="kategori">
 <?          
   $query = "SELECT id_kategori, nm_kategori FROM kategori ORDER BY nm_kategori";
    $sql = mysql_query($query);
    while($hasil = mysql_fetch_array($sql)){
    $selected = ($hasil['id_kategori']==$id_kategori)?"selected" :"";
    echo "<option value='$hasil[id_kategori]'>$hasil[nm_kategori]</option>"; 
   }
?>
     </select>
            </td>
        </tr>
<tr>
         <td>Headline Berita</td>
            <td>: <textarea cols="50" name="headline" rows="4"><?=$headline?></textarea></td>
        </tr>
<tr>
         <td>Isi Berita</td>
            <td>: <textarea cols="50" name="isi" rows="10"><?=$isi?></textarea></td>
        </tr>
<tr>
         <td>Pengirim</td>
            <td>: <input name="pengirim" size="30" value="<?=$pengirim?>" type="text"></td>
        </tr>
<tr>
         <td> </td>
            <td>  
            <input name="hidberita" value="<?=$id_berita?>" type="hidden">
            <input name="edit" value="Edit Berita" type="submit">
              
            <input name="reset" value="Cancel" type="reset"></td>
        </tr>
</table>
</form>
</body>
</html>

9. Membuat Halaman Delete Berita
Nama File : delete_berita.php
Deskripsi : Program untuk menghapus berita.
<?php
include "koneksi.php";
if(isset($_GET['id'])){
 $id_berita = $_GET['id'];
}else{
 die("Error. No Id Selected!"); 
}
?>
<html>
    <head><title>Delete Berita</title>
     <link href="style.css" rel="stylesheet">
 </head>    
    <a href="index.php">Halaman Depan</a>  
    <a href="arsip_berita.php">Arsip Berita</a> 
    <a href="input_berita.php">Input Berita</a>
<body>
<?
    //proses delete berita
if(!empty($id_berita)&&$id_berita!=""){
   $query = "DELETE FROM berita WHERE id_berita='$id_berita'";  
   $sql = mysql_query($query);
   if($sql){
     echo "<h2>
  <span style='color: blue;'>Berita telah berhasil dihapus</span></h2>";
    }else{
     echo "<h2><span style='color: red;'>Berita gagal dihapus</span></h2>";
   }
   echo "klik <a href='arsip_berita.php'>di sini untuk kembali ke halaman arsip berita";
}else{
   die("Access Denied"); 
 }
?>
</body>
</html>
10. CSS untuk Menghias Tampilan
Nama File : style.css
Deskripsi : File Css sebagai pemanis tampilan
@charset "utf-8";
/* CSS Document */
body{
 font-family:Verdana;
 font-size:11px; 
}
a{
 color:#0000ff;
 text-decoration:underline;
 
}
a:hover{
 color:#ffffff;
 background-color:#8ac452;
 text-decoration:none;
}
input, textarea, select, option{
 font-family:Verdana;
 font-size:12px; 
}
Thanks for Achmatim, sucsess for you :) Kalau mau download file nya silahkan klik download . Selamat mencoba, semoga bermanfaat :)

24 comments:

angga sanfank

maaf mau nanya kalau mau menampilkan kategori berita dengan jumlah artikel tertentu gimana

belajar agama islam dan teknologi

numpang tanya mbak script untuk menampilkan headline beritanya gimana

belajar agama islam dan teknologi

mbak sekalian tolong kirim script membuat berita lengkap sekalian sama script untuk menampilkan headlinenya ke "rojhieb18@gmail.com"

Anwar Jores

tolong krim mbak ke email saya file lengkapny..
terima ksih..

Anwar Jores

email : anwarjores@gmail.com

Neo

email : drawer22@gmail.com

Anggie Agita

mbak kirim ke anggieagita@gmail.com ya mbak

anggun patriana

Dear all, untuk source code nya udah saya kirim ke email masing2, semoga bermanfaat ya teman-teman..
Oh iya, untuk source code di atas, udah saya perbaiki, Inshaallah udah lengkap, mohon maaf jika ada kekurangan, masih belajar :D

gilang firmansyah

email gilangfirmansyah915@gmail.com mbak

Edi Harto

aku banyak kesalahan mbak dalam mengetiknya, tolong kirim scripnya ke ediharo7@gmail.com.
Thank's

Rois

Thanks Anggun :)

Muhamad Angga Pratama

boleh mnta source code nya gak mba???
email : muh.angga06@gmail.com

Chusnul Muali

ikutan gabuunngggg...kirim dong yang lengkap ke yayahdaddy@gmail.com
thanks

anggun patriana

to gilang, edi harto, angga, chusnul muali udah saya kirim, sambil dipelajari yaaa, jangan di copas doank..moga bermanfaat :)

Eko Haryanto

Mohon dikirimin juga SC nya mbak ya, insyaAllah bisa bermanfaat untuk semua. Terima kasih :) (galam622@gmail.com)

suhada alamin

saya juga minta scriptnya mbak...kirim ke (suhada_alamin@yahoo.com)

anggun patriana

mas eko dan mas suhada udah sy kirim ya..

Ahmad Saktia

Mbak Anggun. Saya minta izin pakai aplikasinya buat tugas kuliah. Terima kasih banyak bila berkenan.

anggun patriana

silahkan mas ahmad saktia, dengan senang hati..semoga bermanfaat..

Luthfi Hady

mbak anggun boleh mnta source code nya?
email ke : luthfi.hady.99@gmail.com
terimakasih sebelumnya...

anggun patriana

@Luthfi Hady udah saya kirim ke emailnya.
Untuk selanjutnya bisa di download langsung dari blog ini via 4shared :)

ibrohim shidiq

Ass.wr.wb ...

Mbak, saya sangat tertarik sekali, saya sedang belajar otodidax,...mohon kirim juga ya mbak ke alamat email saya,...

ibrohimshidiq@gmail.com

Terimakasih mbak,.. Jazakillah khoiron katsiron

Mukhammad Khudori

mbak kirimin ke email radio@oyik.net ya
saya tunggu

rizky syarifah

mbak, kok yg punya saya error mulu yah index.php nya?

Poskan Komentar