20
MATERI PHP 2 : CRUD Database mysql bagaiman memanipulasi database mysql menggunakan bahasa pemrograman web PHP KATEGORI Research team : Web Programing > PHP (Pemula) OLEH Yusuf Akhsan H. / @yussan_id Yogyakarta 23 Juni 2014 Bahasa Indonesia

PHP CRUD Database Mysql

  • Upload
    yusuf-ah

  • View
    3.076

  • Download
    10

Embed Size (px)

DESCRIPTION

Create Read Update Delete database dengan bahasa pemrograman web PHP

Citation preview

Page 1: PHP CRUD Database Mysql

MATERI

PHP 2 : CRUD Database mysqlbagaiman memanipulasi database mysql menggunakan bahasa pemrograman web PHP

KATEGORIResearch team : Web Programing > PHP (Pemula)

OLEHYusuf Akhsan H. / @yussan_id

Yogyakarta 23 Juni 2014 Bahasa Indonesia

Page 2: PHP CRUD Database Mysql

TENTANG

Pembahasan kali ini kita akan lebih serius, bagaimana untuk insert data ke databasemysql menggunakan bahasa PHP, edit data yang diinsert tadi, dan menghapusnya.

Pelajaran pada materi kali ini adalah sebagai berikut :

• QUERY DASAR CRUD

• METODE PENGIRIMAN DATA

• SELECT DATA

• INSERT DATA

• UPDATE DATA

• DELETE DATA

Page 3: PHP CRUD Database Mysql

QUERY DASAR CRUDMerupakan bagian yang penting karena disinilah inti dari operasi CRUD pada sebuah web,PHP sebagai bahasa pemrograman fungsinya adalah untuk memanajemen data apa yangakan dikirim, dan query adalah perintah untuk melakukan CRUD pada data tadi. 3 yangmenjadi bahasa utama create, read, update, delete.

CREATE

Bagaimana kita bisa mengisi data pada tabel yang sudah disiapkan oleh database. Querydasar yang akan kita gunakan adalah INSERT INTO [tabel](kolom) VALUES ([data]).Sebelumnya pada materi PHP 1 , telah kita buat satu buah tabel anggota denganstruktur sebagai berikut.

Untuk testing, inputkan satu buah data anggota baru menggunakan query mysql. Untukeksekusi query bisa menggunakan fasilitas dari PHP myadmin, di tab 'sql', setelahmemilih database.

INSERT INTO anggota(nama_anggota,umur) VALUES('Pailus', 23)

Maka hasil dari eksekusi query tersebut, berhasil memasukan databaru ke tabel anggota,untuk id_anggotanya dikosongkan, karena sebelumnya telah kita setting auto incrementyang artinya otomatis mengisi dengan angka setelahnya pada id_anggota.

Page 4: PHP CRUD Database Mysql

READ

Menampilkan data sesuai dengan ketentuan tertentu, misal menampilkan satu datadenan id sekian, menampilkan 5 data terbaru, menamplkan 10 terbaru berikutnya danmasih banyak lagi, untuk semua itu mysql menyediakan query SELECT yang digunakanuntuk membaca data.

Membaca Seluruh Isi Tabel

SELECT * FROM anggota  

Menampilkan data dengan id_anggota tertentu

SELECT * FROM anggota WHERE id_anggota = 1

EDIT

Mengubah data sesuai dengan apa yang diinginkan , dalam mysql edit menggunakanquery UPDATE , untuk mengubah seluruh isi dari seluruh tabel cukup menggunakanperintah UPDATE.. untuk mengubah satu tabel, bisa menggunakan tambahan WHERE...

Mengubah data

Update data yussan yang sebelumnya berumur 20 tahun menjadi 21 tahun, untuk fokusmelakukan perbahan pada satu data, data tersebut harus mempunyai primary key sebagaiidentitas utamanya, dalam kasus ini primary keynya adalah id_anggota, dan id_anggotayussan adalah 1

Page 5: PHP CRUD Database Mysql

UPDATE  anggota SET  umur = '21' WHERE id_anggota =1

Delete Data

Sangat riskan untuk menggunakan query ini, karena jika lupa menggunakan statementwhere maka seluruh data yang ada didatabase akan hilang. Untuk itu perhatikan denganbetul query yang akan anda jalankan sebelum mengeksekusinya.

Delete data anggota pailus

DELETE FROM anggota WHERE id_anggota = 5

Page 6: PHP CRUD Database Mysql

METODE PENGIRIMAN DATAYang dijelaskan disini adalah bagaimana cara kita untuk mengirimkan data ke proseslainnya untuk kemudian diproses lebih lanjut, ada 2 metode yang paling sering digunakanyaitu “GET” dan “POST”. Masing-masing metode mempunyai perbedaan yang membuatnyadigunakan untuk keperluan yang berbeda-beda pula.

GET METHOD

Menggunakan get method memungkinkan user bisa membaca data yang dikirimkanmelalui address bar. Untuk gambarannya seperti ini lah get method,

http://alamatweb.com?variabel=data

Dari contoh diatas, bisa kita lihat setelah alamat web ditemukan tanda “?” yangmengartikan dimulainya penggunaan get method, untuk tulisan yang berada dibelakang“=” adalah variabel dari get method dan tulisan setelah “=” adalah data yang dikirmkan,jadi URL diatas mengartikan, kita mengirim data 'data' dengan variabel 'variabel' kehalaman alamatweb.com menggunakan get method. Ketika mengirim 2 buat data padasatu get method, maka penulisannya akan menjadi seperti ini.

http://alamatweb.com?variabel1=data1&variabel2=data2

POST METHOD

Penjelasan tentang post method sama dengan get method, hanya saja pada post method,kita tidak mengetahui data apa yang dikirimkan, karena data yang dikirimkan tidakditampilkan di url bar.

*tips)ketika dalam keperluan testing untuk mengecek apakan data yang dikirimkan denganpost method sudah sesuai dengan yang dinginkan, bisa menggunakan bantuan browser,dalam hal ini penuis menggunakan google chrome. Caranya : jalan method get yang sudahdisiapkan, cek data yang dikirim dengan (klik kanan pada halaman web inspect element→->network->cari method POST/GET dan klik untuk membacanya)

Page 7: PHP CRUD Database Mysql

SELECT DATASebelumnya sudah dibuat database anggota yang berisi data anggota meliputi :id_anggota, nama_angggota, umur. Kini kita akan menampilkan tersebut dalam formattabel sehingga lebih mudah untuk dilakukan pembacaan .

Sebelum membuat fungsinya dengan PHP , terlebih dahulu kita buat tampilan HTMLnya.

Buka file index.php yang pernah digunakan sebelumnyam kita bersihkan hingga bersihdari codingan apapun.

Selanjutnya buat tag HTML dasar meliputi <html> sampai </html>.

<!DOCTYPE HTML><html><head>

<title></title></head><body>

</body></html>

Dilanjutkan dengan pembuatan tabel sekaligus preview jika dimasukan data, taruhdidalam tag <body>

<center><h1>DATA ANGGOTA</h1><br/>

<table width="50%"><tr><td colspan="3"><form><input type="text" value="Cari

Anggota..."><button type="submit">Cari</button></form></td></tr><tr style="background­color:#000;color:#fff" 

width="60%"><td><strong>Id Anggota</strong></td><td><strong>Nama</strong></td><td><strong>Umur</strong></td>

Page 8: PHP CRUD Database Mysql

</tr><tr>

<td>1</td><td>Yusuf Akhsan Hidayat</td><td><span style="margin­right:10px">21 </span><a href="#">Edit</a><a href="#">Hapus</a></td>

</tr><tr>

<td>2</td><td>Muhammad Pailus</td><td>22</td>

</tr></table></center>

Maka penampilannya menjadi seperti ini.

Kemudian kita buat satu buah halaman lagi di folder yang sama dengan index.php, kitaberi nama edit.php (yang nantinya digunakan sebagai halaman untuk edit data didatabase). Di file edit.php, kita isi dengan tag html dan dibagaian <body> isi denganform seperti contoh dibawah.

<center><h1>Edit Data</h1><form>

<label>Nama: </label><input type="text" value="Nama Anggota"/><br/><label>Umur: </label><input type="number" value="21"/><br/><button type="submit">Update Data</button>

</form>

Page 9: PHP CRUD Database Mysql

</center>

Halaman tampilan terakhir yang akan kita buat adalah untuk menanmpilkan hasilpencarian, buat PHP baru yang satu folder dengan index.php, kita beri nama cari.php.,halaman ini yang nantinya akan menampilkan data pencarian yang kita tulis diatas tabelyang menampilkan data anggota di file index.php.Setelah diisi dengan tag PHP dasar,lanjutnya dengan mengetik sintak berikut.

<center><h1>CARI ANGGOTA</h1><br/><p><strong>hasil pencarian untuk keyword : 

"keyword"</strong></br></br><strong>Nama :</strong>Nama Anggota<br/><strong>Umur :</strong>Umur Anggota<br/><br/><a href="index.php">< Kembali Ke Daftar Anggota</a></p>

</center>

Hasilnya :

Page 10: PHP CRUD Database Mysql

So, mari mulai kding untuk select datanya, pada latihan sebelumnya telah dibuat fileconnect.php yang berisi fungsi untuk koneksi ke database, kita gunakan lagi file tersebutdengan menambahkan baris ini di index.php paling atas.

<?php require_once('connect.php');?>

Didalam file index.php, kita variabel untuk menyimpan query , hasil query, dan array hasilquerynya untuk kemudian kita masukan kedalam tabel yang sudah dibuat tadi. Silahkanmasukan kode php ini dibawah <tr>nya id_anggota,nama, umur., sebelumnya hapuscontoh data yang telah kita buat dengan HTML tadi.

…<td><strong>Umur</strong></td>

</tr><?php

$sql = "SELECT * FROM anggota";$query = mysql_query($sql) or die("Gagal 

eksekusi");while($row = mysql_fetch_assoc($query)) {

$id = $row['id_anggota'];$nama =  $row['nama_anggota'];$umur = $row['umur'];

echo'<tr><td>'.$id.'</td><td>'.$nama.'</td><td><span style="margin­right:10px">'.$umur.'</span>

<a href="#">Edit</a>|<a href="#">Hapus</a></td></tr>';

}}

Page 11: PHP CRUD Database Mysql

?>

</table>…

hasilnya :

Untuk saat ini kita telah berhasil memasukan datanya kedalam tabel, yang kita buatberikutnya adalah membuat input text pencarian yang ada diatas tabel berhasildigunakan dan menampilkan hasil pencariannya di cari.php.

Yang dilakukan pertama adalah mengatur metode pengiriman data yang akan digunakandan url tujuan pengiriman data, untuk itu perhatikan <form>, dan penambahan namepada input type texxtnya, edit sesuai dengan petunjuk dibawah.

<form action="cari.php" method="GET"><input name="keyword" type="text" value="Cari Anggota..."/><button type="submit">Cari</button></form>

Mari kita testing pada ection dan methodnya sudah berjalan dengan baik, denganmemasukan kata didalam formnya kemudian klik tombol cari. Untuk test disini sayamengetikan keyword yussan.

Jika halamannya telah berubah, dan urlnya seperti pada gambar dibawah maka siapuntuk dilanjutkan kode berikutnya.

Page 12: PHP CRUD Database Mysql

Yang diperlukan untuk membuat pencarian di index.php sudah selesai, kini giliran beralihkehalaman cari.php untuk menampilkan datanya.

Seperti pada halaman index.php, tambahkan fungsi untuk koneksi dengan database dibagian paling atas. Dibawahnya <h1>CARI ANGGOTA</h1><p> kita buat query untukmenampilkan data berdasarkan keyword.

<p><?php

$keyword = $_GET['keyword'];//memanggil data dari mget methog

$sql = "SELECT * FROM anggota WHERE nama_anggota LIKE '%".$keyword."%'";

$query = mysql_query($sql) or die("Gagal eksekusi");

while($row = mysql_fetch_assoc($query)) {$id = $row['id_anggota'];$nama =$row['nama_anggota'];$umur=$row['umur'];

?><strong>hasil pencarian untuk keyword : "<?php echo 

$keyword;?>"</strong></br></br><strong>Id_anggota :</strong><?php echo $id;?> |<strong>Nama :</strong><?php echo $nama;?> |<strong>Umur :</strong><?php echo $umur;?><br/><br/>

<?php}

?><a href="index.php">< Kembali Ke Daftar Anggota</a>

</p>

Ada yang baru kita temukan adalah $_GET[], merupakan cariabel dimana tempat databerada, untuk indeksnya diisi dengan name dari input yang telah kita buat di form html.

Page 13: PHP CRUD Database Mysql

INSERT DATAYang diperlukan dalam insert data adalah, form untuk tempat isi data dan file pemrosesdata, untuk itu sebelumnya kita buat terlebih dahulu file proses.php dalam folder yangsama dengan index.php untuk meletakan proses-proses yang diperlukan untuk latihankali ini.

Karena nantinya file proses.php ini tidak hanya digunakan untuk proses tambah data,maka kita buat switch agar proses.php juga bisa digunakan unutk edit dan delete data.

<?phprequire_once('connect.php');switch ($_GET['act']) {

case 'add':

break;

case 'edit':

break;

case 'delete':

break;

default:echo "Perintah anda tidak tersedia";break;

}?>File proses sudah disiapkan, kini kita buat form untuk memasukan data, kembali lagi ke

Page 14: PHP CRUD Database Mysql

index.php

Dibagian atas cari anggota, kita buat form baru lagi untuk melakukan penambahananggota.

<h1>DATA ANGGOTA</h1><form method="POST" action="proses.php?act=add">

<strong>Tambah Anggota</strong><br/><label>Nama :</label><input type="text" 

name="nama"/><br/><label>Umur :</label><input type="number" 

name="umur"/><br/><button type="submit">Tambah Data</button>

</form><br/>

dan hasilnya :

Kembali lagi ke file proses.php, kini tujuan kita adalah membuat prosesnya agar data dariform bisa terkirim ke database.

Didalam case 'add' sampai break; silahkan tambahkan baris kode dibawah ini.

$nama = $_POST['nama'];$umur = $_POST['umur'];

Page 15: PHP CRUD Database Mysql

$sql = "INSERT INTO anggota(nama_anggota,umur) VALUES('".$nama."',".$umur.")";

echo $sql;if(mysql_query($sql)){

echo ("<SCRIPT LANGUAGE='JavaScript'>window.alert('Data BERHASIL 

ditambahkan');window.location.href='index.php';

</SCRIPT>");} else {

echo ("<SCRIPT LANGUAGE='JavaScript'>window.alert('Data GAGAL 

ditambahkan');window.location.href='index.php';

</SCRIPT>");}

Dan akhirnya

Page 16: PHP CRUD Database Mysql

EDIT DATALangkah berikutnya yang akan kita lakukan adalah edit data, dalam kasus ini penulis buatada 2 kondisi saat edit data, kondisi pertama, ketika proses menuju form edit data, dankondisi kedua adalah proses ketika memasukan hasil edit data ke database.

KONDISI PERTAMA

Pertama kita buat kondisi awal , yaitu ketika user klik “edit” yang ada di halamanindex.php maka akan masuk kehalaman edit.php dan siap untuk edit data. Masuk keindex.php di bagian while, edit <a> nya menjadi seperti ini.

<a href="edit.php?id='.$id.'">Edit</a>|<a href="#">Hapus</a> 

Gambarannya ketika masuk halaman edit.php, juga mengirimkan data ke halamantersebut dengan get method. Urusan dihalaman index.php sudah berakhir, kini kitaberalih kehalaman edit.php

Seperti biasa masuk fungsi koneksi kedalam edit.php, selanjutnya kita buat query untukmenampilkan datanya dari database, karena disini kita hanya menampilkan satu barisdata saja, maka yang diperlukan adalah kolom unik, dan id_anggotalah yang digunakan,dikirim melalui method get dari index.php.

Isi keseluruhan edit.php

<?php require_once('connect.php');?><?php

$sql = "SELECT * FROM anggota WHERE id_anggota = ".$_GET['id'];

$query = mysql_query($sql) or die("Gagal eksekusi");$row = mysql_fetch_assoc($query);$id = $row['id_anggota'];$nama =  $row['nama_anggota'];$umur = $row['umur'];

?><!DOCTYPE html><html><head>

Page 17: PHP CRUD Database Mysql

<title></title></head><body>

<center><h1>Edit Data</h1><form>

<label>Nama: </label><input name=”nama” type="text" value="<?php echo 

$nama?>"/><br/><label>Umur: </label><input name=”umur” type="number" value="<?php echo 

$umur?>"/><input name=”id” type="hidden" value="<?php echo 

$id?>"/><br/><button type="submit">Update Data</button>

</form></center>

</body></html>

Form edit telah tersedia, kini giliran masuk ke kondisi kedua untuk memasukan datanyakedalam database. Sebelumnya edit method dan action form yang ada di edit.php.

<form action="proses.php?act=edit" method="POST">

Kini giliran masuk kedalam proses.php untuk memberikan kondisional, memasukan hasiledit kedalam database.

Dalam case 'edit' sampai break; silahkan masukan kode dibawah ini untuk proses editdata di database.

$id = $_POST['id'];

Page 18: PHP CRUD Database Mysql

$nama = $_POST['nama'];$umur = $_POST['umur'];$sql = "UPDATE anggota SET nama_anggota ='".

$nama."',umur=".$umur." WHERE id_anggota=".$id."";if(mysql_query($sql)){

echo ("<SCRIPT LANGUAGE='JavaScript'>window.alert('Data BERHASIL diedit');window.location.href='index.php';

</SCRIPT>");} else {

echo ("<SCRIPT LANGUAGE='JavaScript'>window.alert('Data GAGAL diedit');window.location.href='index.php';

</SCRIPT>");}

Page 19: PHP CRUD Database Mysql

DELETE DATABab terakhir hapus data, hati-hati jangan sampai salah hapus data, tidak banyak langkahyang digunakan untuk melakukan delete data, so langsung mulai saja.

Pandangan pertama kita tertuju pada index.php, kita edit <a>hapus, yang didalam while,untuk kemudian diubah menjadi seperti berikut.

<a href="edit.php?id='.$id.'">Edit</a>|<a onclick="return confirm(\'Apakah Anda Yakin\')" href="proses.php?act=delete&id='.$id.'">Hapus</a>

index.php sudah selesai, kini beralih ke halaman proses.php, perhatian kini pada case 'delete', karena proses delete akan kita taruh didalam situ.$id= $_GET['id'];

$sql = "DELETE FROM anggota WHERE id_anggota=".$id."";

if(mysql_query($sql)){echo ("<SCRIPT LANGUAGE='JavaScript'>

window.alert('Data BERHASIL didelete');

window.location.href='index.php';</SCRIPT>");

} else {echo ("<SCRIPT LANGUAGE='JavaScript'>

window.alert('Data GAGAL didelete');window.location.href='index.php';

</SCRIPT>");}

Page 20: PHP CRUD Database Mysql