Membuat RSS Feed

Tidak semua pengunjung suka memasuki website kita (jujur dari hati terdalam), kalaupun mereka terpaksa masuk ke website kita, mungkin mereka cuma ingin melihat bagian yang menarik bagi mereka saja...


Selasa Kliwon, 7 Juni 2005

Kalau anda sempat, coba klik pada link pagehits di bagian kanan paling bawah halaman ini. Dari statistik itu, terlihat bahwa kebanyakan pengunjung cuma melihat halaman depan website ini, dan ketika melihat tidak ada perubahan, mereka langsung cabut.

Itu memang cuma sekedar contoh (dan memang datanya tidak 'realtime'), tapi seandainya kita melihat dari sisi pandang pengunjung, mungkin kita pernah berpikir, seandainya saja ada cara lebih mudah -dan murah- untuk melihat adanya berita yang baru, tentu lebih bagus.

Dan RSS muncul untuk menjembatani ini.

RSS merupakan dokumen XML yang dibangun sedemikian rupa, yang menampilkan daftar dari sekumpulan data, dan biasanya merupakan data terbaru, sehingga pengunjung lebih mudah untuk melihat perubahan data. RSS banyak digunakan di News, Blog, atau forum diskusi.

Ketika RSS dipanggil (direquest), maka akan mengembalikan dokumen XML berisi daftar data terbaru, yang nantinya di-parsing sama RSS client, dan ditampilkan pada client. Cara ini lebih mudah dan murah, karena user dapat memilih mana saja yang ingin dibaca lebih lanjut.

Dalam artikel ini akan dibahas cara membuat fitur RSS yang sederhana -banget- pada website kita. Pakai PHP tentu saja :)

Langkah pertama, yakinkan diri anda bahwa dokumen RSS adalah bertipe XML, jadi sedikit banyak anda mesti tau apa itu XML dan aturan mainnya.

Karena bertipe XML, output dari webserver ke client mesti menandakan hal tersebut. Banyak cara untuk itu, misalnya pake AddType pada konfigurasi Apache atau .htaccess, tapi dalam hal ini, kita gunakan fungsi Header.

Pada awal script, tuliskan seperti ini:

<?php
  Header("Content-Type: text/xml");
  echo '<rss version="2.0">
        <channel>
        <title>bengkelprogram.com Articles</title>
        <link>http://www.bengkelprogram.com/</link>
        <description>10 Berita dan Artikel terbaru</description>
        <language>en-us</language>
        <pubDate>'.Date("r").'</pubDate>
        <lastBuildDate>'.Date("r").'</lastBuildDate>
        <generator>bengkelprogram.com RSS Generator</generator>
        <managingEditor>aryo@bengkelprogram.com</managingEditor>
        <webMaster>webmaster@bengkelprogram.com</webMaster>
        ';

Itu merupakan awal RSS yang bagus :)

Yang perlu diperhatikan disini, field tanggal mesti pake format RFC-822. Apa itu, aku kurang tau, yang lebih mudah, script di atas menggunakan fungsi Date("r"), yang akan menghasilkan nilai tanggal dan jam dalam format RFC-822. Beres deh.

Selanjutnya, menampilkan data RSS:

$rc = mysql_query('select *,UNIX_TIMESTAMP(tanggal)
   AS pubDate from berita order by tanggal desc limit 0,10');

while ($r = mysql_fetch_array($rc))
{
  $id = $r['id'];
  $judul = htmlentities(strip_tags($r['judul']), ENT_QUOTES);
  $keterangan = htmlentities(strip_tags($r['keterangan']),
                ENT_QUOTES);
  $pubDate = strftime("%a, %d %b %Y %T %Z",$r['pubDate']);
  echo "<item>";
  echo "<title>$judul</title>";
  echo "<link>berita.php?id=$id</link>";
  echo "<description>$keterangan</description>";
  echo "<pubDate>$pubDate</pubDate>";
  echo "</item>";
}
echo "</channel></rss>";

?>

Sudah, gitu aja. Simpel banget kan? - masih bisa dipersimpel lagi tuh, ya kan weh? :) -

Tentang field-fieldnya, saya rasa gak perlu dibahas mendalam, soale udah jelas banget.
Ya cuma itu fieldnya, title adalah judul per-item, link adalah link data aslinya (di website kita), description ya keterangan singkat masing-masing record. Kalau mau lebih jelas tentang RSS, silakan baca ini.

Yang perlu diperhatikan, pubDate di sini juga mesti pake format RFC-822, tapi karena di MySQL-ku belum ada format itu (ada sih, tapi mesti nyusun satu persatu), maka kita pake fungsi strftime.
Ada juga fungsi strip_tags dan htmlentities, yang sangat penting untuk digunakan, mengingat XML sangat strict terhadap penggunakan karakter, jadi kita mesti ilangin semua karakter mencurigakan :)

Satu lagi, karena isi RSS cuma daftar dokumen terbaru, mestinya yang ditampilkan cuma record terbaru saja (biasanya per tanggal). Tapi karena perubahan dalam website ini lamban, di sini digunakan LIMIT 0, 10, yaitu 10 record terbaru (meski gak begitu baru).

Sekarang, website ini sudah memiliki fitur RSS. Silakan lihat alamat
http://www.bengkelprogram.com/halaman-rss-.html, pake Mozilla Thunderbird, atau RSS client yang lain. Kalo pake browser juga bisa, tapi cuma akan tampil dokumen XML

Untuk meyakinkan bahwa format RSS anda benar, silakan masukkan RSS anda ke Feed Validator.

Met coding :)

(Aryo Sanjaya)

Daftar Komentar

ferdhie

ferdhie@...  Rabu Legi, 8 Juni 2005
btw, opera bisa baca RSS koq. ama brainstorm sedikit: $judul = htmlentities(strip_tags($r['judul']), ’ENT_QUOTES’); ENT_QUOTES kan konstanta, ngapain di quotes mirip string? sekarang, tugas mas parjo adalah bikin rss reader nya :D

Aryo Sanjaya

aryo@...  Rabu Legi, 8 Juni 2005

denny

denbecks77@...  Kamis Pahing, 27 Oktober 2005
gimana caranya masukan file masssssssssssssssssssssssssssssssssssssssssssssss

Aryo Sanjaya

aryo.sanjaya@...  Kamis Pahing, 27 Oktober 2005
Masukkan file apaaannnnnn? :D Mau upload apa mau bikin apa, gitu? ... ganti...

A320

hell@...  Minggu Pon, 27 November 2005
Script gw coba ampe line ke 5 error!!!!

==================================
Header("Content-Type: text/xml");
echo '


http://www.bengkelprogram.com/
10 Berita dan Artikel terbaru
en-us
'.Date("r").'
'.Date("r").'
bengkelprogram.com RSS Generator
aryo@bengkelprogram.com
webmaster@bengkelprogram.com
';
?>
==================================


BEnahin!!!!!

Aryo Sanjaya

aryo.sanjaya@...  Senin Wage, 28 November 2005
Scriptnya udah bener, hanya saja di browser yang ditampilkan cuman isinya, sedangkan TAG XML dihilangkan :( Sekarang udah dibenerin, supaya tampil sekalian TAG-nya. Terima kasih koreksinya :)

bowo

prazetyo@...  Senin Wage, 26 Juni 2006
Apakah saya bisa menggunakan teknik RSS ini untuk di ASP. Karena jarang sekali ada tutorial yag utk ASP. Saya sendiri kurang faham ASP, tetapi sedikit-sedikit saya bisa. Mohon panduannya pada bagian manakah yang bisa dimasukkan ke script ASP. terima kasih

bowo

prazetyo@...  Senin Wage, 26 Juni 2006
Apakah saya bisa menggunakan teknik RSS ini untuk di ASP. Karena jarang sekali ada tutorial yag utk ASP. Saya sendiri kurang faham ASP, tetapi sedikit-sedikit saya bisa. Mohon panduannya pada bagian manakah yang bisa dimasukkan ke script ASP. terima kasih

teknisoft

teknisoftgarut@...  Rabu Pon, 5 Juli 2006
Stres............... Euyyyyyyyyyyyyyyyyy Wah belajar php gak kelar-kelar gak kayak dulu cepet.............:(
Aryo:

Makanya, jangan ngejar cewek terus :p

Yurie

mr.yurie@...  Jum'at Kliwon, 11 Agustus 2006
Saya uda bisa buat RSS pake ASP, makasih bang!!


URL: http://www.bengkelprogram.com/data-artikel-92.0.bps