Tips & Trick Masalah Pemrograman

MEMBUAT APLIKASI BACKUP DATABASE MENGGUNAKAN PHP

Aplikasi backup database. Selamat siang sobat script 13, pada artikel kali ini saya akan membahas bagaimana cara membuat aplikasi untuk membackup database. Kita sebagai seorang programer khusunya programer web terkadang sangat membutuhkan sebuah aplikasi yang dapat membackup database kita yang terdapat dalam aplikasi web atau website kita, sehingga dapat memudahkan perkerjaan kita sebagai seorang programer.


Aplikasi backup database yang akan kita buat ini mampu menyalin data dari database MySql kita kedalam sebuah file yang bereksistensi .xls atau file yang dapat dibuka oleh program Microsoft Excel. Pertama-tama kita siapkan sebuah folder kosong untuk menyimpan file yang akan kita buat, lalu kita beri nama folder tersebut sesuka hati kita (kali ini folder yang saya buat bernaka "backup"), kemudian kita membuat beberapa file untuk melakukan proses mulai dari login user sampai mengeksport database. Apa saja file yang dibutuhkan untuk melakukan proses tersebut? Ayo kita lihat penjelasannya dibawah ini.
  • Membuat File Koneksi

File koneksi yang akan kita buat ini berfungsi untuk melakukan koneksi pada database, dan untuk lebih jelasnya mari kita perhatikan script dibawah ini

<?PHP
$koneksi=mysql_connect("localhost","root","root");
?>

Pada script diatas kita akan melakukan koneksi ke database yang terdapat pada server localhost, dimana nama user dan password dari localhost tersebut adalah root (jika localhost sobat sekalian tidak mempunyai password maka hapus kata root yang paling belakang tampa menghilangkan tanda petik gandannya). Setelah itu simpan pada folder yang telah kita buat tadi dengan nama koneksi.php.
  • Membuat Halaman Login

Halaman login atau halaman index yang akan kita buat kali ini, berisikan formulir untuk melakukan login user. Halaman ini memiliki komponen drop down untuk memilih database, input nama user database, dan input password database. Agar lebih jelas mari kita lihat pada script dibawah ini.

<?PHP
session_start();
include"koneksi.php";
$dblist=mysql_list_dbs($koneksi);
if(isset($hapus_data)){
session_unregister("database");
}
?>
<html>
<head>
<title> Form Download </title>
</head>
<body>
<?
if(isset($eer)){
?>
<p align="center">
<font face="tahoma" size="2" color="#FF0000">
<b><? $eer ?></b>
</font>
</p>
<?
}
?>
<div align="center">
<table border="0" width="311" cellspacing="1" id="table1" style="font-family: tahoma; font-size: 10pt; color: #000080">
<form method="POST" action="login.php">
<tr>
<td bgcolor="#83B0C7" colspan="2">
<p align="center" style="margin: 2px 3px"> LOGIN USER
</td>
</tr>
<tr>
<td bgcolor="#D3E3EB" width="83"><p style="margin: 2px 3px">Server</td>
<td bgcolor="#D3E3EB" width="221"><p style="margin: 2px 3px">Localhost</td>
</tr>
<tr>
<td bgcolor="#D3E3EB" width="83"><p style="margin: 2px 3px">Database</td>
<td bgcolor="#D3E3EB" width="221"><p style="margin: 2px 3px"><select size="1" name="database">
<? while($database=mysql_fetch_row($dblist))
{
Echo"<option value=\"$database[0]\">$database[0]</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td bgcolor="#D3E3EB" width="83"><p style="margin: 2px 3px">User</td>
<td bgcolor="#D3E3EB" width="221"><p style="margin: 2px 3px"><input type="text" name="user" size="20" value="<? $user ?>"></td>
</tr>
<tr>
<td bgcolor="#D3E3EB" width="83"><p style="margin: 2px 3px">Password</td>
<td bgcolor="#D3E3EB" width="221"><p style="margin: 2px 3px"><input type="text" name="password" size="20" value="<? $password ?>"></td>
</tr>
<tr>
<td bgcolor="#D3E3EB" width="83"><p style="margin: 2px 3px">&nbsp;</td>
<td bgcolor="#D3E3EB" width="221"><p style="margin: 2px 3px"><input type="submit" value="Login" name="login"></td>
</tr>
</form>
</table>
</div>
</body>
</html>

Pada script diatas terdapat fungsi session_start() yang berguna untuk mendeklarasikan data sesi, dan fungsi include untuk memanggil script koneksi.php yang kemudian dideklarasikan dengan perintah query yaitu mysql_query(koneksi), dimana perintah query ini bertugas untuk membaca daftar database yang ada pada server database. Simpan script diatas dengan nama index.php
Setelah kita membuat script halaman login, maka kita harus mencobanya dengan memanggil file index.php pada browser, sehingga akan tampil seperti gambar dibawah ini.


  • Membuat File Verifikasi Login

Verifikasi login ini bertugas untuk melakukan pemeriksaan user dan passwrod yang dikirim oleh halaman index, dimana user dan password tersebut akan dicocokan dengan data user yang dimiliki oleh MySql. Apabila data yang dikirim cocok maka akan didaftarkan kedalam data sesi, sehinggan pada halama selanjutnya data tidak perlu dideklarasikan kembali. Berikut script yang digunkan untuk verivikasi login tersebut.

<?PHP
session_start();
$host="localhost";
$koneksi=@mysql_connect($host,$user,$password);
if($koneksi){
session_register("host","user","password","database");
header("location:./daftar_tabel.php");
}else{
header("location:./index.php?eer=User atau Password Salah. Coba lagi");
}
?>

Pada secript diatas $koneksi berfungsi untuk melakukan pencocokan data yang dikirim oleh halaman index.php, kemudian jika data yang dikirim sama maka session_register akan mendaftarakan nama database, user, dan password kedalam data sesi, dan kita akan langsung diarahkan kehalaman daftar_tabel.php. Apabila data yang dikirim tidak cocok maka kita akan kembali kehalam index.php. Setelah selesai simpai file ini dengan nama login.php.
  • Membuat File Pengecekan Data Sesi

File pengecekan data sesi berfungsi untuk memeriksa data sesi yang kita kirim ke database, dan berikut script untuk file Pengecekan ini.

<?PHP
session_start();
if(!session_is_registered("database")){
header("location:./index,php");
exit();
}
?>

Pada script diatas terdapat fungsi if dan session_is_registered, dimana fungsi tersebut berguna untuk memeriksa keberadaan data sesi database, dan apabila data sesi tidak ditemukan maka user akan dialihkan ke halaman index.php. Simpan file dengan nama cek_session.php.

  • Membuat Halaman Daftar Tabel

Halaman daftar tabel ini beguna untuk menampilkan data dari database yang telah kita pilih pada halaman index.php. Berikut script untuk halaman daftar tabel ini.

<?PHP
include"cek_session.php";
?>
<html>
<head>
<meta http-equiv="content-language" content="en-us">
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
<title>Daftar Tabel</title>
</head>
<body>
<div align="center">
<table border="0" width="463" cellspacing="1" id="table1" style="font-family: tahoma; font-size: 10pt; color:#000080">
<form method="POST" action="backup.php">
<tr>
<td bgcolor="#83B0C7" colspan="2" valign="top">
<p align="center" style="margin: 2px 3px"> DAFTAR TABEL
</td>
</tr>
<tr>
<td bgcolor="#D3E3EB" width="83" valign="top"><p style="margin: 2px 3px">Server</td>
<td bgcolor="#D3E3EB" width="373" valign="top"><p style="margin: 2px 3px">Localhost</td>
</tr>
<tr>
<td bgcolor="#D3E3EB" width="83" valign="top"><p style="margin: 2px 3px">Database</td>
<td bgcolor="#D3E3EB" width="373" valign="top"><p style="margin: 2px 3px"><?="$database"?>&nbsp;&nbsp;
<a href="index.php?hapus_data">Pilih Database Lain</a></td>
</tr>
<tr>
<td bgcolor="#D3E3EB" width="459" valign="top" colspan="2">
<p style="margin: 2px 3px">Tabel
<div align="center">
<table border="0" cellspacing="1" width="100%" id="table2">
<tr>
<td width="153" bgcolor="#83B0C7" align="center">
<p style="margin: 2px 3px">
<b><font size="2" color="#000080">Nama Table</font></b>
</td>
<td width="47" bgcolor="#83B0C7" align="center">
<p style="margin: 2px 3px">
<b><font size="2" color="#000080">Jumlah Data</font></b>
</td>
<td width="123" bgcolor="#83B0C7" align="center">
<p style="margin: 2px 3px">
<b><font size="2" color="#000080">Tanggal Buat</font></b>
</td>
<td width="62" bgcolor="#83B0C7" align="center">
<p style="margin: 2px 3px">
<b><font size="2" color="#000080">Ukuran (kb)</font></b>
</td>
<td width="62" bgcolor="#83B0C7" align="center">
&nbsp;
</td>
</tr>
<?PHP
$koneksi=mysql_connect("localhost","root","root");
$query=mysql_query("SHOW TABLE STATUS FROM $database LIKE '%' ");
while ($data=mysql_fetch_array($query)){
?>
<tr>
<td width="153" bgcolor="#F9D3A2"><p style="margin: 2px 3px">
<font size="2" color="#000080">
<?=$data[Name]?>
</font>
</td>
<td width="47" bgcolor="#F9D3A2"><p style="margin: 2px 3px" align="center">
<font size="2" color="#000080">
<?=$data[Rows]?>
</font>
</td>
<td width="123" bgcolor="#F9D3A2"><p style="margin: 2px 3px">
<font size="2" color="#000080">
<?=$data[Create_time]?>
</font>
</td>
<td width="62" bgcolor="#F9D3A2"><p style="margin: 2px 3px">
<font size="2" color="#000080">
<?
Echo number_format($data[Data_length]/1024,2);
?>
</font>
</td>
<td bgcolor="#F9D3A2"><p style="margin: 2px 3px">
<input type="radio" value="<?=$data[Name]?>" name="tabel">
</td>
</tr>
<?
}
?>
</table>
</div>
</td>
</tr>
<tr>
<td bgcolor="#D3E3EB" width="83" valign="top"><p style="margin: 2px 3px">&nbsp;</td>
<td bgcolor="#D3E3EB" width="83" valign="top"><p style="margin: 2px 3px">
<input type="submit" value="kirim ke file excel" name="transfer">
</td>
</tr>
</form>
</div>
</table>
</body>
</html>

Pada bagian tengah script diatas terdapat script PHP seperti dibawah ini.

<?PHP
$koneksi=mysql_connect("localhost","$user","$password");
$query=mysql_query("SHOW TABLE STATUS FROM $database LIKE '%' ");
while ($data=mysql_fetch_array($query)){
?>

Script PHP diatas berfungsi untuk membaca nama tabel yang ada dalam database yang terpilih, dan jika sudah selesai lalu kita simpan halaman daftar tabel ini dengan nama daftar_tabel.php.
Apabila halaman ini dijalankan dengan melakukan login pada halaman index.php maka hasilnya akan seperti gambar dibawah ini.


  • Membuat File Ekpor Data ke Excel

File ekspor ini adalah inti dari artikel kali ini. File ini memiliki tugas inti membaca data yang berada dalam tabel tertentu dan dikirim menggunkan header HTML, sehingga dapat didownload dan disimpan sebagai file excel.
Berikut adalah script untuk file ekspor ini.

<?PHP
include"cek_session.php";
if (isset($tabel)){
$host="localhost";
$connect=mysql_connect($host,$user,$password);
mysql_select_db("$database");
$query=mysql_query("select * from $tabel");
$count=mysql_num_fields($query);
for ($i = 1; $i < $count; $i++){
$header .= mysql_field_name($query, $i)."\t";
}
while ($row=mysql_fetch_row($query)){
$line='';
foreach($row as $value){
if(!isset($value) || $value == ""){
$value = "\t";
}else{
$value = str_replace('"', '""', $value);
$value = '"' . $value . '"'. "\t";
}
$line .= $value;
}
$data .= trim($line)."\n";
}
$data = str_replace("\r", "", $data);
if ($data == ""){
$data= "\ntabel yang anda ekspor kosong. \n";
}
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=$tabel.xls");
header("Pragma: no-cache");
header("Expires: 0");
Echo $header."\n".$data;
}else{
?>
<div align="center">
<table border=0" cellspacing="1" width="260" id="table1">
<tr>
<td bgcolor="#A4CAE6">
<p align="center" style="margin-top: 3px; margin-bottom: 3px"><b>
<font size="2" face="Tahoma">
Konfirmasi Backup Data
</font></b>
</td>
</tr>
<tr>
<td bgcolor="#B8E0FE"><p align="center">&nbsp;</p><p align="center">
<font face="Tahoma" size="2" color="#FF0000">
Backup data gagal dilakukan <br> Anda belum memilih tabel
</font></p><p align="center">
<font face="Tahoma" size="2"><a href="javascript:history.back();">Ulangi</a><br>&nbsp;
</font>
</td>
</tr>
</table>
</div>
<?
}
?>

Pada script diatas terdapat perintah include untuk memanggil file cek_session.php yang berfungsi untuk memeriksa keberadaan data sesi database. Kemudian terdapat fungsi if dan isset yang bertuas untuk memeriksa apakah kita sudah memilih tabel database atau belum. Setelah itu data dikirim sebagai komponen HTML dengan script dibawah ini.

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=$tabel.xls");
header("Pragma: no-cache");
header("Expires: 0");
Echo $header."\n".$data;

Terakhir simpan script diatas dengan nama backup.php.
Jika kita telah memilih salah satu nama tabel dari halaman daftar tabel dan mengklik tombol "Kirim Ke File Excel", hasilnya akan seperti gambar dibawah ini.


Selanjutnya tekan tombol ok dan lihat hasilnya seperti gambar dibawah.


Demikianlah artikel saya kali ini mengenai cara membuat aplikasi backup database, semoga artikel kali ini bermanfaat bagi sobat script 13 sekalin. Dan jangan lupa untuk selalu update artikel terbaru dari saya mengenai tip & trick dunia pemrograman yang tentunya dapat bermanfaat bagi sobat semua. 

Bagi yang ingin langsung mendownload aplikasi ini sobat semua bisa klik disini
Password RAR : script-13.blogspot.com
0 Komentar untuk "MEMBUAT APLIKASI BACKUP DATABASE MENGGUNAKAN PHP"

Back To Top