Monday 16 July 2012

RANCANGAN SISTEM FEED RSS DAFTAR BUKU MENGGUNAKAN PHP DAN XML

Standard
RSS digunakan untuk menggambarkan standar de facto untuk sindikasi konten Web. RSS adalah berbasis XML dan dapat digunakan dalam cara yang berbeda untuk distribusi konten, penggunaan yang paling luas adalah untuk mendistribusikan berita utama di Web.
Jadi, sebuah situs web mengizinkan situs lain untuk mempublikasikan beberapa isinya dengan sebuah dokumen RSS. Pengguna dapat membaca konten RSS yang terdistribusi dan dapat menggunakan konten pada situs yang berbeda. Konten tersebut dapat mencakup seperti feed berita, daftar acara, berita, headline, update proyek, kutipan dari forum diskusi atau bahkan informasi perusahaan.

Disini saya akan mencoba membuat feed/rss toko buku, berikut ini rancangan dan source code nya:
1. Relasi Tabel
Dari rancangan sistem feed rss daftar buku dapat digambarkan skema databasenya sebagai berikut:

2. Struktur Tabel
Berikut ini struktur tabel dari rancangan sistem feed rss daftar buku:
a. Tabel Buku

b. Tabel detailtransaksi

c. Tabel kategori

d. Tabel transaksi

Script (Source Code)
Berikut adalah kode program untuk sistem rancangan feed rss daftar buku: 
1. Kode Program Generate Tabel 

CREATE TABLE IF NOT EXISTS `buku` ( 
`idbuku` varchar(4) NOT NULL, 
`judul` varchar(30) NOT NULL, 
`harga` int(10) NOT NULL, 
`idkategori` varchar(4) NOT NULL, 
PRIMARY KEY (`idbuku`), 
KEY `idkategori` (`idkategori`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
INSERT INTO `buku` (`idbuku`, `judul`, `harga`, `idkategori`) VALUES 
('B001', 'Dongen si unyil', 30000, 'K001'), 
('B002', 'Agama Islam', 50000, 'K003'); 
CREATE TABLE IF NOT EXISTS `detailtransaksi` ( 
`iddetail` int(11) NOT NULL AUTO_INCREMENT, 
`idtransaksi` varchar(6) NOT NULL, 
`idbuku` varchar(4) NOT NULL, 
`jumlah` int(3) NOT NULL, 
PRIMARY KEY (`iddetail`), 
KEY `idtransaksi` (`idtransaksi`), 
KEY `idbuku` (`idbuku`) 
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; 
INSERT INTO `detailtransaksi` (`iddetail`, `idtransaksi`, `idbuku`, `jumlah`) VALUES 
(1, 'T00001', 'B001', 2), 
(2, 'T00001', 'B002', 3), 
(3, 'T00002', 'B001', 1), 
(4, 'T00002', 'B002', 1); 
CREATE TABLE IF NOT EXISTS `kategori` ( 
`idkategori` varchar(4) NOT NULL, 
`namakategori` varchar(30) NOT NULL, 
PRIMARY KEY (`idkategori`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
INSERT INTO `kategori` (`idkategori`, `namakategori`) VALUES 
('K001', 'Cerita'), 
('K003', 'Agama'), 
('K004', 'olahraga'), 
('K005', 'Komputer'), 
('K006', 'Politik'); CREATE TABLE IF NOT EXISTS `transaksi` ( 
`idtransaksi` varchar(6) NOT NULL, 
`pembeli` varchar(30) NOT NULL, 
`tanggal` date NOT NULL, 
PRIMARY KEY (`idtransaksi`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
INSERT INTO `transaksi` (`idtransaksi`, `pembeli`, `tanggal`) VALUES 
('T00001', 'rusdi', '2012-05-01'), 
('T00002', 'ocim', '2012-05-01'); ALTER TABLE `buku` 
ADD CONSTRAINT `buku_ibfk_1` FOREIGN KEY (`idkategori`) REFERENCES `kategori` (`idkategori`) ON DELETE NO ACTION ON UPDATE CASCADE; ALTER TABLE `detailtransaksi` 
ADD CONSTRAINT `detailtransaksi_ibfk_2` FOREIGN KEY (`idbuku`) REFERENCES `buku` (`idbuku`) ON DELETE NO ACTION ON UPDATE CASCADE, 
ADD CONSTRAINT `detailtransaksi_ibfk_1` FOREIGN KEY (`idtransaksi`) REFERENCES `transaksi` (`idtransaksi`) ON DELETE NO ACTION ON UPDATE CASCADE;
2. Kode Program Generate dan Menampilkan XML 
<?php include "koneksi.php";
$sql = mysql_query("SELECT buku.*, kategori.* FROM buku inner join kategori WHERE (buku.idkategori=kategori.idkategori)");
$file = fopen("rss.xml", "w");
fwrite($file, '<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Membuat RSS Dengan Database dan xml</title>
<link>http://student.d3ti.mipa.uns.ac.id/ocim</link>
<description>DAFTAR BUKU TI-B 2010</description>
<language>en-us</language>');
while($r=mysql_fetch_array($sql)){
//$isi_berita = htmlentities(strip_tags(nl2br($r[idkategori]))); // membuat paragraf pada isi berita dan mengabaikan tag html
//$isi = substr($isi_berita,0,220); // ambil sebanyak 220 karakter
//$isi = substr($isi_berita,0,strrpos($isi," ")); // potong per spasi kalimat
fwrite($file, "<item>
<title>$r[idbuku] | $r[judul]</title>
<description>Harga = $r[harga], Kategori = $r[namakategori]</description>
</item>");
}
fwrite($file, "</channel></rss>");
fclose($file);
$file="rss.xml";
$baca=fopen($file, 'r');
$lihat=fread($baca, filesize($file));
fclose($baca);
echo $lihat;
?>
3. Kode Program Form Inputan Buku 
<?php include('menu.php'); include('koneksi.php');
$hasil=mysql_query("SELECT kategori.*
FROM kategori");
?>
<h1>INPUT BUKU</h1>
<form method="POST" action="terimabuku.php">
<pre>
ID Buku <input type="text" name="idbuku">
Judul Buku <input type="text" name="judul">
Harga <input type="text" name="harga">
Kategori <select name="idkategori">
<?php while($cetak=mysql_fetch_array($hasil)){
echo "<option value=".$cetak['idkategori'].">".$cetak['namakategori']."</option>";}
?>
</select>
</pre>
<input type="submit" value="Input">
</form>
4. Kode Program Pengolahan Form Inputan Buku
<?php  $idbuku=$_POST['idbuku'];  
$judul=$_POST['judul'];  
$harga=$_POST['harga'];  
$idkategori=$_POST['idkategori'];  
include ('koneksi.php');  
$hasil = mysql_query("INSERT INTO buku (idbuku, judul, harga, idkategori) VALUES ('$idbuku', '$judul', '$harga', '$idkategori');");  
if ($hasil==1){echo "Data berhasil di input";}  
else {echo "Data gagal di input";}  
echo "<br><a href='cetakbuku.php'>Lihat Hasil</a>";  
?>
D. Lampiran File XML 
Berikut adalah tampilan hasil cetakan (generate) dari program yang telah dibuat: 

Berikut Kode Program XML
<?php  include "koneksi.php";  
$sql = mysql_query("SELECT buku.*, kategori.*  
FROM buku inner join kategori  
WHERE (buku.idkategori=kategori.idkategori)");  
$file = fopen("rss.xml", "w");  
fwrite($file, '<?xml version="1.0"?>  
<rss version="2.0">  
<channel>  
<title>Membuat RSS Dengan Database dan xml</title>  
<link>http://student.d3ti.mipa.uns.ac.id/ocim</link>  
<description>DAFTAR BUKU TI-B 2010</description>  
<language>en-us</language>');  
while($r=mysql_fetch_array($sql)){  
fwrite($file, "<item>  
<title>$r[idbuku] | $r[judul]</title>  
<description>Harga = $r[harga], Kategori = $r[namakategori]</description>  
</item>");  
}  
fwrite($file, "</channel></rss>");  
fclose($file);  
$file="rss.xml";  
$baca=fopen($file, 'r');  
$lihat=fread($baca, filesize($file));  
fclose($baca);  
echo $lihat;  
?>
*** Selamat mencoba ***

0 komentar:

Post a Comment


Copyright © AIMAGU. Jasa Pembuatan Website. All Rights Reserved
Design by Automattic | Blogger Theme by NewBloggerThemes | Official: www.aimagu.com