Membuat Aplikasi Chating Dengan PHP
post by : syazili, on October 24th, 2012
Ok let’s starting!
Cerita dikit dulu nih..awal mulanya aku membuat program untuk tugas akhir ku,pada saat itu saya ingin memasukkan sebuah aplikasi chatting berbasis web dengan bahasa pemrograman PHP dan MySQL sebagai databasenya.Sebenarnya banyak aplikasi sejenis yang bertebaran di internet.Namun di sini saya tidak ingin menggunakannya so! aku harus coding..sendiri karena hasilnya lebih nikmat..:-)
Ok let’s starting!
Prinsip Kerja Aplikasi Chating
Pada desktop aplication banyak kita temui aplikasi chat seperti ym,mirc,etc..,konsep keja mereka sama saja yaitu :
- aplkasi client (mirc) meminta request untuk bergabung dengan server irc dengan mengirimkan data data client
- server akan membuat sebuah sesi untuk cient tersebut..lalu memberikan respon berupa data percakapan pengguna dimulai dari waktu user login sampai wwaktu sekarang
- pada interval tertentu server akan mencek apakah user benar2 online
Pertama kita membuat aplikasi server yang akan menangani setiap request dari client. ketik kode berikut dan simpan dengan nama message.php
global $status,$waktulogin,$exp,$uid,$time_now,$nick;
$sqlchat=”select * from user,chat where chat.post_time >=’$waktulogin’ and chat.post_time <=’$time_now’ and user.nick_name=chat.nick_name”;
// debug : echo “$sqlchat”;
$qrychat=mysql_query($sqlchat) or die (mysql_error());
$i=0;
while ($datachat=mysql_fetch_array($qrychat))
{
$i++;
echo “$i:< $datachat[nick_name] > : $datachat[pesan]
”;
} }
function update_user()
{
global $status,$waktulogin,$exp,$uid,$time_now,$nick;
$sql_exp=”update user set exp_time=’$exp’ where nick_name=’$nick’”;
mysql_query($sql_exp) or die (mysql_error());
}
function delete_user()
{
global $status,$waktulogin,$exp,$uid,$time_now,$nick;
$sql_del_user=”delete from user where exp_time=$time_now or exp_time<=$time_now”;
mysql_query($sql_del_user) or die (mysql_error());
}
function init()
{
global $status,$waktulogin,$exp,$uid,$time_now,$nick;
echo show_mesage();
delete_user();
update_user();
}
function save_message()
{
global $status,$waktu_login,$exp,$uid,$time_now,$nick,$msg;
$sqlchat=”insert into chat (nick_name,pesan,post_time) values (‘$nick’,'$msg’,'$time_now’)”;
$qrychat=mysql_query($sqlchat)or die(mysql_error());
}
function list_user()
{
echo “USER LIST
”;
$sqluser=”select * from user”;
$qryuser=mysql_query($sqluser) or die (mysql_error());
while ($datauser=mysql_fetch_array($qryuser))
{
if ($_SESSION[nick]==$datauser[nick_name])
{
echo “< $datauser[nick_name] >
”;
}
else
{
echo “< $datauser[nick_name] >
”;
}
}
}
function cek_pv()
{
global $status,$waktulogin,$exp,$uid,$time_now,$nick;
$sqluser=”select distinct(sender),received from private_room where received=’$nick’”;
$qryuser=mysql_query($sqluser) or die (mysql_error());
while ($datauser=mysql_fetch_array($qryuser))
{
if ($nick==$datauser[received]){
echo “| < $datauser[sender] > |”;
}
}
}
switch($_GET[action])
{
case “” :
{
init();break;
}
case “view”:
{
init();break;
}
case “send”:
{
$msg=$_GET[inputText];
save_message();
init();
break;
}
case “cek_pv”:
{
echo cek_pv();break;
}
case “list_user”:
{
echo list_user();
break;
}
}
?>
sebelumnya buat file db.php untuk konfigurasi dan koneksi ke mysql database :
mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
?>
Sebagai antar muka client buat file dengan nama client.php dan masukkan kode berikut:
Untitled Document
| Log out
Terakhir kita akan membuat daftar user yang join ke server simpan dengan nama userlist.php
include “db.php”;
echo “USER LIST
”;
$sqluser=”select * from user”;
$qryuser=mysql_query($sqluser) or die (mysql_error());
while ($datauser=mysql_fetch_array($qryuser))
{
echo “< $datauser[nick_name] >
”;
}
?>
jangan lupa untuk membuat databasenya :
CREATE TABLE `chat` (
`nick_name` varchar(15) collate latin1_general_ci NOT NULL,
`pesan` varchar(100) collate latin1_general_ci NOT NULL,
`post_time` varchar(10) collate latin1_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
CREATE TABLE `user` (
`fullname` varchar(50) collate latin1_general_ci NOT NULL,
`nick_name` varchar(15) collate latin1_general_ci NOT NULL,
`status` varchar(10) collate latin1_general_ci NOT NULL,
`user_id` varchar(15) collate latin1_general_ci NOT NULL,
`exp_time` varchar(10) collate latin1_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Aplikasi Chatting sederhana kita telah selesai..untuk penjelasan source code akan saya buat pada artikel kedua dan plus tambahan private message……..!
di akses dari situs asli : http://blog.binadarma.ac.id/jili/2012/10/membuat-aplikasi-chating-dengan-php.html