-
Modul 7
Database Access
1.1 Tujuan a. Mahasiswa dapat membuat koneksi dengan mysql b.
Mahasiswa dapat membuat program create, upload dan delete.
1.2 Materi
a. ODBC
b. SQL 1.3 Alat dan Bahan
a. PHP dan MySQL b. XAMPP c. Browser
1.4 Prosedur Praktikum
a. Peserta membaca dan mempelajari materi praktikum
sebelumnya
b. Instruktur menerangkan dan menjelaskan teori dan cara kerja
c. Peserta mempraktikan materi percobaan d. Peserta membuat
penyelesaian terhadap soal latihan
1.5 Teori Database Access
Menyimpan data dalam file biasa memiliki banyak keterbatasan.
Semakin besar ukuran file, pencarian data menjadi lebih sulit. File
biasa juga tidak memiliki kemampuan untuk mengolah data, misalnya
menghitung total nilai, rata-rata, dan lain sebagainya. Dan yang
lebih penting, adanya keterbatasan
untuk mengendalikan akses terhadap data. Kita tidak dapat
menentukan siapa yang boleh dan siapa yang tidak boleh mengakses
data. Siapa yang boleh membaca dan tidak boleh menulis, dan
sebagainya. Karena itu, sekarang kita akan menggunakan media
penyimpanan data yang lebih
mutakhir, yaitu database. Operasi data dalam database umumnya
mengikuti pola yang sama, yaitu melalui rangkaian langkah sebagai
berikut :
Membuka sambungan dengan database server Memilih dan membuka
database yang diinginkan Mengirim perintah untuk
mengambil/mengubah/menghapus data. Mengakses hasil pengambilan data
Mengakhiri sambungan
Kita akan membahas masing-masing langkah tersebut satu per satu.
Sebagai contoh, kita akan mengaktifkan fasilitas login pada
aplikasi Contact Manager. User akan diminta untuk memasukkan
username dan password. Bila data yang dimasukkan sama dengan
yang ada dalam database, user akan diteruskan ke halaman welcome.
Kalau salah, akan muncul pesan error. Sebagai tambahan, kita akan
membuat halaman yang memungkinkan user untuk mengganti password.
User yang belum
terdaftar dapat melakukan registrasi di halaman yang akan
disediakan. Berikut screenshot halaman web yang dibutuhkan :
login.htm :
register.htm
-
Sekilas SQL Query
SQL (Structured Query Language) adalah bahasa yang khusus
digunakan untuk mengoperasikan database. Untuk memudahkan
pelajaran, SQL query akan dikelompokkan menjadi tiga:
Query untuk mengelola database
Query untuk mengakses data dalam satu tabel
Query yang melibatkan lebih dari satu tabel Query pengelolaan
database
Yang termasuk ke dalam kelompok ini adalah query yang bertujuan
untuk :
Membuat database
Menghapus database
Membuat tabel
Memodifikasi tabel
Menghapus tabel
Menambah user
Mengatur permission
Menghapus user Membuat database dilakukan dengan perintah
sebagai berikut :
CREATE DATABASE
Contohnya : untuk aplikasi Content Management, kita akan membuat
database ContentManager dengan query sebagai berikut :
CREATE DATABASE ContactManager
Menghapus database dilakukan dengan perintah :
DROP DATABASE
Contoh :
DROP DATABASE ContactManager
Membuat tabel dilakukan dengan memberikan perintah sebagai
berikut:
CREATE TABLE (
, , ,
);
-
contohnya:
CREATE TABLE userTable(
UserId INT (3), UserName VARCHAR (50), Password VARCHAR
(50),
NamaLengkap VARCHAR (50) );
Menghapus tabel dilakukan dengan menggunakan query
DROP TABLE ;
Contoh :
DROP TABLE userTable;
Query satu tabel Query satu tabel digunakan untuk mengelola data
dalam satu tabel. Beberapa hal yang dapat
dilakukan pada satu tabel adalah :
Tujuan Query
Memasukkan data INSERT
Memodifikasi data UPDATE
Mengambil data SELECT
Menghapus data DELETE
Menghitung banyaknya data COUNT
Menghitung penjumlahan data SUM
Menghitung nilai minimal MIN
Menghitung nilai maksimal MAX
Menghitung nilai rata-rata AVG
Untuk memasukkan data ke dalam database, kita menggunakan
perintah INSERT. Aturan
penulisannya adalah :
INSERT INTO (, < nama kolom2>, ..) VALUES (, , ..);
Contoh :
INSERT INTO userTable
VALUES (1,'indarzah','inipaswod','Indarzah' );
Untuk mengubah data dalam database, digunakan perintah UPDATE,
dengan aturan penulisan
sebagai berikut :
UPDATE SET =
WHERE
Contoh :
UPDATE userTable SET password=test WHERE UserName=indarzah
Untuk menampilkan data dalam tabel, gunakan perintah SELECT.
Aturan penulisannya adalah sebagai berikut:
SELECT FROM WHERE
Contoh :
SELECT * FROM UserTable WHERE UserId=1
Untuk menghapus data dari dalam tabel, gunakan perintah DELETE.
Aturan penulisannya adalah :
DELETE FROM WHERE
Contoh :
DELETE FROM UserTable WHERE NamaLengkap=Indarzah Masbatin
Putra
-
Query banyak tabel
Query banyak tabel digunakan untuk menghubungkan data di lebih
dari satu database. Pembahasan tentang join berada di luar materi
PHP Programming dan ada di pembahasan tentang relational
database.
Membuat koneksi ke database Sebelum mulai, kita terlebih dahulu
akan membuat database. Kita membutuhkan tabel user untuk
menyimpan data sebagai berikut :
Nama Field Tipe Data
UserId int(3)
UserName varchar(50)
Password varchar(50)
NamaLengkap varchar(50)
Tabel dibuat dengan memberikan query sebagai berikut:
CREATE TABLE userTable(
UserId INT (3) AUTO_INCREMENT PRIMARY KEY, UserName VARCHAR
(50), Password VARCHAR (50),
NamaLengkap VARCHAR (50) );
tabel siap digunakan.Kita akan mulai dengan halaman daftar,
karena kita belum punya user. File
register.php akan menangani pendaftaran user baru.
Tugasnyaadalah memasukkan data yang diisi dalam form ke dalam
database. Selanjutnya, kita akan melakukan langkah -langkah seperti
yang disebutkan di atas.
Membuka sambungan dengan database server Untuk membuka
sambungan, kita membutuhkan alamat server serta username dan
password untuk
database. Setelah itu, kita membuka sambungan dengan perintah
sebagai berikut :
$dbServer = "localhost"; $dbUser = "indarzah";
$dbPass = "test"; $dbConn = mysql_pconnect($dbServer, $dbUser,
$dbPass);
sambungan dengan database disimpan dalam variabel $dbConn untuk
digunakan pada langkah-
langkah selanjutnya. Memilih dan membuka database yang
diinginkan
Selanjutnya, kita akan menggunakan database tutorial, yang
sebelumnya telah dibuat dengan menggunakan PHPMyAdmin. Gunakan kode
berikut untuk memilih dan membuka database phpTutorial.
$dbName = "phpTutorial"; mysql_select_db($dbName);
sekarang database telah siap untuk digunakan. Kita dapat
melangkah ke tahap selanjutnya, yaitu
memasukkan data. Mengirim perintah untuk
mengambil/mengubah/menghapus data.
Perintah untuk memasukkan data dibuat dengan menggunakan aturan
SQL, dijelaskan lebih lengkap pada bagian selanjutnya. Query
(perintah) untuk memasukkan data a dalah :
INSERT INTO userTable VALUES (1,'indarzah','inipaswod','Indarzah
Masbatin Putra'
);
perintah tersebut dieksekusi di dalam script PHP sebagai berikut
:
$query = "
INSERT INTO userTable VALUES (1,'indarzah','inipaswod','Indarzah
Masbatin Putra'); "; $hasil = mysql_query($query);
if($hasil){ echo(mysql_affected_rows()." orang ditambahkan ke
dalam sistem"); }
-
Script kita harus mengambil data dari HTML Form (register.htm)
dan memasukkannya ke dalam database. Untuk itu, kita akan membuat
file register.php yang berisi kode sebagai berikut :
-
$user = "indarzah"; $pass = "test";
$db = "ContentManager"; $server = "localhost";
// membuat koneksi $koneksi = mysql_connect($server, $user,
$pass);
// memeriksa koneksi if(!$koneksi){ echo("Koneksi ke database
gagal");
exit; }
// membuka database mysql_select_db($db);
// membuat query $query = "SELECT * FROM userTable WHERE
userName='".$login."'";
// mengeksekusi query $hasil = mysql_query($query);
// mengakses hasil $jumlahHasil = mysql_num_row s($hasil);
if($jumlahHasil < 1){ echo("User $login tidak ada dalam
database ");} else{
echo("User $login ada dalam database"); $data =
mysql_fetch_array($hasil); $passwordAsli = $data["password"];
if($password == $passwordAsli){ echo("Password untuk user $login
benar");} else{
echo("Password untuk user $login salah");} } ?>
String Handling String handling adalah kumpulan function PHP
yang berguna untuk memanipulasi string. Ada banyak
kegunaan yang bisa didapat dengan menggunakan fungsi-fungsi ini,
misalnya: Pencarian kata dalam website
Pemeriksaan user input
Memformat file untuk keperluan khusus (misalnya email).
Dan sebagainya Sekilas Regular Expression Untuk dapat
menggunakan fungsi-fungsi string handling dengan baik, kita perlu
menguasai teknik
pembuatan pola kalimat. Contoh pola kalimat misalnya, alamat
email yang valid (misalnya [email protected]) selalu memiliki
pola sebagai berikut: satu atau lebih huruf/angka, diikuti tanda @
kemudian diikuti dengan satu atau lebih huruf/angka,
dipisahkan oleh tanda titik, lalu diakhiri dengan satu atau
lebih huruf/angka. Pola tersebut, dapat dinyatakan dengan
seperangkat kode sebagai berikut :
Pola kode
Harus di awal kata ^
Huruf A-Za-z
Angka 0-9
Huruf atau angka [A-Za-z0-9]
Semua jenis karakter .
-
Berjumlah satu atau lebih + atau {1,}
Berjumlah nol atau lebih * atau {0, }
Berjumlah tiga sampai sepuluh {3,10}
Diikuti dengan @ @
Tanda titik \.
Harus berada di akhir kalimat $
Pola alamat email di atas dapat dinyatakan dengan satu baris
kode sebagai berikut.
^.+@.+\..+$
Atau kita dapat membatasi alamat email yang digunakan oleh user
agar hanya menerima domain com, net, atau edu dengan menggunakan
pola berikut :
^.+@.+\.((com)|(edu)|(net))$
Penggunaan Regular Expression
Untuk mendemonstrasikan kemampuan string handling, kita akan
menggunakan input form yang akan memvalidasi alamat email dan nomer
telepon yang dimasukkan user. CekMail.htm berbentuk seperti gambar
di bawah:
input yang dimasukkan user akan diperiksa oleh script
CekMail.php yang berisi kode sebagai berikut :
Function yang digunakan untuk memeriksa email pada script di
atas adalah eregi. Menerima input berupa pola yang diinginkan dan
string yang akan diperiksa. Function ini akan menghasilkan nilai
true bila polanya sesuai dan false bila pola yang dicari tidak ada
pada string input.
1.6 Latihan
-
1. Coba script koneksi dan sql query pada modul ini, amati dan
buatkan langkah -langkah untuk membuat create, upload dan delete
dengan menggunakan query.
2. Coba latihan berikut ini: 1.1.1 01. MENGAKTIFKAN SERVER
Aktifkan modul server Apache (dengan PHP), dan modul MySQL.
gbr 01. Mengaktifkan server web localhost menggunakan XAMPP for
Windows.
1.1.2 02. MEMBUAT DATABASE DENGAN PHPMYADMIN
Buat database baru bernama db_crud. Lalu buat sebuah tabel
datasiswa dan tentukan jumlah fields/kolom: 4 (empat fields).
gbr 02a, 02b. Membuat database dan table menggunakan
phpMyAdmin
Struktur tabel datasiswa seperti berikut: CREATE TABLE
`db_crud`.`datasiswa` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT
,
`nama` VARCHAR( 255 ) NOT NULL , `usia` INT( 3 ) NULL , `gender`
ENUM( 'L', 'P' ) NOT NULL ,
PRIMARY KEY ( `id` ) ) ENGINE = MYISAM Field gender menggunakan
tipe data: enum(L',P') yang berarti hanya dapat diisi dengan
isian L untuk Laki atau P untuk Perempuan. Semua fields harus
diisi kecuali field usia boleh dikosongkan, sehingga khus us untuk
kolom usia diberikan parameter NULL.
gbr 02c. Struktur tabel datasiswa
1.1.3 03. MEMBUAT FOLDER KERJA
Buat folder baru di dalam htdocs webserver anda dengan nama
crud. Jika menggunakan XAMPP, maka letaknya akan seperti ini
c:\XAMPP\htdocs\crud. Di dalam folder ini semua file hasil kerja
anda akan disimpan. Folder ini juga merupakan situs baru di server
localhost
dengan alamat http://localhost/crud. Coba buka alamat ini di
browser anda. Jika benar maka browser anda akan ditampilkan halaman
seperti berikut:
-
gbr 03. Tampilan situs crud di browser Firefox.
1.1.4 04. MEMBUAT FILE PHP YANG DIPERLUKAN Buka Dreamweaver dan
pilih menu File > New (Ctrl+N).
Page Type PHP
Layout
Simpan file php yang baru dibuat dengan nama create.php ke dalam
folder kerja anda menggunakan menu File > Save As
(Ctrl+Shift+S)
Dengan cara yang sama seperti yang baru kita lakukan, ulangi
cara di atas untuk membuat 3 file lainnya dengan nama read.php,
update.php, dan delete.php.
gbr 04. Sekarang kita sudah memiliki 4 file yang kita
perlukan.
1.1.5 05. MENENTUKAN SITUS BARU Buka menu Site > New Site
Tentukan nama situs crud
URL http://localhost/crud
Klik Next > Pilih Yes, I want to use a server technology
Pilih PHP MySQL Klik Next > Pilih Edit and test locally (my
testing server is on this computer)
Tentukan folder tempat menyimpan file misalnya,
E:\xampp\htdocs\crud\ Klik Next >
Tentukan alamat root situs anda http://localhost/crud
Klik Next > Terakhir pilih No untuk setting remote/FTP. Klik
Next >
Berikutnya akan ditampilkan setting yang sudah anda berikan,
periksa sekali lagi hasil pengaturan situs yang sudah anda
tentukan. Jika sudah sesuai klik Done
-
gbr 05a - 05f. Site Definition Wizard.
Setelah selesai buka Panel Files (F8), akan tampil semua file
yang sudah anda buat:
gbr 05g. Panel Files.
1.1.6 06. MEMBUAT KONEKSI DATABASE
Sebelum memulai langkah berikut, PASTIKAN ANDA TELAH
MENGAKTIFKAN FILE create.php terlebih dahulu !! Karena langkah
selanjutnya mungkin akan otomatis memodifikasi file.
Tampilkan Panel Databases (Ctrl+Shift+F10). Klik icon + lalu
pilih MySQL Connection.
gbr 06a. Panel Databases Setting koneksi database:
Connection name (beri nama koneksi database, bebas)
conn_db_crud
MySQL server (lokasi server MySQL) localhost
User name (nama pengguna yg diberi akses MySQL) root
Password (Sandi untuk pengguna MySQL) 12345678
Database (Nama database) db_crud
gbr 06b. MySQL Connection settings
-
Setelah selesai maka tampilan Panel Database akan berubah
seperti gbr 06c.
gbr 06c. Panel Databases setelah dibuatkan koneksi baru
1.1.7 07. CREATE.PHP
Buka Panel Bindings (Ctrl+F10).
Pastikan langkah 1-3 sudah selesai dilakukan (ditandai checkmark
). Jika database belum terhubung anda tidak akan melihat tampilan
checkmark ini. Maka periksa di Panel Files, klik tombol Connects to
/ Disconnects from remote host untuk memastikan remote host
sudah terhubung. Lalu klik tombol Refresh (F5) di sebelah tombol
Connect/disconnect.
gbr 07a. Database siap digunakan untuk Bindings Klik Ctrl+F2
untuk membuka Toolbar Insert, pilih tab Data dan klik tombol
segitiga kecil
untuk memunculkan tombol Record Insertion from Wizard
gbr 07b. Toolbar Insert (Ctrl+F2)
gbr 07c. tombol Record Insertion from Wizard
Sekarang tentukan form sebagai berikut:
Connection (nama koneksi
database) conn_db_crud
Table (nama tabel) datasiswa
After inserting, go to (setelah
sukses tuju ke halaman mana) read.php
Form fields (kolom isian) Biarkan default kecuali field id atur
Display as: Hidden field, field gender atur Display as: Radio
group
-
gbr 07d. membuat form Insert
Jika field gender dipilih Display as: Radio group maka akan
muncul tombol Radio Group Properties, klik tombol ini dan tentukan
pilihan radio group yang ingin disediakan yaitu:
Pilihan pertama Label: Laki, Value: L
Pilihan kedua Label Perempuan, Value: P
gbr 07e. mengatur radio box untuk field gender Setelah selesai
klik OK, klik OK lagi untuk keluar dari Record Insertion Form. Maka
akan
tampil form yang dibuat melalui wizard ini di dalam Design View
anda. Tips! Untuk berpindah antara code view atau design view
gunakan tombol shortcut Ctrl+`.
gbr 07f. Tampilan form Insert setelah selesai dibuat.
1.1.8 08. READ.PHP Buka file read.php, lalu pada Toolbar Insert
buka tab Data, klik pada icon Dynamic Table .
gbr 08a. Icon Dynamic Table Ketika muncul jendela Setup
Instructions, terlihat langkah 1-3 sudah selesai dilakukan namun
langkah 4 belum selesai. Maka buka link pada 4. Create a Recordset.
(klik tulisan
Recordset). Maka akan terbuka jendela Recordset.
Nama Recordset (bebas) rsRead
Connection (pilih koneksi yang sudah dibuat) conn_db_crud
Biarkan setting lainnya standar dan klik OK. Dreamweaver akan
kembali ke tampilan sebelumnya, namun langkah 1-4 semua sudah
diberi tanda check. Klik OK.
-
gbr 08b. Setting Recordset (Query) Berikutnya akan tampil
jendela Dynamic Table untuk mengatur jumlah baris yang akan
ditampilkan. Biarkan jumlah data yang ditampilkan per halaman
berjumlah: 10 records at a time. Karena kita akan membuat sistem
paging yaitu pembagian halaman.
gbr 08c. Setting Dynamic Table Sekarang dalam mode Design View
(Ctrl+`)posisikan kursor di bawah tabel, caranya klik di samping
kanan tabel, lalu tekan Enter agar kursor turun ke bawah (lihat gbr
08d).
gbr 08d. Posisi kursor di bawah table
Kita akan membuat link bernama Tambah untuk membuka halaman
create.php. Caranya, di posisi kursor tersebut tinggal ketik Tambah
lalu pilih/blok kata tersebut. Buka panel Properties (Ctrl+F3),
pada bagian Link: ketikkan nama file yang ingin ditautkan yaitu
file
create.php atau arahkan target pointer ke file create.php pada
panel Files (lihat gbr 08e).
gbr 08e. Membuat Link ke file create.php
Sekarang simpan file create.php dan coba buka di browser anda.
Coba buatlah data sebanyak lebih dari 10 records. Maka data ke-11
dan seterusnya tidak ditampilkan karena pada langkah sebelumnya
kita sudah mengatur tampilan data hanya sebanyak 10 data per
halaman. Sekarang saatnya membuat recordset navigation bar alias
paging. Buka kembali file create.php di Dreamweaver. Posisikan
kursor di sebelah kiri tabel. Jika kita klik di sebelah
kiri tabel maka Dreamweaver akan memilih obyek di sebelah kanan
(tabel). Gunakan panah kiri pada keyboard untuk memindahkan pointer
kursor ke sebelah kiri tabel. Klik pada tombol Recordset Navigation
Bar untuk membuat paging.
gbr 08f. Tombol Recordset Navigation Bar di dalam Toolbar
Insert
-
Tentukan pilihan bentuk navigasinya
Text atau Images. Di tutorial ini kita coba bentuk Text
Klik OK.
gbr 08g. Setting Recordset Navigation Bar dipilih Text
Sekarang paging sudah tersedia. Tambahkan juga informasi jumlah
data tepat disebelah Navigation Bar dengan cara klik pada tombol
Recordset Navigation Status di dalam
Toolbar Insert Tab Data.
gbr 08h. Menambahkan Recordset Navigation Status Pada jendela
pengaturan Recordset Navigation Status yang terbuka, tinggal klik
OK
gbr 08i. Recordset dipilih rsRead
Apa lagi yah?
Oh iya buat link untuk menyunting data (update.php) dan
menghapus data (delete.php). Caranya arahkan kursor pada tabel
tepat di tulisan gender.
gbr 08j. Arahkan kursor di tulisan gender Lalu pada toolbar
Insert pilih tab Layout. Klik pada tombol Insert Column to the
Right
gbr 08k. Menambah kolom baru pada tabel Beri judul headernya:
Actions, lalu tulis di baris di bawahnya Sunting | Hapus. Untuk
mengatur agar baris ini tidak menjadi 2 baris maka pada Panel
Properties cell ini dipilih No wrap. Pilih / blok kata Sunting lalu
buatkan link ke halaman update.php. Lalu pilih / blok kata
Hapus dan buatkan link ke halaman delete.php. (Cara membuat link
sama seperti pada gbr 08e.) Pindah ke modus Code View dengan tombol
Ctrl+` lalu modifikasi kode:
Sunting | Hapusmenjadi:
-
1.1.9 1.1.10 09. UPDATE.PHP
Buka file update.php lalu pada Toolbar Insert, pilih Tab Data,
klik tombol Record Update Form Wizard.
gbr 09a. Pilih Record Update Form Wizard
Sama seperti ketika membuat Insert Form Wizard, anda perlu
mengatur Recordset -nya.
Nama rsUpdate
Pilih koneksi dan tabel conn_db_crud , datasiswa
Atur Filternya id = URL Parameter: id
gbr 09b. Membuat Recordset untuk update.php
Akan muncul jendela Record Update Form, lakukan pengaturan
seperti langkah sebelumnya. Khusus untuk kolom Gender lakukan
pengaturan dengan memilih tombol
Radio Group Properties. Lihat gbr 09c-09d.
gbr 09c. Pengaturan Record Update Form
gbr 09d. Pengaturan Radio Group Properties untuk kolom gender
Klik OK, Klik OK.
Simpan hasil pekerjaan anda. File update.php telah selesai.
1.1.11 10. DELETE.PHP
Di file ini tidak ada tampilan form karena file ini hanya akan
melakukan proses hapus data. Buka file delete.php. di Toolbar
Insert, pilih tombol Delete Record.
gbr 10a. Tombol Delete Record
-
Pengaturan di jendela Delete Record sbb:
Koneksi dan Table conn_db_crud , datasiswa
After deleting, go to read.php
Klik OK.
gbr 10b. Pengaturan Delete Record
Simpan file delete.php, file telah selesai.
1.1.12 11. LAKUKAN PERCOBAAN DI BROWSER
Buka browser anda dan ketik URL:
http://localhost/crud/read.php