3. Teknik Informatika - Universitas Kahuripan Kediri 3
Koneksi Database
PHP – MySql installed
MySql telah running (cek xampp control panel)
Database
Tabel
Query SQL (Structured Query Language)
Script PHP untuk pengolahan database
Output (HTML)
4. Teknik Informatika - Universitas Kahuripan Kediri 4
Koneksi Database
Berikut Langkah-langkah untuk Koneksi
Database menggunakan PHP
1. Koneksi ke server Database
2. Memilih database
3. Membuat perintah SQL (sql command)
4. Eksekusi command / perintah
5. Mengakses hasil eksekusi perintah
6. Melihat hasil output
7. Menutup sambungan
5. Teknik Informatika - Universitas Kahuripan Kediri 5
Contoh implementasi
Form login
Login user dicocokan dengan data input dari user
Form Input Data
Input Data dari User
List tabel
Menampilkan data dalam sebuah tabel misalkan
data keuangan, list nilai dan sebagainya
Detail data
Shoping cart
7. Teknik Informatika - Universitas Kahuripan Kediri 7
SQL
SQL (Structured Query Language) adalah bahasa yang
khusus digunakan untuk mengoperasikan database.
Untuk memudahkan, SQL query dapat dikelompokkan
menjadi tiga jenis :
Query untuk mengelola data
Query untuk mengakses data dalam 1 tabel
Query untuk mengakses data lebih dari 1 tabel
SQL Manager : Software yang digunakan untuk
mengolah database dalam server
PHPMyAdmin
SQLyog
EMS
8. Teknik Informatika - Universitas Kahuripan Kediri 8
Query Untuk Mengelola Database
Yang termasuk dalam kelompok query ini
adalah :
Membuat database
Menghapus database
Membuat tabel
Memodifikasi tabel
Menghapus tabel
Menambah user (user database)
Mengatur permission (user database)
Menghapus user (user database)
9. Teknik Informatika - Universitas Kahuripan Kediri 9
Query u/ Mengelola Database (cont.)
Membuat database
CREATE DATABASE <nama database>
Menghapus database
DROP DATABASE
Membuat tabel
CREATE TABLE userTable(
UserId INT (3),
UserName VARCHAR (50),
Password VARCHAR (50),
NamaLengkap VARCHAR (50)
);
Menghapus tabel
DROP TABLE <nama tabel>;
10. Teknik Informatika - Universitas Kahuripan Kediri 10
Query u/ 1 Tabel
Query satu tabel digunakan untuk mengelola data
dalam satu tabel
Beberapa perintah yang dapat digunakan :
Fungsi Query
Input data INSERT
Modifikasi data UPDATE
Mengambil data SELECT
Menghapus data DELETE
Menghitung banyaknya data COUNT
Menjumlah data SUM
Menghitung rata-rata AVG
dll
11. Teknik Informatika - Universitas Kahuripan Kediri 11
Query u/ 1 Tabel (cont.)
SQL INSERT
INSERT INTO userTable VALUES (
1,
‘ukk',
‘ukk123',
‘Teknik Informatika UKK'
);
SQL SELECT
SELECT *
FROM UserTable
WHERE UserId=1;
SQL UPDATE
UPDATE userTable
SET password=’test’
WHERE UserName=’ukk’;
SQL DELETE
DELETE FROM UserTable
WHERE UserName=‘ukk’
12. Teknik Informatika - Universitas Kahuripan Kediri 12
Latihan
Buat table: Biodata
UserId INT (3),
NamaLengkap VARCHAR (50)
TglLahir DATE
Alamat VARCHAR (50)
AsalSMA VARCHAR (50)
JurusanSMA VARCHAR (50)
====
Isi 5 data table : Biodata
Dan 3 data table UserTable
Membuat database
CREATE DATABASE <nama database>
Create database dataku
Menghapus database
DROP DATABASE
Membuat tabel
CREATE TABLE biodata(
UserId INT (3),
UserName VARCHAR (50),
Password VARCHAR (50),
NamaLengkap VARCHAR (50)
);
Menghapus tabel
DROP TABLE <nama tabel>;
13. Teknik Informatika - Universitas Kahuripan Kediri 13
Query u/ Banyak Tabel
Kelompok Query ini digunakan untuk
mengambil data dari lebih dari 1 tabel
menggunakan JOIN.
SELECT * FROM
UserTable JOIN Biodata
ON UserTabel.UserId =
Biodata.UserId
15. Teknik Informatika - Universitas Kahuripan Kediri
Koneksi PHP - MySQL
Untuk melakukan koneksi PHP dengan MySQL
digunakan perintah: mysqli_connect() -> skrip PHP.
Syntak:
mysqli_connect(“hostname”,”username”,”password”);
atau
mysqli_connect(“hostname”,”username”,”password”,”n
amadatabase”); = Jika sudah ada namadatabasenya
Note : utk versi PHP 5 kebawah menggunakan
mysql_connect sedangkan utk PHP 5 keatas
menggunakan mysqli_connect
15
16. Teknik Informatika - Universitas Kahuripan Kediri 16
Contoh koneksi
$sambung = mysqli_connect("localhost","root",
“password"); = isi dengan password anda
$sambung = mysqli_connect("localhost","root",
“password“, “kahuripan”); = isi dengan
password anda, koneksi dengan database
kahuripan
18. Teknik Informatika - Universitas Kahuripan Kediri
Koneksi PHP - MySQL
Setelah terkoneksi, pilihlah database.
Bila database yang diinginkan belum
tersedia, buatlah databasenya.
Buatlah tabel, dengan struktur datanya.
18
19. Teknik Informatika - Universitas Kahuripan Kediri 19
Membuat Koneksi dengan Database
<?php
$namaServer = "localhost";
$namaUser = "root";
$Pass = "pass"; //isi dgn password
$koneksi = mysqli_connect($namaServer,
$namaUser, $Pass);
?>
Variabel $koneksi akan berisi “resource” koneksi
yang sedang aktif setelah dilakukan connect
20. Teknik Informatika - Universitas Kahuripan Kediri 20
Memilih database
$namadatabase = "mydata";
mysqli_select_db($koneksi, $namadatabase);
21. Teknik Informatika - Universitas Kahuripan Kediri 21
Contoh variasi koneksi#1
<?php
error_reporting(0);
$koneksi = mysqli_connect("localhost","root","",“latakademik") or
die("Koneksi Gagal !" . mysqli_error());
if($koneksi) echo "Koneksi Berhasil“;
$db = mysqli_select_db($koneksi,”login") or die("Database tidak ada !" .
mysqli_error());
echo "<br />";
if($db) echo "Database login berhasil dibuka !";
/* mysqli_close($koneksi); */
?>
23. Teknik Informatika - Universitas Kahuripan Kediri 23
Contoh Variasi Koneksi#3
<?php //Membuat database MySQL
//$nama_db = “akademik";
$nama_db = “ukkbaru“;
//$buat_db = "create database $nama_db";
$buat_db = "create database $nama_db“;
// $query = “create table mhsbaru (nim varchar(8), nama varchar(30), prodi varchar(2))”;
$sambung = mysqli_connect("localhost","root", ""); //isi dengan password anda
//$sambung = mysqli_connect("localhost","root", "“,$namadb); //isi dengan password anda
if($sambung){
echo "Koneksi Berhasil“;
$q_db = mysqli_query($sambung, $buat_db);
// $q_db = mysqli_query($sambung, $query);
if($q_db){
echo "<br> Database $nama_db berhasil dibuat"; }
// echo "<br> Table $nama_db berhasil dibuat"; }
else {
echo "<br> Database $nama_db gagal dibuat"; }}
// echo "<br> Table $nama_db gagal dibuat"; }}
else { echo "Koneksi Gagal";}
?>
24. Teknik Informatika - Universitas Kahuripan Kediri 24
Membentuk perintah SQL untuk
Pengolahan Data
Perintah (SQL) ditampung dalam sebuah variabel
String
$query =
"INSERT INTO userTable VALUES (
1,
‘username',
‘password',
‘Username testing'
)”;
25. Teknik Informatika - Universitas Kahuripan Kediri 25
Eksekusi Perintah (SQL)
Setelah menyusun SQL dalam String, dilakukan
eksekusi perintah SQL :
$hasil = mysqli_query($sambung,$query);
if($hasil){
echo(mysqli_affected_rows()."
orang ditambahkan ke dalam
sistem");
}
26. Teknik Informatika - Universitas Kahuripan Kediri 26
Mengakses Hasil Query
Mengetahui jumlah data hasil query :
$jumlahHasil = mysqli_num_rows($hasil);
Note : perintah ini dapat membuat refresh otomatis
pada halaman input data
Mengambil data hasil query :
$data = mysqli_fetch_array($hasil);
Perintah tsb akan mengambil data (1 baris data) dan akan
mengembalikan false jika baris telah habis, maka untuk
mengambil seluruh data digunakan looping :
while($row = mysqli_fetch_array($result)){
//perintah yang dilakukan
$datas[] = $row;}
Mengambil data dalam bentuk array :
$passDb = $data[“Password”];
27. Teknik Informatika - Universitas Kahuripan Kediri 27
Output
Nilai kembalian dari mysql _fetch_array adalah
berupa array (1 dimensi / multi dimensi)
Dapat digunakan kombinasi antara looping dan
array untuk membentuk tampilan output HTML
dari data.
28. Teknik Informatika - Universitas Kahuripan Kediri 28
Praktikum
Siapkan 1 folder htdocs/ukk
Siapkan 1 file koneksi.php
Siapkan 1 file php dgn nama tampilmhs.php
29. Teknik Informatika - Universitas Kahuripan Kediri 29
Koneksi.php
<?php
$host = "localhost";
$username = "root";
$password = "";
$databasename = "ukk";
$connection = mysqli_connect($host, $username, $password,
$databasename) or die("Kesalahan Koneksi ... !!");
$find_db = mysqli_select_db($connection, $databasename);
if ($find_db) {
echo "Database Found";}
else
{echo "Database Tidak Ketemu";
}
?>
30. Teknik Informatika - Universitas Kahuripan Kediri 30
tampilmhs.php tampil 1 record
<?php
include "koneksi.php";
$query = mysqli_query($connection,"select * from mhs");
?>
<table border="1">
<tr>
<th>Nama</th>
<th>NIM</th>
<th>Jenis Kelamin</th>
</tr>
<?php $item = mysqli_fetch_array($query) ?>
<tr>
<td><?php echo $item['nama'] ?></td>
<td><?php echo $item['nim'] ?></td>
<td><?php echo $item['jenis_kelamin'] ?></td>
</tr>
</table>
31. Teknik Informatika - Universitas Kahuripan Kediri 31
tampilmhswhile.php tampil All record
<?php
include "koneksi.php";
$query = mysqli_query($connection,"select * from mhs");
?>
<table border="1">
<tr>
<th>Nama</th>
<th>NIM</th>
<th>Jenis Kelamin</th>
</tr>
<?php while($item = mysqli_fetch_array($query)){ ?>
<tr>
<td><?php echo $item['nama'] ?></td>
<td><?php echo $item['nim'] ?></td>
<td><?php echo $item['jenis_kelamin'] ?></td>
</tr>
<?php } ?>
</table>
32. Teknik Informatika - Universitas Kahuripan Kediri
Membuat Database via PHP (buatdatabase.php)
32
<?php
//Membuat database MySQL
$nama_db = "ukk";
$buat_db = "create database
$nama_db";
$sambung =
mysqli_connect("localhost","root
", "password"); //isi dengan
password anda
if($sambung){
echo "Koneksi Berhasil";}
else {
echo "Koneksi Gagal";}
$q_db =
mysqli_query($sambung ,
$buat_db);
if($q_db){
echo "<br> Database $nama_db
berhasil dibuat";}
else {
echo "<br> Database $nama_db
gagal dibuat";}
?>
33. Teknik Informatika - Universitas Kahuripan Kediri
Membuat Tabel MySQL (buattabel.php)
33
<?php
//Membuat tabel MySQL
include "koneksi.php";
$nama_tbl = "akun";
$buat_tbl = "create table
$nama_tbl(kode char(5) not null,
nama varchar(40) not null, alamat
varchar(40), password
varchar(20) )";
$qtbl = mysqli_query($connection,
$buat_tbl);
if($qtbl){
echo "<br>Tabel $nama_tbl
berhasil dibuat";}
else {
echo "<br>Tabel $nama_tbl gagal
dibuat";}
?>
34. Teknik Informatika - Universitas Kahuripan Kediri
FORM input
Membuat Form sebagai input pada sistem
database.
Input disimpan dalam satu tabel tertentu.
Pada attribut action ditentukan file yang memiliki
skrip PHP untuk menyimpan input ke tabel pada
database.
34
36. 36
Teknik Informatika - Universitas Kahuripan Kediri
inputbiodata.php (lanjutan)
$q_simpan = "insert into akun
values('$kode','$username' ,'$alamat',md5('$
password'))"; //simpan password dengan
enkripsi
37. 37
Teknik Informatika - Universitas Kahuripan Kediri
hapusdata.php
• hapusdata.php ini berisi tentang script php yang berisi
perintah view dan delete, dimana program akan menampilkan
data entrian yang dilakukan oleh user untuk memastikan data
tersebut memang ada, selanjutnya user akan menghapus data
tersebut.
• Program ini akan menghasilkan data yang tampil pada form
yang sama.
41. 41
Teknik Informatika - Universitas Kahuripan Kediri
hapusdataupdate.php
• Hapusdataupdate.php ini ini merupakan pengembangan dari
file hapusdata.php
• Program ini telah dilengkapi script php yang berisi perintah
update,
• Tahap awal user melihat dulu data yang akan diupdate
• Tahap kedua, user klik edit untuk menampilkan data yang
akan diedit
• Tahap ketiga, user mengedit data dan menyimpannya
• Program ini akan menghasilkan data yang tampil pada form
yang sama
45. 45
Teknik Informatika - Universitas Kahuripan Kediri
hapusdataupdate.php tampil data ke
viewdata.php
•Hasil view proses hapusupdatedata.php ini dapat ditampilkan dilayar yang
berbeda dengan cara menambahkan lokasi
50. 50
Teknik Informatika - Universitas Kahuripan Kediri
Definisi Session
Apa itu Session ?
Sesion merupakan sebuah fasilitas dalam PHP agar user dapat menggunakan
variabel global. Variabel global berguna untuk passing variabel antar layar. Hal ini
membantu antar layar untuk dapat saling berhubungan secara variabel.
Session juga berguna untuk mencegah user direct langsung ke URL/halaman
proses tanpa melalui proses login.
Untuk menggunakan perintah session maka kita harus mengaktifkannya.
1. Ketik ob_start(); session_start(); dan taruh di awal/paling atas script html,
contoh :
<?php
ob_start();
session_start();
include ‘koneksi.php';
?>
<html>
...
</html>
51. 51
Teknik Informatika - Universitas Kahuripan Kediri
Definisi Session
2. Pengaktifan perintah session ini membuat kita dapat menggunakan variabel
session yaitu $_SESSION[‘namasession’]
contoh :
$user = $_POST['username']; //mengambil entrian username
$_SESSION['username']=$user; //memindahkan nilai $user ke penampung
global $_SESSION['username']
note : $_SESSION['username'] harus ditulis dengan huruf BESAR
3. Penggunaan isi dari $_SESSION['username'] ini dapat digunakan diseluruh
layar selama di awal coding/script dari layar tersebut telah diaktifkan perintah
ob_start(); session_start();
4. Untuk mengakhiri penggunaan session apabila telah logout maka kita dapat
memberikan tahapan perintah sbb :
UNSET($_SESSION['username']); //melepaskan data session username
session_destroy();
52. 52
Teknik Informatika - Universitas Kahuripan Kediri
1. Buat tampilan seperti dibawah ini :
2. Jika login sukses maka arahkan untuk membuka file
hapusupdatedata.php
53. 53
Teknik Informatika - Universitas Kahuripan Kediri
3. Jika nama dan password salah maka akan keluar pesan “username atau password salah”
Note : perintah ini masih belum menggunakan session. Untuk
mengujinya, kita dapat mengetikkan URL proses
(localhost/ukk/hapusupdatedata.php) . Apabila langsung bisa terbuka
maka sistem semacam ini masih belum ada pengamannya. Silahkan
ikuti perintah pada slide berikutnya.
57. Teknik Informatika - Universitas Kahuripan Kediri
FORM-Input Database (action form ke halaman berbeda)
57
<html>
<head>
<title>Formulir Input Akun</title>
<meta author=UKK>
</head>
<body>
<h1>Masukkan Data Akun</h1>
<form method=post action=simpan.php>
<table>
<tr>
<td>Username</td>
<td><input type=text name=username size=20></td>
</tr>
<tr>
<td>Password</td>
<td><input type=text name=password size=30></td>
</tr>
Simpan dengan nama
inputbiodata.php
Note : Jika dalam skrip hanya
berisi tag html, file dapat
disimpan dgn extention html
58. Teknik Informatika - Universitas Kahuripan Kediri
Form Input Database
58
<tr>
<td align=center><input
type=submit name=submit
value=Simpan></td>
<td align=center><input
type=reset name=reset
value=Ulangi></td>
</tr>
</table>
</form>
</body>
</html>
59. Teknik Informatika - Universitas Kahuripan Kediri
Koneksi PHP - MySQL
Untuk menyimpan input ke tabel MySQL,
terlebih dahulu input dibaca sesuai metode yang
digunakan.
Untuk menyimpan ke database digunakan
perintah:
$hasil = mysqli_query(”SQL Statement”);
59
60. Teknik Informatika - Universitas Kahuripan Kediri
Koneksi PHP – MySQL simpan.php
60
<?php
$sambung =
mysqli_connect("localhos
t","root", "");
mysqli_select_db(‘login',
$sambung) or
die("Koneksi ke login
gagal");
?>
<html>
</head>
<body>
<h1>Akun</h1>
<?php
$username =
$_POST[‘username'];
$password =
$_POST[‘password'];
?>
61. Koneksi PHP – MySQL
Simpan.php - Lanjutan
61
<?php
$q_simpan = "insert into akun
values('$username' ,'$password')";
$hasil = mysqli_query($q_simpan,
$sambung);
if($hasil){
echo "Data tersimpan: <br>";
echo “username : ".
$username."<br>";
echo “Password : ".
$password."<br>";
}else{
echo "Data gagal disimpan";}
?>
<form method=post
action=inputakun.php>
<input type=submit
value=Kembali>
</form>
<form method=post
action=lihattable.php>
<input type=submit value="Lihat
Data">
</form>
</body>
</html>
Teknik Informatika - Universitas Kahuripan Kediri
Note : pada cetak tebal jika skrip inputbiodata
hanya html juga dpt disimpan dgn nama
inputbiodata.html
<form method=Nopost action=inputbiodata.html>
63. Teknik Informatika - Universitas Kahuripan Kediri
Menampilkan data bentuk table
63
<?php
$sambung =
mysqli_connect("localhost","root
",“password");
mysql_select_db('ukk',
$sambung) or die("Koneksi ke
ukk gagal");
$tampil = "select * from
biodata";
$q_buat = mysqli_query($tampil,
$sambung);
?>
<h1>Tabel Biodata</h1>
<table border=1>
<tr>
<td>Kode</td>
<td>Nama</td>
<?php
while($row =
mysqli_fetch_row($q_buat)){
echo ("<tr
align=center><td>$row[0]</td>")
;
echo ("<td>$row[1]</td>");
echo ("<td>$row[2]</td></tr>");
}
?>
</table>
<html>
<form method=post
action=inputbiodata.php>
<input type=submit
value=Tambah
name=tambah></form>
64. Teknik Informatika - Universitas Kahuripan Kediri
Menampilkan data bentuk table
64
65. Teknik Informatika - Universitas Kahuripan Kediri
Koneksi PHP - MySQL
Form Pencarian
Buat Input dengan type radio untuk
memilih field pencarian.
Buat Input dengan type text sebagai
kata kunci pencarian.
Buat tombol Cari, Input -> type Submit
65
66. Teknik Informatika - Universitas Kahuripan Kediri
Koneksi PHP - MySQL
66
<HTML>
<HEAD>
<title>Cari Database</title>
</HEAD>
<BODY>
<h1>Searching Biodata</h1>
<form
action="hasilsearch.php"
method="post">
<select name="kolom">
<option
value="kode">Kode</option>
<option
value="Nama">Nama</option
>
</select>
Masukkan kata yang anda
cari
<input type ="text" type
="text" name="cari">
<input type ="submit"
value="cari" >
</form>
</BODY>
</HTML>
Note : Simpan file dgn
nama “search.php”
70. 70
Teknik Informatika - Universitas Kahuripan Kediri
KONEKSI PHP – MYSQL (INCLUDE)
1. Buat database
CREATE DATABASE db_mhs;
USE db_mhs;
CREATE TABLE mahasiswa( id_mhs int(5), nama
varchar(30), alamat varchar(30) );
2. Isikan data sembarang
71. 71
Teknik Informatika - Universitas Kahuripan Kediri
3. Koneksikan PHP – MySql simpan dengan nama koneksi.php
<?php $host = "localhost“; //alamat server
mysql $user = "root“; //username
mysql $pass = ""; //password
mysql $db = "db_mhs“; //nama database
//koneksi ke server mysqli
$koneksi = mysqli_connect($host,$user,$pass) or die
("Tidak Bisa Konek ke Database");
//koneksi ke database
mysqli_select_db($db,$koneksi) or die ("Tidak
Menemukan Databasenya");
?>
72. 72
Teknik Informatika - Universitas Kahuripan Kediri
4. Buat file baca.php
<?php
include "koneksi.php";
$perintah= "SELECT * FROM mahasiswa";
$query = mysqli_query($perintah);
//tampilkan data
while($data=mysqli_fetch_array($query)) {
echo "nama :".$data['nama']." - alamat: ".
$data['alamat']; }
?>
75. Teknik Informatika - Universitas Kahuripan Kediri 75
Issues
Perhatikan kompleksitas query
Semakin kompleks query yang digunakan, semakin
lama waktu eksekusi
Perhatikan koneksi open-close
Non-presistent connection mencegah beban
berlebihan di server
Beban di server berbanding lurus dengan
jumlah user yang mengakses
Perhatikan sekuritas
Hindari kemungkinan sql-injection
Escape characters