Dengan PHP
Dalam tutorial ini akan dipelajari cara untuk membuat koneksi ke database dan CRUD data
(Create, Read, Update, Delete) dengan studi kasus data user. Tutorial ini belum membahas
tentang validasi inputan baik client side maupun server side. Untuk dapat mengikuti tutorial ini,
pastikan anda sudah menginstall server lokal pada PC anda. Saya menggunakan XAMPP sebagai
bundled server apache dan PHP.
Langkah 2 Database
Buat database dengan nama belajar. Kemudian buat tabel dengan nama user dengan data
berikut:
Fieldname Datatype
user_id int(4), PRIMARY, AUTO INCREMENT
username varchar(20)
password varchar(255)
email varchar(100)
fullname varchar(100)
agama varchar(15)
no_hp bigint(14)
File config.php ini nantinya akan banyak kita gunakan pada file-file lain yang perlu
menghubung ke server untuk menyimpan, merubah, maupun menghapus data.
1 <html>
2 <head>
3 <title>Belajar PHP</title>
4 </head>
5
6 <body>
7 <h1>Form Input Data</h1>
8
9 <form name="input_data" action="insert.php" method="post">
10 <table border="0" cellpadding="5" cellspacing="0">
11 <tbody>
12 <tr>
13 <td>Username</td>
14 <td>:</td>
15 <td><input type="text" name="username" maxlength="20" required="required"
16 /></td>
17 </tr>
18 <tr>
19 <td>Password</td>
20 <td>:</td>
21 <td><input type="password" name="password" maxlength="20"
22 required="required" /></td>
23 </tr>
24 <tr>
25 <td>Fullname</td>
26 <td>:</td>
27 <td><input type="text" name="fullname" maxlength="100" required="required"
28 /></td>
29 </tr>
30 <tr>
31 <td>Email</td>
32 <td>:</td>
33 <td><input type="email" name="email" required="required" /></td>
34 </tr>
35 <tr>
36 <td>Agama</td>
37 <td>:</td>
38 <td><input type="text" name="agama" required="required" /></td>
39 </tr>
40 <tr>
41 <td>Nomor HP</td>
42 <td>:</td>
43 <td><input type="text" name="no_hp" maxlength="14" required="required" /></td>
44 </tr>
45 <tr>
46 <td align="right" colspan="3"><input type="submit" name="submit"
47 value="Simpan" /></td>
48 </tr>
49 </tbody>
</table>
</form>
</body>
</html>
action="insert.php" adalah file yang digunakan untuk memproses data yang dimasukkan
melalui form ini. method="post" adalah metode pengiriman data yang digunakan. Ada dua
jenis menthod untuk mengirim data, yaitu post dan get. Pengiriman dengan method POST
berarti bahwa variabel-variabel data tidak ditampilkan pada url, sedangkan pengiriman dengan
method GET, variabel-variabel data disertakan pada url sehingga url terlihat seperti ini:
http://localhost/belajar/insert.php?
1
username=namanya&password=passwordnya&fullname=nama_lengkapnya
Sekarang coba buka pada browser anda dengan mengetikkan localhost/belajar pada
address bar browser. Akan tampil form input data seperti ini.
include() digunakan untuk menyertakan file lain dalam file ini. Ingat bahwa pada langkah
pertama kita sudah membuat file config.php yang berisi konfigurasi untuk menghubung ke
server, maka setiap kali kita perlu untuk menghubung ke database, kita cukup memanggil
file config.php saja tanpa harus menuliskan kembali kode-kodenya.
$_POST['name'] digunakan untuk menangkap value yang dikirim dari form. Untuk
menangkap data, gunakan name yang sama dengan name dari form. Contoh: untuk
menangkap data username dari form, maka gunakan $_POST['username'].
mysql_query() digunakan untuk menjalankan script SQL. Pada langkah ini, script SQL yang
kita gunakan adalah untuk menambah data ke database.
Tambahkan kode berikut pada file index.php setelah <h1></h1> untuk menampilkan pesan
sukses ketika berhasil menyimpan data.
1 ...
2 <h1>Form Input Data</h1>
3
4 <?php
5 if (!empty($_GET['message']) && $_GET['message'] == 'success') {
6 echo '<h3>Berhasil menambah data!</h3>';
7 }
8 ?>
9
10 <form name="input_data" action="insert.php" method="post">
11 ...
Sekarang coba jalankan aplikasi dengan membuka localhost/belajar dan isikan data pada
form dan klik tombol simpan. Jika berhasil, anda akan melihat pesan Berhasil menambah
data! seperti gambar dibawah. Jika gagal, periksa kembali kode yang anda tuliskan. Pastikan
tidak ada salah pengetikan.
1 <?php
2 include('config.php');
3 ?>
4
5 <html>
6 <head>
7 <title>Belajar PHP</title>
8 </head>
9
10 <body>
11 <h1>Data User</h1>
12
13 <a href="index.php">+ Tambah Data</a>
14
15 <table border="1" cellpadding="5" cellspacing="0">
16 <thead>
17 <tr>
18 <td>No.</td>
19 <td>Username</td>
20 <td>Password</td>
21 <td>Email</td>
22 <td>Fullname</td>
23 <td>Agama</td>
24 <td>No. HP</td>
25 <td>Opsi</td>
26 </tr>
27 </thead>
28 <tbody>
29 <?php
30 $query = mysql_query("select * from user");
31
32 $no = 1;
33 while ($data = mysql_fetch_array($query)) {
34 ?>
35 <tr>
36 <td><?php echo $no; ?></td>
37 <td><?php echo $data['username']; ?></td>
38 <td><?php echo $data['password']; ?></td>
39 <td><?php echo $data['email']; ?></td>
40 <td><?php echo $data['fullname']; ?></td>
41 <td><?php echo $data['agama']; ?></td>
42 <td><?php echo $data['no_hp']; ?></td>
43 <td><a href="#">Edit</a> || <a href="#">Hapus</a></td>
44 </tr>
45 <?php
46 $no++;
47 }
48 ?>
49 </tbody>
50 </table>
51 </body>
52 </html>
Kemudian tambahkan kode berikut pada file index.php setelah </form> sebelum </body>.
1 ...
2 </form>
3
4 <a href="view.php">Lihat Data</a>
5
6 </body>
7 </html>
Pada
kolom opsi terdapat dua menu, yaitu edit dan hapus. Pada langkah ini, kedua menu tersebut
masih belum dapat digunakan. Pada langkah berikutnya akan kita buat menu edit tersebut.
</body>
</html>
Umumnya, username seseorang tidak boleh dirubah setelah ia terdaftar. Untuk membuat agar
field input username tidak dapat dirubah, kita gunakan atribut disabled. Sampai langkah ini
kita belum dapat melakukan perubahan data, kita baru dapat menampilkan data pada form edit.
Untuk merubah data pada database, kita perlu membuat query SQL lagi untuk meng-
update database dengan data yang baru. Buat file baru dengan nama update.php dan
ketikkan kode berikut.
<?php
1
include('config.php');
2
3
//tangkap data dari form
4
$id = $_POST['user_id'];
5
$password = $_POST['password'];
6
$fullname = $_POST['fullname'];
7
$email = $_POST['email'];
8
$agama = $_POST['agama'];
9
$no_hp = $_POST['no_hp'];
10
11
//update data di database sesuai user_id
12
$query = mysql_query("update user set password='$password', fullname='$fullname',
13
email='$email', agama='$agama', no_hp='$no_hp' where user_id='$id'") or die(mysql_error());
14
15
if ($query) {
16
header('location:view.php?message=success');
17
}
18
?>
Kemudian tambahkan baris kode berikut pada file view.php setelah <h1></h1> (sama seperti
pada file index.php).
1 <?php
2 if (!empty($_GET['message']) && $_GET['message'] == 'success') {
3 echo '<h3>Berhasil meng-update data!</h3>';
4 }
5 ?>
Sekarang bukalah halaman view.php pada browser dan ubah-lah salah satu data yang sudah di
1 <?php
2 include('config.php');
3
4 $id = $_GET['id'];
5
6 $query = mysql_query("delete from user where user_id='$id'") or die(mysql_error());
7
8 if ($query) {
9 header('location:view.php?message=delete');
10 }
11 ?>
Kemudian tambahkan kode pada link dalam file view.php seperti berikut.
1 <td>
2 <a href="edit.php?id=<?php echo $data['user_id']; ?>">Edit</a> ||
3 <a href="delete.php?id=<?php echo $data['user_id']; ?>">Hapus</a>
4 </td>
Kesimpulan
Cobalah ber-eksperimen membuat aplikasi dengan lebih banyak input-an data sehingga tabel
didalam database juga menjadi semakin banyak, agar pemahaman konsep dasar tentang
pembuatan aplikasi web dengan PHP semakin kental dan mendalam. Untuk pembuatan aplikasi
yang lebih kompleks, tentu tutorial ini tidak cukup karena masih banyak sekali yang harus
disertakan seperti validasi, security, user interface, dan banyak lagi materi lainnya yang akan
dibahas dalam tutorial berikutnya. I hope you enjoyed this tutorial and have learn something new
today. Yang berhasil mengikuti tutorial, WAJIB isi komentar! Yang masih error, juga WAJIB isi
komentar! Karena isi komentar itu hukumnya WAJIB haha
Post navigation
Membuat Sistem Login Dengan PHP
Comment navigation
Newer Comments
1.
mas,.,
nama databasenya belajar
terus nama tabelnya apa mas??
apa belajar juga??
Aam
Wah iya, saya lupa gak nyebutin nama buat tabel nya,,,,
2.
thanks a lot.
udah membantu menjawab rasa penasaranku selama ini
(((^_____^)))
Thanks gempa
5.
1 Belajar PHP
2
3 Form Input Data
4
5 <input type="hidden" name="user_id" value="" />
6
7 Username
8 :
<input type="text" name="username" maxlength="20" required="required"
value=" disabled />
9
10 Password
11 :
12 <input type="password" name="password" maxlength="20" required="required"
13 value=" />
14
15 Fullname
16 :
17 <input type="text" name="fullname" maxlength="100" required="required"
18 value=" /></td
19
20 Email
21 :
22 <input type="email" name="email" required="required" value=" /></td
23
24 Agama
25 :
26 <input type="text" name="agama" required="required" value=" /></td
27
28 Nomor HP
29 :
30 <input type="text" name="no_hp" maxlength="14" required="required"
31 value=" /></td
6.
7.
mas, gimana caranya membuat scrip menyimpan data (insert.php) cukup dituliskan di
satu file saja yaitu di index.php, khan tidak memperbanyak file di dalam directory
Contoh index.php:
1 <?php
2 $action = $_GET['act'];
3
4 switch ($action) {
5 case '':
6 ?>
7 <form name="input_data" action="index.php?act=insert" method="post">
8 ...
9 code untuk form tulis disini
10 ...
11 <?php
12 break;
13
14 case 'insert':
15 //code buat insert data taruh disini
16 break;
17 }
18 ?>
Perhatikan baris kode untuk form, disitu action nya diarahkan ke file index.php
dengan tambahan ?act=insert sehingga url nya menjadi index.php?act=insert.
nah, variabel act ini yang akan dibaca untuk menentukan action apa yg akan
dilakukan oleh file index.php dengan menggunakan case.
8.
sore mas, untuk yang edit, setelah saya ubah datanya dan saya klik save. Pada lihat data,
data yang sudah di edit, malah hilang. mohon bantuannya mas.file sudah saya kirim by
emailmohon bantuannya
9.
asalamualaikum gan neh tutorial emang mantep tp kok pas lg menghapus tuh data ilaang
semua ya gan tolong gan ane kasih yang menghapusnya satu record ajh
mantap bin ajep neh tutorial
waalaikumsalam
wah tanks nih gan udah dibilang mantepp..
itu di tutorial buat hapus datanya emang satu-satu koq gan, delete per record, gk
delete semuanya
keknya agan ada di SQL syntax nya
dicoba gan
10.
11.
mas.. mau tny.. smw script yg dibuat iki.. dsmpenny neng folder belajar iku yoo? matur
suwon..
iya..
12.
langkah 7 agk ora mudeng e mas.. buat lbh jlas mas.. please. btuh tenan iki..
13.
DATA PESERTA
Tambah Data
USER ID
DIVISI
NAMA PESERTA
JOB TITLE
ORGANIZATION NAME
PHOTO
ACTION
Edit || Hapus
Cek juga, mungkin blok penutupnya kelebihan, jadi seperti ini {}}
contoh:
if (condition) {
contoh 2:
if (condition) { kode program}}
Ini juga error, karena kelebihan blok penutup.
14.
15.
untuk tambah data kok muncul Duplicate entry 0 for key 1 itu gmn?klo primary selain
user_id bisa..trims
Dari tutorial, saya cek tidak ada yang salah. Coba mas wawan cek lagi di SQL
syntax nya. Untuk belajar, pastikan coding yang dituliskan sama persis dengan
yang ada dalam tutorial ini.
Kalo masih ada masalah, silahkan ditanyakan lagi, and Thanks udah ngikutin
tutorialnya
16.
18.
19.
thanks bro
full respect, ditunggu untuk next tutorialnya
boleh minta emailnya??
20.
gan, kalau untuk Mencari datanya gmn misal : sy pgn cari nama yang berawalan SRI
maka semua yang berawalan SRI tersebut ditampilkan
thx.
contoh:
SELECT * FROM users WHERE fullname LIKE 'sri%'
21.
22.
trus proses.php
tapi hasilnya masih error Out of range value adjusted for column user_id at row 1
solusinya gimana y?
udah dicoba ganti databse hasilnya masih sama aja mas
23.
intinya sama dengan tutorial ini tinggal data nya aja yang disesuaikan
24.
25.
assalamualaikum, mas ini tutorial mantaaaaaaabbbbbb, tapi,,,,, kok pas di coba input,
ada sintax yg error ya??? masalahnya di pesan saat berhasil input, masalahnya disini mas
header(location:index.php?message=success);
waalaikumsalam
pesan erornya apa..?
26.
Warning: Cannot modify header information headers already sent by (output started at
C:Program Filesxampphtdocsbelajarconfig.php:11) in C:Program
Filesxampphtdocsbelajarinsert.php on line 17
27.
jadi gimana mas, aku cuba ngikutin petunjuk dri tutorial ini
28.
pesan tersebut juga berlaku ke delete dan edit, msalah itu sama di bagian headernya
29.
oke mas, ada full scripnya ga mas, klo py aq minta dikirimin ke akimbijak@yahoo.com,
biar aq pelajari lebih dalam mas, thanks sebelumnya, sy tunggu tutorial2 berikutnya :),
salam kenal Akim bekasi
30.
Siang mas q udah buat file edit nya,,tapi pas aku nyoba nya ga bisa di edit mas,,,mhon
bantuan nyanc file edit nya.
Belajar PHP
Username :
<input type="text" name="username" maxlength="20" required="required" value=" />
Password
:
<input type="password" name="password" maxlength="20" required="required"
value=" />
Agama
:
<input type="text" name="agama" required="required" value=" />
sekolah
:
<input type="text" name="sekolah" required="required" value=" />
Lihat Data
mas, saya munculnya eror pas mau nampilin pesan, di line ini yang eror:
HEADER(location:view.php?message=success';)
Coba di cek lagi apa yg udah tampil di layar sebelum perintah hedaer()
dipanggil..
o
maswahyu - 22 March 2012 at 14:23
32.
Tetep ga bisa mas.. bisa nya pake echo jadinya gak pake header..
33.
cara ngecek apakah data sudah tersimpan di database gimana mas ? biar ga bentrok
primary key-nya.
makasi sebelumnya .. tutorialnya keren ..
Kalo buat primary key gk bentrok, saya biasanya primary key pake
auto_incement, jadi gk akan bentrok karna dari SQL nya otomatis +1 dari primary
key terakhir.
Kalo bikin generator sendiri buat primary key, berarti harus bikin function buat
cek nilai primary key terakhir.
34.
makasi mas dan hehehe .. mo nanya lg .. cara masukin tgl gimana ya ? klu aku ketik dgn
format yyyy-mm-dd masuk .. kalu format biasa dd-mm-yyyy ga bs .. mohon pencerahan
mas. makasi
35.
LOGIN
Username :
Password :
maksih,,
hello mas,,,
gmana cara inputnya langsung ke database mas,,,??
makasih mas,,,,
36.
makasi mas .. hehehe .. mo nanya lagi .. kalo input tanggal biar di textfield-nya bs ditulis
dgn format misal :dd-mm-yyyy gimana caranya mas? kalo di entri sesuai format MySQL
( yyyy-mm-dd ) bisa masuk. kalo pake format laen ga mau .. mohon pencerahannya mas.
format buat di SQL emang yyyy-mm-dd, jadi kalo masukin formatnya gk gitu, gk
bisa.
37.
38.
masbro,. saya sedikit mendalami excel, disana ada kumpulan function (seperti:
VLOOKUP,SUM,AVERAGE,dll) lengkap dengan syntax dan contohnya, sehingga kita
bisa bereksperimen dengan semua fungsi tersebut.nah di PHP bisa saya dapatkan
dimana ? (seperti: header, location, mysql_fetch_array, href, include, dll) yang menurut
saya itu adalah perintah baku/standarnya PHP. makasih sebelumnya.
http://php.net/manual/en/index.php
39.
mas, kalo membuat data input dari halaman admin coding ini bisa dipake juga gak?
o
40.
41.
42.
mas kalo user nya gak boleh sama gimana caranya ???
kan username kan kudu unik
trus nampilkan peringatan kalo username nya ada yg pake dan gimana ??
Di database nya, yg kolom username dibikin unique. Kan ada buat primary,
unique, dll
43.
halo mas, saya natallia. saya masih baru di program ini. dan saya coba mendownload
program punya mas. dan coba run. tetapi ada diminta masukin user dan pass untuk login.
saya tidak tau apa user dan pass nya. mohon bantuannya untuk info dari user dan pass.
terima kasih atas bantuannya:)
dalam file downloadnya sudah saya sertakan database dan user untuk login. coba
di import dulu yg file .sql ke database. abis itu login dengan user: admin, pass:
admin
44.
mas mau tanya dnk, saya udah download program mas dan saya run seperti yang
dilakukan mbak natalia. tidak lupa jg saya sudah mengimport file. sql ke databasenya.
setelah itu saya login dengan user:admin, pass:admin, tetapi muncul tulisan serperti ini:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user
root@localhost (using password: NO) in C:xampphtdocsbelajarconfig.php on line 19
Access denied for user root@localhost (using password: NO)
saya harus bagaimana ya? mohon pencerahan. terimakasih banyak atas tutorialnya yg
sangat bermanfaat:)
45.
Mas, kalau mau disable kan fungsi HTML pada Form Inputnya gimana ya?
Pengaturannya ada di PHP atau Database?
Karena kalau masukkan source code IMG SRC maka gambar akan muncul pada halaman
View. Jadi intinya, form input hanya bisa di isi dengan Text
itu tekniknya namanya form validation. belum dibahas dalam tutorial ini.
47.
pernah download dan nyoba,dan seingetku wktu nyoba berhasil cuman waktu diterapin di
programku kok rada2 error gtu,ada yg ga tampilsangat membantu
48.
49.
Nice share.
Matur thank you sanget ya,
50.