1 Modul Penuntun Praktikum Pemrograman Berbasis Web Sayed Muchallil, M.Sc Razief Perucha Fauzie Afidh, M.Sc Program Studi Informatika Fakultas Matemat...
Pemrograman Berbasis Web Sayed Muchallil, M.Sc Razief Perucha Fauzie Afidh, M.Sc
Program Studi Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Syiah Kuala 2012
Pemorgraman Berbasis Web
Sayed Muchallil Razief Perucha Fauzie Afidh
Program Studi Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Syiah Kuala
2012
KATA PENGANTAR
Puji syukur kehadirat Allah subhanahuwata’ala, atas izin-Nya buku penuntuk praktikum ini dapat dikerjakan dan diselesaikan dengan sebaik-baiknya. Shalawat beriring salam kepada Nabi Besar Muhammad SWA, yang telah mengantar dan membimbing kita kepada keindahan dunia yang penuh dengan ilmu pengetahuan.
Syukur alhamdulillah kami ucapkan atas selesainya penyusunan buku penuntun praktikum untuk mata kuliah Pemograman Berbasis Web. Buku penuntun yang berisikan 10 bab ini diharapkan dapat bermanfaat bagi mahasiswa/i FMIPA Unsyiah jurusan informatika khususnya dan pengguna dikalangan Universitas Syiah Kuala pada umumnya.
Terimakasih penulis ucapkan kepada seluruh pihak yang telah membantu dan mendukung penulisan buku penuntun praktikum ini. Penulis sadar bahwa dibalik keterbatasan penulis, banyak terdapat kekurangan dalam penyusunan buku ini. Oleh karenanya, penulis mengharapkan saran dan masukkan dari pembaca buku penuntun praktikum ini. Saran dan masukkan yang membangun dan positif yang diberikan akan membuat buku ini menjadi lebih baik dalam penggunaannya.
Darussalam, Oktober 2012
TIM Penulis
DAFTAR ISI KATA PENGANTAR ...................................................................................... i DAFTAR ISI .................................................................................................... ii
BAB I Pengenalan web form ........................................................................... 1 1.1. Tujuan ................................................................................................. 1 1.2. Pendahuluan ........................................................................................ 1 1.3. Langkah-langkah praktikum.............................................................. 7
BAB II Pembuatan Database .......................................................................... 11 2.1. Tujuan ................................................................................................. 11 2.2. Pendahuluan ........................................................................................ 11 2.3. Langkah-langkah praktikum.............................................................. 22
BAB III KONEKSI PHP MYSQL ................................................................... 24 3.1. Tujuan .................................................................................................. 24 3.2. Pendahuluan ......................................................................................... 24 3.3. Langkah-langkah praktikum............................................................... 36
BAB IV PENCARIAN DATA PADA MYSQL MENGGUNAKAN PHP ..... 39 4.1. Tujuan ................................................................................................. 39 4.2. Pendahuluan ........................................................................................ 39 4.3. Langkah-langkah praktikum.............................................................. 40
BAB V ENTRY DATA KE MYSQL MENGGUNAKAN PHP ..................... 41 5.1. Tujuan ................................................................................................. 41 5.2. Pendahuluan ........................................................................................ 41 5.3. Langkah-langkah praktikum.............................................................. 64
BAB VI EDIT DATA MYSQL MENGGUNAKAN PHP .............................. 65 6.1. Tujuan ................................................................................................. 65 6.2. Pendahuluan ........................................................................................ 65
BAB VII MENGHAPUS DATA PADA MYSQL MENGGUNAKAN PHP .. 76 7.1. Tujuan ................................................................................................. 76 7.2. Pendahuluan ........................................................................................ 76 7.3. Langkah-langkah praktikum.............................................................. 82
BAB VIII FUNGSI DAN STRING.................................................................. 83 8.1. Tujuan ................................................................................................. 83 8.2. Pendahuluan ........................................................................................ 83 8.3. Langkah-langkah praktikum.............................................................. 101
BAB IX ARRAY .............................................................................................. 102 9.1. Tujuan ................................................................................................. 102 9.2. Pendahuluan ........................................................................................ 102 9.3. Langkah-langkah praktikum.............................................................. 106
BAB X SESSION ............................................................................................. 107 10.1. Tujuan .............................................................................................. 107 10.2. Pendahuluan..................................................................................... 107 10.3. Langkah-langkah praktikum .......................................................... 109
DAFTAR PUSTAKA
iii
MODUL I PENGENALAN WEB FORM 1.1 Tujuan Tujuan dari praktikum ini adalah agar mahasiswa mampu mendesain form pada halaman web sehingga dapat menjadi sarana interaksi antara user dengan halaman web.
1.2 Pendahuluan Form sangat berguna dalam pembuatan sebuah aplikasi web karena jika sebuah halaman web atau aplikasi web tidak memiliki form maka aplikasi tersebut tidak dapat berinteraksi dengan pengguna. Hampir semua halaman web membutuhkan input atau masukan dari user, di sinilah peran web form sangat penting. Web form umumnya digunakan pada aplikasi pooling dan survei, jaringan sosial, dan juga belanja online. Pembuatan web form antara HTML 4 dan HTML 5 adalah sama, akan tetapi elemen input pada HTML 5 lebih lengkap dan juga lebih sederhana secara struktur. Pada HTML 5 ada penambahan beberapa fitur yang tidak dimiliki oleh HTML 4. Selain itu, HTML 5 juga menyederhanakan bentuk-bentuk input yang sebelumnya telah dimiliki HTML4. Web form akan membutuhkan sebuah tag pembuka dan sebuah tag penutup. Pada tag pembuka ada dua atribut yang harus diberi nilai agar sebuah web form dapat bekerja. Berikut adalah contoh untuk membuat web form pada sebuah file.
dari contoh di atas dapat dilihat bahwa form memiliki tag pembuka (). Seperti umumnya elemen lainnya, elemen form juga memiliki atribut yang harus berada pada tag pembuka. Atribut yang paling sering digunakan adalah action dan method. Atribut method digunakan untuk menentukan proses pengiriman datanya. Beberapa nilai yang biasanya diberikan untuk atribut method adalah post dan get. Jika get yang dipilih, 1
maka data yang dikirim akan terlihat pada address bar namun dengan post data ini tidak akan terlihat. Oleh karena itu sebaiknya sebuah form yang mengandung data rahasia seperti password harus menggunakan method post. Atribut lainnya yang harus diberi nilai adalah action, nilai dari atribut action umumnya berisi sebuah halaman web yang dapat memproses masukan atau data dari user, biasanya ini merupakan halaman web yang bersifat server-side scripting. Berikut adalah beberapa elemen input yang dimiliki oleh HTML 5 dan tidak terdapat pada HTML 4. a. input email Sebelum adanya HTML 5 permintaan alamat email dari user akan menggunakan halaman elemen input yang sama seperti untuk permintaan input teks lainnya. Jika ingin memvalidasi alamat email yang dimasukkan oleh user, maka bisa menggunakan JavaScript atau PHP. Namun hal ini akan lebih mudah dengan HTML 5. HTML 5 jika digunakan pada browser yang sudah mendukungnya, maka validasi alamat email dapat langsung dikerjakan oleh HTML 5 tanpa bantuan script lainnya, seperti JavaScript dan PHP. Berikut adalah contoh pengunaan elemen input untuk email
dan tampilannya adalah sebagai berikut jika yang dimasukkan bukanlah alamat email
2
b. input URL Selain alamat email, HTML 5 juga menyediakan fasilitas untuk memasukkan alamat URL. Ini sangat berguna jika digunakan pada mobile device, karena dengan menggunakan lemen input ini maka tampilan keyboard akan berbeda dengan elemen input lainnya. Contoh format dari elemen input URL ini adalah sebagai berikut
Gambar di bawah ini adalah tampilan dari contoh penggunaan elemen input url. Hampir sama seperti pada elemen input email, pada elemen input url juga akan menampilkan error jika yang dimasukkan bukan alamat url.
c. input no Telepon Untuk memasukkan no telepon dengan format tertentu pada HTML 4 akan memerlukan bantuan dari javascript agar format yang dimasukkan oleh user adalah sama seperti format yang diinginkan. Hal ini tidak berlaku lagi pada HTML 5, dengan menggunakan elemen input no telepon, dan atribut pattern maka format dapat diatur sesuai dengan keinginan. Berikut adalah contoh untuk 3
elemen input no telepon.
Untuk memberikan keterangan terhadap input yang diinginkan maka perlu ditambahkan atribut title pada contoh di atas, pattern hanya berlaku untuk daerah yang kode wilayahnya tediri dari empat digit. Jika ada daerah yang kode wilayahnya hanya 3 digit maka bisa diberikan keterangan bahwa untuk daerah yang kode wilayahnya hanya 3 digit maka masukkan tambahan angka 0 sebelumnya. Maka kodenya menjadi seperti berikut
d. elemen pencairan (search field) HTML 5 sudah mendukung field yang dapat digunakan untuk memasukkan 4
keyword atau query untuk pencarian data. Jika browser yang digunakan sudah mendukung HTML 5, maka akan ada tampilan yang membuat pencarian lebih mudah. Ada pun format kode untuk membuat tampilan elemen input pencarian adalah sebagai berikut :
dan tampilannya adalah sebagai berikut
e. input angka Pada HTML 4 elemen input baik yang berupa teks maupun yang berupa angka tidak dibedakan. Sementara pada HTML 5, input berupa angka memiliki elemen khusus., sehingga input ini tidak akan menerima selain angka. Berikut adalah format pada HTML 5 untuk meminta input yang berupa angka saja. Penggunaan tipe ini pada browser yang mendukung HTML 5 akan menampilkan dua tanda panah pada akhir field, ini dapat digunakan untuk memilih angka yang lebih tinggi atau lebih rendah
5
f. input tanggal Umumnya sebelum HTML 5 hadir, input berupa tanggal akan memerlukan bantuan javascript, namun HTML 5 mengubah itu semua. Cukup dengan elemen input tanggal maka kita tidak membutuhkan javascript untuk menerima input berupa tanggal. Format umum yang digunakan adalah sebagai berikut
dan tampilannya adalah sebagai berikut
Jika tanda panah dipilih, maka akan keluar sebuah kalendar seperti pada gambar berikut
6
1.3 Langkah – Langkah Praktikum (Pertemuan I) 1. Download file praktikum.pdf pada alamat http://elektro.unsyiah.ac.id/staf/smuchallil/files/2012/11/Praktikum.pdf. Kemudian ganti ekstensi file menjadi html sehingga nama file menjadi praktikum.html. Pelajari file tersebut untuk pembuatan form 2. Buatlah sebuah form seperti yang ditunjukkan pada gambar-gambar berikut •
Form login
•
Form Entri Data Pelanggan
7
•
Form Entri Data Pegawai
•
Form Entri Data VCD
8
•
Form Penyewaan
•
Form Pengembalian
9
MODUL II PEMBUATAN DATABASE 2.1 Tujuan Tujuan dari praktikum ini agar mahasiswa mampu mengimplementasikan skema database dari bentuk EER menjadi bentuk tabel-tabel pada MySQL.
2.2 Pendahuluan MySQL merupakan salah satu database server yang dapat digunakan secara gratis dengan hanya mendownloadnya tanpa harus membayar. Aplikasi MySQL dapat diinstall hampir pada semua sistem operasi, termasuk Windows, Mac OS, dan Linux. Proses instalasi MySQL juga dapat dikategorikan mudah untuk semua sistem operasi di atas. Perintah SQL dibagi menjadi 3 tipe : 1. Data Definition Language (DDL) 2. Data Manipulation Language (DML) 3. Data Control Language (DCL) A. Data Definition Language DDL adalah perintah SQL yang digunakan untuk mendefinisikan struktur dari sebuah database. Beberapa perintah yang termasuk dalam perintah ini adalah a. CREATE Perintah ini digunakan untuk membuat tabel dan database. Format perintah untuk membuat database berdasarkan manual MySQL adalah sebagai berikut CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
Perintah yang berada dalam tanda { dan } artinya harus memilih salah satu, baik DATABASE atau SCHEMA. Perintah yang berada dalam tanda [ dan ] artinya optional yang bisa digunakan atau pun tidak. Sehingga jika kita ingin membuat sebuah database dengan nama informatika, maka perintahnya adalah sebagai berikut : CREATE DATABASE IF NOT EXISTS informatika;
berikut adalah tampilan ketika perintah tersebut dijalankan pada MySQL, pada 10
sistem operasi Linux Mint Debian Edition (LMDE). Pada gambar terlihat bahwa ada nilai yang dikembalikan oleh MySQL jika perintah ini berhasil, yaitu Query OK, 1 row affected (0.22 sec)
Pernyataan ini menyatakan bahwa query atau perintah SQL yang dimasukkan sudah benar dan waktu eksekusi adalah 0.22 detik.
Untuk membuat sebuah tabel, terlebih dahulu harus memilih database di mana tabel ini akan dibuat. Misalkan akan dibuat tabel pada database informatika yang telah dibuat sebelumnya, maka perintah untuk menggunakan database tersebut adalah USE informatika;
Sintaks pembuatan tabel menggunakan SQL berdasarkan manual MySQL adalah sebagai berikut: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options] [partition_options]
walaupun hampir sama seperti pembuatan database, ada sedikit perbedaan dalam 11
pembuatan tabel, yaitu adanya tipe data dan nama kolom atau nama field yang harus didefinisikan. Beberapa tipe data yang didukung oleh MySQL adalah sebagai berikut menurut
BIT[(length)] TINYINT[(length)] [UNSIGNED] [ZEROFILL] SMALLINT[(length)] [UNSIGNED] [ZEROFILL] MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL] INT[(length)] [UNSIGNED] [ZEROFILL] INTEGER[(length)] [UNSIGNED] [ZEROFILL] BIGINT[(length)] [UNSIGNED] [ZEROFILL] REAL[(length,decimals)] [UNSIGNED] [ZEROFILL] DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL] FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL] DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL] NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL] DATE TIME TIMESTAMP DATETIME YEAR CHAR[(length)] [CHARACTER SET charset_name] [COLLATE collation_name] VARCHAR(length) [CHARACTER SET charset_name] [COLLATE collation_name] BINARY[(length)] VARBINARY(length) TINYBLOB BLOB MEDIUMBLOB LONGBLOB TINYTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name] TEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name] MEDIUMTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name] LONGTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name] ENUM(value1,value2,value3,...) [CHARACTER SET charset_name] [COLLATE collation_name]
12
| SET(value1,value2,value3,...) [CHARACTER SET charset_name] [COLLATE collation_name] | spatial_type
Tipe data ini dapat digunakan untuk memberikan batasan nilai dari sebuah kolom. Selain tipe data, pada pembuatan tabel juga sebaiknya didefinisikan Primary key dan apakah sebuah isi dari kolom tersebut dapat dikosongkan atau harus diisi. Misalkan akan dibuat sebuah tabel dengan nama mahasiswa pada database informatika yang terdiri dari 3 kolom. Kolom pertama adalah nim dan kolom kedua adalah nama, kolom terakhir adalah tanggal lahir. Maka perintah SQL-nya adalah sebagai berikut : mysql> CREATE TABLE mahasiswa( -> nim varchar(13) NOT NULL PRIMARY KEY, -> nama varchar(30) NOT NULL, -> tgllahir date NOT NULL -> ) ENGINE = INNODB;
jika berhasil maka tampilannya adalah sebagai berikut
b. ALTER Perintah ALTER digunakan untuk mengubah struktur tabel yang sudah dibuat. Masih 13
mengacu pada tabel yang dibuat sebelumnya yaitu tabel mahasiswa, dengan anggapan ada kolom jenis kelamin yang lupa dimasukkan ketika pembuatan tabel di atas. Maka perintah yang dapat dibuat dengan menggunakan fungsi ALTER adalah sebagai berikut : mysql> ALTER TABLE mahasiswa ADD jk char(1) NOT NULL;
pada perintah di atas dapat dilihat bahwa ada penambahan kolom dengan nama jk bertipe karakter dengan panjang 1 huruf dan tidak boleh tidak diisi. Jadi kolom ini hanya menerima 1 huruf saja, misal untuk laki-laki adalah L dan untuk Perempuan adalah P. Berikut adalah tampilan dari eksekusi perintah di atas.
c. DROP Perintah DROP digunakan untuk menghapus tabel atau database. Sintaks perintah ini sangat mudah seperti yang terlihat di bawah ini untuk perintah menghapus database. DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
Dan sintaks perintah untuk menghapus tabel adalah sebagai berikut DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE]
14
Jika yang akan dihapus adalah tabel mahasiswa maka perintahnya adalah DROP TABLE mahasiswa;
dan Untuk menghapus database adalah sebagai berikut DROP DATABASE informatika;
d. TRUNCATE Perintah TRUNCATE menghapus seluruh isi tabel, berbeda dengan perintah delete perintah ini akan menghasilkan tabel yang benar-benar baru. Untuk bisa menjalankan perintah ini seorang user harus memiliki privelege untuk perintah DROP. B. Data Manipulation Language (DML) DML adalah perintah SQL yang digunakan untuk menampilkan, mengubah, memasukkan dan menghapus data pada tabel ataupun skema pada sebuah database. Beberapa perintah yang termasuk ke dalam DML adalah : a. SELECT b. INSERT c. UPDATE d. DELETE a. SELECT Perintah ini digunakan untuk menampilkan data dari sebuah tabel. Sintaks perintah ini adalah sebagai berikut SELECT {*|nama_kolom} FROM nama_table kondisi;
Untuk menampilkan semua data pada tabel mahasiswa yang telah dibuat di atas maka perintahnya adalah sebagai berikut SELECT * FROM mahasiswa;
Karena tabel mahasiswa belum ada isi sama sekali maka yang akan dikembalikan hanya empty set yang berarti bahwa tabel tidak ada data. Tampilan dari hasil eksekusi perintah di atas adalah sebagai berikut
15
b. INSERT Perintah ini berfungsi untuk memasukkan data ke dalam tabel. Jika data pada tabel berikut akan dimasukkan ke dalam tabel mahasiswa maka perintah insert perlu dilakukan beberapa kali sesuai dengan jumlah datanya. Nim
Nama
Tanggal Lahir
Jenis Kelamin
120405011213
Sayed
1985-12-12
L
120405011214
Maulizah
1987-10-11
L
120405011215
Maulizah
1989-9-10
P
120405011216
Yuni
1990-7-9
P
INSERT INTO mahasiswa VALUES('120405011213','Sayed','1985-1212','L'); INSERT INTO mahasiswa VALUES('120405011214','Maulizah','198710-11','L'); INSERT INTO mahasiswa VALUES('120405011215','Maulizah','19899-10','P'); INSERT
INTO
mahasiswa
VALUES('120405011216','Yuni','1990-7-
9','P');
16
Setelah perintah-perintah tersebut dijalankan maka tampilan hasil eksekusi adalah sebagai berikut
Untuk meyakinkan bahwa data tersebut sudah masuk, maka dapat dilakukan proses penampilan data menggunakan perintah SELECT seperti di bawah ini SELECT * FROM mahasiswa;
Tampilan dari perintah yang sama akan mendapatkan hasil yang berbeda karena sebelumnya data masih kosong dan sekarang sudah ada data seperti yang ditunjukkan gambar berikut ini
17
Untuk menampilkan data mahasiswa yang laki-laki saja maka perintahnya adalah sebagai berikut. SELECT * FROM mahasiswa WHERE jk='L';
Tampilannya adalah sebagai berikut
Untuk kondisi lainnya dapat dipelajari sendiri.
18
c. UPDATE Jika data yang dimasukkan ternyata salah, maka data tersebut dapat diganti dengan data lainnya dengan menggunakan perintah UPDATE. Perintah ini berfungsi untuk mengedit data pada sebuah tabel. Misalkan saja nama dari mahasiswi dengan nim 120405011214 adalah Muchallil bukanlah Maulizah. Maka perintahnya adalah sebagai berikut UPDATE
mahasiswa
SET
nama='Muchallil'
WHERE
nim='120405011214';
dan tampilannya adalah sebagai berikut
maka untuk memastikan bahwa perubahan sudah terjadi dapat digunakan perintah SELECT seperti di atas. Dan tampilan dari perintah ini adalah sebagai berikut Sebelum update
19
Setelah update
c. DELETE Perintah delete dapat digunakan untuk menghapus data sebuah baris pada sebuah tabel maupun untuk mengosongkan tabel. Untuk mengosongkan tabel dapat menggunakan perintah sebagai berikut DELETE FROM mahasiswa;
dan untuk menghapus baris tertentu dapat menggunakan perintah seperti berikut dengan menggunakan klausa WHERE. Misal data yang ingin dihapus adalah data mahasiswa yang memiliki nama yuni maka perintahnya adalah sebagai berikut mysql> DELETE FROM mahasiswa WHERE nama='yuni';
dan tampilannya adalah sebagai berikut
20
C. Data Control Language Perintah DCL digunakan untuk memberikan hak akses atau pun mencabut hak akses. Yang termasuk dalam perintah ini adalah a. GRANT b. REVOKE namun karena perintah tipe ini tidak termasuk dalam praktikum kali ini, pembahasan perintah ini akan dijelaskan pada modul kuliah pemrograman berbasis web saja.
2.3 Langkah – Langkah Praktikum (Pertemuan II) 1. Buatlah Skrip SQL dari skema database berikut ini
21
22
MODUL III KONEKSI PHP MYSQL 3.1 Tujuan Tujuan dari praktikum ini agar mahasiswa mampu melakukan koneksi ke MySQL dari database dengan beberapa cara.
3.2 Pendahuluan PHP sangat mendukung pengunaan Database MySQL sebagai back-end pada pemrograman web. Hal ini terbukti dari tersedianya lebih dari 45 fungsi pada PHP untuk berhubungan dengan MySQL. Fungsi-fungsi ini tidak akan dibahas seluruhnya pada modul ini, hanya yang berhubungan dengan pembuatan aplikasi data mahasiswa saja atau fungsi-fungsi lain yang umum digunakan pada sebuah pembuatan aplikasi web. Langkah-langkah dalam melakukan koneksi ke MySQL dari PHP adalah sebagai berikut : 1. Melakukan koneksi ke MySQL 2. Melakukan query ke database (me-retrieve, menambah, menghapus atau pun mengedit data) 3. Menampilkan data ke halaman web 4. menutup koneksi 1. Melakukan koneksi ke MySQL Untuk melakukan koneksi ke database ada beberapa ekstensi dan fungsi yang disediakan oleh PHP. A. ekstensi mysql Pada ekstensi ini untuk melakukan koneksi ke MySQL ada dua fungsi, yaitu mysql_connect() dan mysql_pconnect(). Namun yang umum digunakan adalah mysql_connect(). Untuk fungsi ini umumnya membutuhkan tiga (3) parameter atau argumen, yaitu alamat server, username dan password. Alamat server adalah nama host atau alamat ip di mana MySQL server diinstal,
sementara username dan 23
password adalah nama user dan passwordnya yang berada pada server MySQL. Misalkan saja MySQL server diinstal pada localhost atau ip 127.0.0.1, dengan username adalah user dan password sama dengan password maka perintah untuk melakukan koneksi dari PHP ke MySQL adalah sebagai berikut
jika skrip di atas berhasil, maka hanya ditampilkan halaman putih pada browser, namun jika gagal akan muncul pesan error yaitu Koneksi ke MySQL gagal seperti pada gambar di bawah ini
Argumen pada koneksi ini umumnya akan diletakkkan pada file yang berbeda, kemudian dengan menggunakan perintah include() akan dipanggil pada halaman yang membutuhkan parameter-parameter ini. Dengan asumsi bahwa parameter ini akan disimpan pada file db_conf.ini.php yang berada pada root folder dari web server maka isi dari file ini adalah sebagai berikut
= “user”;
$password
= “password”
$db
= “informatika”;
?>
untuk menggunakan seluruh parameter ini pada file konek.php dengan perintah include(), maka file konek.php di modifikasi menjadi seperti berikut
24
$user,
$password)
or
die(“Koneksi ke MySQL gagal”); ?>
tampilannya akan sama seperti pada kode sebelumnya baik jika berhasil maupun jika gagal. Untuk alasan keamanan maka file db_conf.ini.php, permissionnya diset menjadi -r-------- dengan perintah pada mesin Linux adalah sebagai berikut #chmod 400 db_conf.ini.php
berikut adalah contoh tampilan ketika perintah ini dilakukan
Setelah koneksi dengan MySQL tersambung, langkah selanjutnya adalah memilih database yang akan digunakan dalam aplikasi ini. Pada contoh sebelumnya database yang telah dibuat adalah informatika, maka pada praktikum kali ini akan menggunakan database yang sama dengan contoh sebelumnya. Pemilihan database dengan PHP dapat menggunakan fungsi mysql_select_db(nama_database). Sehingga di sini kembali file konek.php dimodifikasi sehingga isinya menjadi seperti berikut
$user,
$password)
or
die(“Koneksi ke MySQL gagal”); mysql_select_db($db)
or
die("Database
tidak
ditemukan"); ?>
jika database yang dimasukkan sebagai parameter dari fungsi ini tidak ditemukan atau tidak dapat diakses maka akan muncul error seperti berikut
25
B. ekstensi mysqli ekstensi ini sangat dianjurkan karena alasan keamanan jika MySQL server yang digunakan adalah versi 4.1 ke atas. Perbedaan antara ekstensi mysql dan mysqli yaitu pada ekstensi mysqli sudah berbentuk objek oriented. Hal yang sebenarnya membuat keamanan pada ekstensi ini lebih baik adalah adanya dukungan terhadap prepared statement yang belum didukung pada ekstensi mysql. Proses koneksi ke MySQL menggunakan ekstensi ini juga membutuhkan beberapa argumen yaitu alamat server, username, password dan nama database. Perbedaannya dengan ekstensi sebelumnya, nama database juga merupakan argumen dari proses koneksi ke database bukan merupakan fungsi terpisah. Karena sudah bersifat objek oriented maka sebelum melakukan koneksi ke MySQL yang perlu dilakukan adalah membuat objeknya terlebih dahulu baru kemudian melakukan koneksi. Perintah untuk membuat object dapat dilakukan dengan salah satu dari perintah berikut ini $mysqli = new mysqli($server, $user, $password, $db); $mysqli = new mysqli(); $mysqli = new mysqli("localhost", "siteuser", "secret");
Salah satu dari ketiga pilihan di atas dapat digunakan. Setiap pembuatan object dengan cara yang berbeda maka ada beberapa perbedaan pada koneksi. Jika yang digunakan adalah contoh yang pertama maka koneksi secara otomatis terjadi dengan database dan langsung memilih database. Untuk pilihan yang kedua, koneksi tidak akan terjadi sampai kita memanggil method connect dengan tiga parameter utama, yaitu alamat server, username dan password. Sementara untuk skrip yang terakhir dibutuhkan fungsi tambahan untuk memilih database. Contoh skrip di atas akan dibahas satu persatu, untuk skrip dengan empat (4) buah argumen di atas, maka contoh lengkap dari proses koneksi adalah sebagai berikut.
26
include db_conf.ini.php; $koneksi = new mysqli($server, $user, $password, $db); ?>
isi dari file db_conf.ini.php adalah sebagai berikut $server = "localhost"; $user = "user"; $password = "password"; $db = "informatika1"; ?>
karena database yang sudah dibuat bernama informatika, maka seharusnya halaman ini akan menghasilkan error karena pada file db_conf.ini.php $db bernilai informatika1. Namun, prosedur menampilkan error pada mysqli sedikit berbeda dengan API sebelumnya. Maka fungsi untuk menampilkannya adalah sebagai berikut if ($koneksi>connect_error){ echo $koneksi->connect_error; }
Maka file php lengkapnya menjadi seperti berikut ini include "db_conf.ini.php"; $koneksi
=
new
mysqli($server,
$user,
$password,
$db); if ($koneksi>connect_error){ echo $koneksi->connect_error; } ?>
Tampilan dari skrip ini kalau dijalankan akan tampil seperti gambar berikut
27
Untuk contoh yang kedua, maka perlakuan untuk melakukan koneksi ke database menjadi sedikit berbeda, yaitu file lengkapnya menjadi seperti berikut ini include "db_conf.ini.php"; $koneksi = new mysqli(); $koneksi->connect($server, $user, $password, $db); if ($koneksi>connect_error){ echo $koneksi->connect_error; } ?>
Jika isi dari file db_conf.ini.php adalah sebagai berikut $server = "localhost"; $user = "user2"; $password = "password"; $db = "informatika"; ?>
Maka tampilannya menjadi seperti terlihat pada gambar di bawah ini
28
hal ini dikarenakan user pada file db_conf.ini.php tidak memiliki akses ke dalam database MySQL server. C. ekstensi PDO PDO adalah singkatan dari PHP Database Object. Pada dasarnya konsep yang digunakan oleh PDO adalah sama seperti konsep mysqli. Hanya saja PDO dapat digunakan untuk semua database, sementara mysqli adalah khusus untuk melakukan koneksi ke MySQL server. Berikut adalah daftar beberapa database yang didukung oleh PDO 1. Firebird 2. FreeTDS 3. IBM DB2 4. Interbase 6 5. Microsoft SQL Server: 6. MySQL 7. ODBC 8. Oracle 9. PostgreSQL 10. SQLite 11. Sybase Dukungan Objek Oriented dan Prepared Statement pada PDO adalah sama seperti pada mysqli. Berikut adalah contoh menggunakan PDO untuk melakukan koneksi ke MySQL.
dan berikut adalah tampilan jika koneksi berhasil
29
Pembahasan pada PDO dicukupkan sampai di sini, karena praktikum-praktikum seterusnya hanya akan menggunakan API mysql dan mysqli. 2. Melakukan query dan menampilkan data Setelah berhasil melakukan koneksi maka langkah berikutnya adalah melakukan query ke database. Untuk melakukan query ini juga akan dibahas menggunakan kedua API yang tersedia yaitu mysql dan mysqli. Ada beberapa tipe query yang bisa dilakukan seperti yang telah dibahas pada bab sebelumnya. Namun pada praktikum kali ini yang akan dibahas hanya query untuk melakukan pencarian data dan untuk menampilkan data. Keyword untuk pecarian data pada praktikum kali ini akan dibagi dua, yaitu pencarian data berdasarkan nama mahasiswa, di mana nama ini bisa mencari seluruh bagian dari nama mahasiswa tidak hanya nama lengkap seperti yang tersimpan pada database. Yang kedua adalah pencarian berdasarkan nim mahasiswa, kalau keyword yang digunakan adalah nim maka seluruh nim harus dimasukkan. Untuk menampilkan seluruh data atau data yang berhubungan dengan hasil pencarian maka perintah SQL yang digunakan sedikit berbeda. Dan perintah SQL untuk melakukan pencarian data berdasarkan nim dan berdasarkan nama juga akan sedikit berberda. Untuk dapat membuat aplikasi pencarian ini terlebih dahulu kita akan membuat SQL untuk pencarian ini. Perintah untuk pencarian data mahasiswa berdasarkan nama dapat menggunakan perintah sebagai berikut : SELECT * FROM mahasiswa WHERE nim=””;
dan untuk melakukan pencarian mahasiswa berdasarkan nama adalah sebagai berikut : 30
SELECT * FROM mahasiswa WHERE nama like “%%”;
untuk menampilkan seluruh mahasiswa maka perintahnya adalah SELECT * FROM mahasiswa;
A. ekstensi mysql Maka untuk membuat sebuah halaman yang berfungsi untuk menampilkan seluruh data yang ada pada tabel mahasiswa dapat digunakan perintah seperti berikut pada sebuah halaman PHP. Dengan beranggapan sebuah halaman PHP dengan nama file adalah tampil-mahasiswa.php dan data yang terdapat pada tabel mahasiswa adalah seperti yang ditunjukkan pada tabel berikut ini Nim
Nama
Tanggal Lahir
Jenis Kelamin
1234567890123
sayed
1989-12-10
L
1234567890124
salmah
1987-7-13
P
1234567890125
mahesa
1988-11-1
L
1234567890126
sania
1991-6-7
P
Tampil-mahasiswa.php
$user,
$password)
or
die(“Koneksi ke MySQL gagal”); mysql_select_db($db)
maka tampilan dari kode di atas setelah dijalankan adalah seperti yang terlihat pada gambar berikut ini B. ekstensi mysqli Untuk menampilkan data yang sama dengan menggunakan esktensi mysqli dapat menggunakan kode berikut ini. Tampil-mahasiswa2.php connect_error){ echo $koneksi->connect_error; } $rows = $koneksi->query( “SELECT * FROM mahasiswa”); ?>
Hasil eksekusi skrip di atas adalah seperti yang ditunjukkan oleh gambar berikut
34
3. Menutup Koneksi Database Untuk menutup koneksi ke MySQL cukup dengan perintah berikut A. ekstensi mysql mysql_close() B. ekstensi mysqli
nama_object->close() 3.3 Langkah – Langkah Praktikum (Pertemuan III) 1. Buatlah halaman web seperti berikut a. Lihat Data Pelanggan
b. Lihat Data Pegawai
35
c. Lihat Data DVD
d. Lihat Data Penyewaan
36
MODUL IV PENCARIAN DATA PADA MYSQL MENGGUNAKAN PHP 4.1 Tujuan Tujuan dari praktikum ini agar mahasiswa mampu menampilkan hasil pencarian data dari MySQL database dan menampilkannya ke halamana web.
4.2 Pendahuluan Pencarian data pada MySQL melalui halaman PHP memiliki langkah-langkah yang hampir sama dengan langkah-langkah pada praktikum sebelumnya, yaitu 1. Melakukan koneksi ke MySQL 2. Melakukan query ke database (me-retrieve, menambah, menghapus atau pun mengedit data) 3. Menampilkan data ke halaman web 4. menutup koneksi 1. Melakukan koneksi ke MySQL Pembahasan mengenai proses koneksi menggunakan ketiga API yang disediakan oleh PHP sudah dibahas pada bab sebelumnya. Sehingga pada bab ini tidak akan di bahas lagi. Yang perlu diingat adalah baik pada bab ini maupun pada bab-bab berikutnya file konfigurasi yang digunakan adalah sama. Seperti yang terlihat berikut ini db_conf.ini.php
= “user”;
$password
= “password”
$db
= “informatika”;
?>
37
2. Melakukan pencarian Data A. ekstensi mysql Pencarian data pada MySQL menggunakan PHP sebenarnya adalah penggunaan fitur untuk memfilter dari proses untuk menampilkan data seperti yang dibahas pada bab sebelumnya dengan menggunakan perintah SELECT. Bab sebelumnya telah menampilkan beberapa contoh untuk menampilkan data menggunakan SQL yang telah difilter menggunakan klausa WHERE, seperti pada contoh berikut SELECT * FROM mahasiswa WHERE nim=””; SELECT * FROM mahasiswa WHERE nama like “%%”;
kedua perintah SQL di atas digunakan untuk menampilkan data yang sesuai dengan filter yang telah didefinisikan setelah klausa WHERE. Untuk contoh yang pertama, kemungkinan data yang ditampilkan hanya satu jika nim tersebut tersedia karena nim adalah PRIMARY KEY sehingga sebuah nim hanya boleh memiliki satu buah record. Sementara contoh kedua akan menampilkan hasil yang sangat bervariasi dan sangat tergantung pada jumlah record yang tersedia dan keyword yang digunakan. Untuk membuat sebuah pencarian data dengan PHP terlebih dahulu kita harus membuat sebuah halaman yang dapat digunakan untuk memasukkan keyword. Halaman ini dapat hanya berupa sebuah halaman HTML biasa tanpa skrip PHP seperti yang dapat dilihat pada contoh berikut ini cari2.html Masukkan Kata Kunci
yang dapat kita pelajari dari halaman ini adalah bahwa data pada halaman ini ada dua, hal ini dapat terlihat pada jumlah atribut name pada elemen input dengan value yang berbeda. Pada contoh yang sama ternyata ada dua value dari atribut name pada tiga elemen input, yaitu keyword dan klasifikasi. Kedua data ini lah yang akan dikirim ke sebuah halaman PHP untuk diproses. Halaman PHP yang akan memproses halaman ini adalah cari.php di mana dapat kita lihat dari value atribut action pada elemen Form. Nilai atau value dari atribut post akan dibahas pada bab ini di bagian lain. Berikut adalah tampilan dari cari.html
Langkah selanjutnya adalah membuat halaman PHP yang akan digunakan untuk menerima data yang dikirim dari halaman cari2.html. Nama file PHP yang digunakan harus sama dengan yang tertulis sebagai nilai dari atribut action. Oleh karena itu nama file berikut adalah cari.php. File ini harus bisa terlebih dahulu memastikan bahwa user sudah mengisi semua data yang diperlukan. cari.php $keyword = $_POST["keyword"]; $klasifikasi = $_POST["klasifikasi"];
39
if(!isset($keyword) || !isset($klasifikasi)){ header( 'Location: cari2.html' ) ; exit; }else{ $sql = "SELECT * FROM mahasiswa WHERE $klasifikasi LIKE '%$keyword%'"; include "db_conf.ini.php"; mysql_connect($server,
$user,
$password)
or
die("Koneksi ke MySQL gagal"); mysql_select_db($db)
$count++; } }else{ echo "tidak ada $klasifikasi yang bernilai $keyword"; } ?>
Jika data ditemukan maka tampilannya adalah sebagai berikut
sementara jika data tidak ditemukan maka tampilannya adalah sebagai berikut
41
B. ekstensi mysqli Pada ekstensi ini, file configurasi yang digunakan juga file yang sama, yaitu db_cong.ini.php seperti yang sudah disebutkan di atas, begitu juga dengan file cari.html yang digunakan adalah file yang sama seperti sebelumnya. Pengubahan atau modifikasi terjadi pada file cari.php sehingga menjadi seperti berikut ini $keyword = $_POST["keyword"]; $klasifikasi = $_POST["klasifikasi"]; if(!isset($keyword) || !isset($klasifikasi)){ header( 'Location: cari2.html' ) ; exit; }else{ $sql = "SELECT * FROM mahasiswa WHERE $klasifikasi LIKE '%$keyword%'"; include "db_conf.ini.php"; $koneksi
Jika tidak ada data yang ditemukan maka tampilannya adalah sebagai berikut
43
Namun jika data ditemukan maka tampilannya menjadi seperti terlihat pada gambar berikut ini
C. Validasi Input menggunakan HTML 5 Pada kedua contoh di atas terlihat bahwa PHP yang digunakan untuk 'memaksa' pengguna memasukkan semua data yang dibutuhkan. Tentu saja ada metode lain yang bisa digunakan untuk memaksa pengguna memasukkan semua data yang dibutuhkan. Kali ini akan dicoba membuat sebuah halaman cari.html yang digunakan untuk mamaksa user memasukkan data yang dibutuhkan. Modifikasi file cari.html menjadi seperti di bawah ini. Masukkan Kata Kunci
44
dari contoh di atas dapat terlihat bahwa hanya dengan menambah atribut required pada setiap elemen input maka semua elemen input harus dimasukkan sebelum pengguna diizinkan mengirim data. Pada gambar berikut ini adalah tampilan jika pengguna lupa atau tidak memasukkan keyword dan menekan tombol search.
Sementara jika klasifikasi yang tidak diisi maka tampilannya adalah sebagai berikut
Dengan mengubah file cari.html menjadi seperti yang ditunjukan di atas kita dianjurkan untuk sedikit mengubah atau melakukan modifikasi pada file cari.php seperti di bawah ini cari.php menggunakan API mysql $keyword = $_POST["keyword"]; $klasifikasi = $_POST["klasifikasi"]; $sql = "SELECT * FROM mahasiswa WHERE $klasifikasi LIKE '%$keyword%'"; include "db_conf.ini.php"; mysql_connect($server,
$user,
$password)
or
45
die("Koneksi ke MySQL gagal"); mysql_select_db($db)
$count++; } }else{ echo "tidak ada $klasifikasi yang bernilai $keyword"; } ?> dan cari.php dengan menggunakan ekstensi mysqli adalah sebagai berikut $keyword = $_POST["keyword"]; $klasifikasi = $_POST["klasifikasi"];
$sql = "SELECT * FROM mahasiswa WHERE $klasifikasi LIKE '%$keyword%'"; include "db_conf.ini.php"; $koneksi = new mysqli($server, $user, $password, $db); if ($koneksi>connect_error){ echo $koneksi->connect_error; } $rows = $koneksi->query($sql); $num = $rows->num_rows;
} }else{ echo "tidak ada $klasifikasi yang bernilai $keyword"; } ?>
3. Menutup Koneksi A. ekstensi mysql mysql_close() B. ekstensi mysqli
nama_object->close()
48
4.3 Langkah – Langkah Praktikum (Pertemuan IV) 1. Modifikasi file cari.html yang telah dibuat pada praktikum sebelumnya sehingga mampu mencari data Pelanggan dan Pegawai berdasarkan nama, tanggal lahir, dan id selain itu halaman mencari DVD mampu mencari berdasarkan judul dan kode dvd 2. Buatlah Sebuah halaman web yang mampu mencari data penyewaan a. berdasarkan tanggal b. berdasarkan nama c. berdasarkan yang belum mengembalikan 3. Form yang ditampilkan harus memiliki link edit seperti pada pendahuluan praktikum 4 ini
49
MODUL V ENTRY DATA KE MYSQL MENGGUNAKAN PHP 5.1 Tujuan Tujuan dari praktikum ini agar mahasiswa mampu membuat form yang dapat digunakan untuk melakukan entri data ke dalam database
5.2 Pendahuluan A. Entri Data PHP Menambah data ke MySQL melalui halaman PHP memiliki langkah-langkah yang sama dengan langkah-langkah pada praktikum sebelumnya, yaitu 1. Melakukan koneksi ke MySQL 2. Melakukan query ke database (me-retrieve, menambah, menghapus atau pun mengedit data) 3. menutup koneksi Karena pembahasan langkah-langkah ini sudah dua kali dibahas pada pertemuanpertemuan sebelumnya, maka kali ini langkah-langkah ini tidak akan dibahas lagi. Untuk menginput data maka terlebih dahulu akan dibuat sebuah dua buah tabel lainnya yang akan digunakan bersama-sama dengan tabel mahasiswa. tabel mahasiswa Kolom
Tipe Data
Keterangan
nim
Varchar(13)
PRIMARY KEY
nama
Varchar(30)
tgllahir
date
jk
char(1)
Kolom
Tipe Data
Keterangan
kode_mk
Varchar(7)
PRIMARY KEY
nama
Varchar(30)
Tabel mata_kuliah
50
tabel mhs_mk Kolom
Tipe Data
Keterangan
nim
varchar(13)
PRIMARY KEY, FOREIGN KEY
kode_mk
varchar(7)
PRIMARY KEY, FOREIGN KEY
Dan berikut ini adalah gambar dari Enhanced Entity Diagram dari tabel di atas.
Perintah SQLnya adalah sebagai berikut CREATE DATABASE `informatika` ; USE `informatika` ; -- ------------------------------------------------------ Table `informatika`.`mahasiswa` -- ----------------------------------------------------DROP TABLE IF EXISTS `informatika`.`mahasiswa` ; CREATE
TABLE IF NOT EXISTS `informatika`.`mahasiswa` (
`nim` VARCHAR(13) NOT NULL , `nama` VARCHAR(30) NOT NULL , `tgllahir` DATE NOT NULL , `jk` CHAR(1) NOT NULL , PRIMARY KEY (`nim`) )
51
ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; -- ------------------------------------------------------ Table `informatika`.`mata_kuliah` -- ----------------------------------------------------DROP TABLE IF EXISTS `informatika`.`mata_kuliah` ; CREATE
`nim` VARCHAR(13) NOT NULL , `kode_mk` VARCHAR(7) NOT NULL , PRIMARY KEY (`nim`, `kode_mk`) , INDEX `fk_nim` (`nim` ASC) , INDEX `fk_kode_mk` (`kode_mk` ASC) , CONSTRAINT `fk_nim` FOREIGN KEY (`nim` ) REFERENCES `informatika`.`mahasiswa` (`nim` ) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fk_kode_mk` FOREIGN KEY (`kode_mk` ) REFERENCES `informatika`.`mata_kuliah` (`kode_mk` ) ON DELETE CASCADE
52
ON UPDATE CASCADE) ENGINE = InnoDB;
Proses yang akan dibahas pada praktikum ini adalah membuat form untuk input data ke tabel-tabel yang telah dibuat di atas, maka untuk membuat form cukup dengan menggunakan HTML. Seperti yang dapat dilihat pada contoh berikut, akan ada tiga buah form untuk input data. Yaitu add-mahasiswa.html, add-mk.html, add-mhsmk.html add-mahasiswa.html Memasukkan Data Mahasiswa
values ('$nim','$nama','$tgllahir', '$jk')"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); echo "Data Berhasil Disimpan"; mysql_close(); ?>
jika data berhasil dimasukkan maka akan tampilannya adalah sebagai berikut
('$kode_mk','$nama')"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); echo "Data Berhasil Disimpan"; mysql_close();
?> dan tampilannya jika proses memasukkan data mata kuliah berhasil maka seperti yang 56
ditunjukkan seperti gambar berikut ini.
untuk input pada tabel terakhir prosesnya sedikit berbeda, karena data yang dimasukkan ke dalam tabel ini haruslah nim dan mata kuliah yang sudah ada pada kedua tabel sebelumnya. Sehingga untuk mencegah pengguna memasukkan data sembarang dan akan menampilkan error maka sebaiknya data yang berada pada kedua tabel tersebut dimasukkan ke dalam drop down list. Sehingga pembuatan form sudah harus menggunakan file PHP karena akan digunakan koneksi ke MySQL untuk mendapatakan data dari kedua tabel tersebut. File add-mhs-mk.html FORM REGISTRASI
$sql = "SELECT nim FROM mahasiswa"; $sql2 = "SELECT kode_mk FROM mata_kuliah"; include "db_conf.ini.php"; mysql_connect($server,
$user,
$password)
or
die("Koneksi ke MySQL gagal"); mysql_select_db($db)
or
die("Database
tidak
ditemukan"); ?>
Dan tampilannya adalah sebagai berikut
Selanjutnya dibuat file registrasi.php seperti di bawah ini $kode_mk = $_POST["kode_mk"]; $nim = $_POST["nim"]; $sql = "INSERT INTO mhs_mk values ('$nim','$kode_mk')"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); echo "Data Berhasil Disimpan"; mysql_close(); ?>
dan tampilannya adalah sebagai berikut kalau data berhasil dimasukkan
59
5.3 Langkah – Langkah Praktikum (Pertemuan V) 1. Form Input Data pada Bab I harus dibuat sehingga mampu memasukkan semua data ke database MySQL sesuai dengan tabel pada praktikum 2. 2. ketika data pegawai yang di-input, maka tabel operator langsung di-isi user Id nya seperti user id pada pegawai baru tersebut, username adalah nama pegawai jika hanya terdiri dari satu nama. Jika terdiri dari dua nama maka hanya nama pertama yang diambil, password adalah username yang dienkrip dengan menggunakan md5 3. untuk data penyewaan maka data juga harus bisa masuk ke tabel detail sewa. Selain itu tabel pengembalian langsung diisi dengan id peminjaman, dan tanggal kembali, dimana tanggal kembali adalah 3 hari sejak tanggal peminjaman. 4. Untuk pengembalian harus bisa menghitung jumlah denda jika peminjaman melebihi dari 3 hari, ini dihitung dari tanggal terima kurang tanggal kembali. Denda perhari adalah Rp. 2000
60
MODUL VI EDIT DATA PADA MYSQL MENGGUNAKAN PHP 6.1 Tujuan Tujuan dari praktikum ini agar mahasiswa mampu mengubah data pada MySQL melalui front-end PHP
6.2 Pendahuluan A. Melalui Tabel Tampilan Data Praktikum kali ini akan kembali menggunakan contoh-contoh pada praktikum tiga, yaitu file tampil-mahasiswa2.php dan akan disimpan dengan nama tampilmahasiswa3.php. File ini akan dimodifikasi sehingga memiliki tampilan seperti berikut ini. tampil-mahasiswa3.php connect_error){ echo $koneksi->connect_error; } $rows = $koneksi->query("SELECT * FROM mahasiswa"); ?>
arahkan cursor ke tulisan EDIT maka halaman berikutnya yang diakses adalah edit-mahasiswa.php. Sekarang untuk halaman edit, maka ada beberapa hal yang perlu dilakukan. Pertama halaman edit-mahasiswa.php akan melakukan pencarian data terhadap nim tersebut. Jika data ditemukan maka data tersebut akan disimpan dalam form, yang mirip dengan form input data mahasiswa, hanya saja disini input elemen semuanya sudah ada nilai dan tombol yang ada menjadi tombol edit. Sekarang pembuatan file edit-mahasiswa.php. File ini akan menerima sebuah parameter melalui link url dan ini dapat terlihat pada address bar setiap link edit diklik. Seperti yang ditunjukkan pada gambar berikut
maka dari gambar diatas dapat terlihat bahwa sebuah parameter dengan nama variabel nim dikirim. Karena terlihat pada address bar, maka data yang dikirim menggunakan method GET. Sehingga pada halaman edit-mahasiswa.php harus menggunakan global array yang dapat digunakan untuk menangkap data dari get yaitu $_GET(parameter). Contoh lengkapnya dari file edit-mahasiswa.php adalah sebagai berikut. $nim = $_GET["nim"]; $sql = "SELECT * FROM mahasiswa WHERE nim='$nim'"; include "db_conf.ini.php"; $koneksi = new mysqli($server, $user, $password, $db); if ($koneksi>connect_error){ echo $koneksi->connect_error; } $rows = $koneksi->query($sql); $num = $rows->num_rows;
Pada elemen form nilai dari atribut action adalah update-mahasiswa.php, maka perlu dibuat sebuah file lagi yang bernama update-mahasiswa.php yang akan berguna untuk mengubah data pada mysql sesuai dengan input user. File update-mahasiswa.php
65
$nim = $_POST["nim"]; $nama = $_POST["nama"]; $date =$_POST["tgllahir"]; $jk = $_POST["jk"]; $nim_lama = $_POST["nim_lama"]; $tgllahir = mysql_real_escape_string($date); $tgllahir = strtotime($tgllahir); $tgllahir = date('Y-m-d',$tgllahir); $sql = "UPDATE mahasiswa SET nim='$nim', nama='$nama', tgllahir='$tgllahir', jk='$jk' WHERE nim=$nim_lama"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); echo "Data Berhasil Disimpan"; mysql_close(); ?>
jika data yang telah diubah berhasil maka tampilan adalah sebagai berikut
untuk membuktikan proses ini berhasil, sekarang klik edit pada mahasiswa yang bernama salmah, ketika muncul halaman edit-mahasiswa.php, ubahlah nama salmah menjadi salmah hasan. Lalu klik Tombol Edit Mahasiswa. Jika pesan yang muncul seperti gambar di atas maka update data berhasil. Ini dapat dilihat pada halaman tampil-mahasiswa3.php. Seperti pada gambar di bawah ini 66
B. Melalui Pencarian Data Metode ini digunakan untuk menampilkan data yang sebelumnya merupakan hasil pencarian seperti pada Bab Empat. Ubahlah file cari.php pada praktikum empat sehingga menjadi seperti di bawah ini dan simpan dengan nama cari5.php $keyword = $_POST["keyword"]; $klasifikasi = $_POST["klasifikasi"]; if(!isset($keyword) || !isset($klasifikasi)){ header( 'Location: cari2.html' ) ; exit; }else{ $sql = "SELECT * FROM mahasiswa WHERE $klasifikasi LIKE '%$keyword%'"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); $num=mysql_numrows($row); mysql_close(); } ?>
$count++; } }else{ echo "tidak ada $klasifikasi yang bernilai $keyword"; } ?>
68
untuk kasus pencarian, karena halaman ini sangat tergantung pada halaman cari2.html, maka cari2.html juga perlu modifikasi sehingga menjadi seperti dibawah ini. Masukkan Kata Kunci
proses yang terjadi adalah, pencarian data dimulai dengan memasukkan kata kundinya pada halaman cari2.html, hasil pencarian ini akan diperlihat melalui halaman cari5.php. Proses selanjutnya adalah sama seperti pada bagian A dari sub bab ini, yaitu setelah link edit di klik maka akan muncul halaman update-mahasiswa.php dan kemudian jika tombol edit ditekan maka data akan diubah. 6.3 Langkah – Langkah Praktikum (Pertemuan VI) 1. Modifikasi Kode PHP pada praktikum ketiga yaitu bagian List Pelanggan, List Karywan dan List DVD sehingga link editnya dapat bekerja seperti yang telah dijelaskan di atas.
69
2. Lakukan hal yang sama pada hasil praktikum 4, ubah semua hasil pencarian data tersebut sehingga dapat diedit
70
MODUL VII MENGHAPUS DATA PADA MYSQL MENGGUNAKAN PHP 7.1 Tujuan Tujuan dari praktikum ini agar mahasiswa mampu menghapus data pada MySQL dengan front-end PHP
7.2 Pendahuluan perbedaan halaman PHP untuk menghapus data dan menubah data terdapat MULAI
CARI DATA
TAMPILKAN
HAPUS DATA
KONFIRMASI
NO
YES DATA TERHAPUS
SELESAI
71
sedikit perbedaan dari segi alur program. Berikut diperlihat alur program untuk melakukan penghapusan data melalui halaman PHP. Dari alur program tersebut terlihat ada sedikit perbedaan antara mengubah data dan menghapus data. Pada proses mengubah data, setelah data yang dipilih, maka selanjutnya ditampilkan dalam form yang berguna untuk mengganti nilai awal dari tiap data. Untuk mendapatkan nilai awal ini, aplikasi PHP telebih dahulu melakukan query ke database untuk mengambil data yang diperlukan dan dimasukkan ke dalam form. Baru ketika pada halaman tersebut tombol edit data diklik baru kembali melakukan query ke MySQL untuk mengupdate data. Sementara pada proses pegnhapusan data, query ke MySQL hanya dilakukan sekali, itu pun jika pengguna memilih untuk menghapus data pada dialog konfirmasi. Dialog konfirmasi ini dibuat dengan menggunakan javascript. Untuk lebih memahami proses ini, dapat dilihat pada contoh berikut ini. Halaman tampil-mahasiswa3.php akan diubah bagian link untuk menghapus seperti di bawah ini dan disimpan dengan nama file tampil-mahasiswa4.php connect_error){ echo $koneksi->connect_error; } $rows = $koneksi->query("SELECT * FROM mahasiswa"); ?>
Selanjut adalah proses untuk menghapus data menggunakan halaman php dengan nama delete-mahasiswa.php seperti di bawah ini. Pada halaman ini, pertama sekali akan diambil data dari halaman tampil-mahasiswa4.php yang berupa nim. Kemudian nim ini digunakan untuk melakukan query penghapusan data pada database MySQL. Jika berhasil pengguna akan dikembalikan ke halaman tampil-mahasiswa4.php jika gagal, akan muncul pesan kegagalan. 73
File delete-mahasiswa.php $nim = $_GET["nim"]; $sql = "DELETE FROM mahasiswa WHERE nim='$nim'"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); if($row){ //arahkan kembali ke halaman tampil-mahasiswa4.php header("Location:http://localhost/tampilmahasiswa4.php"); }else{ //tampilkan pesan error echo "Data tidak dapat dihapus
[".$sql."]";
} mysql_close(); ?>
berikut adalah tampilan dari halaman tampil-mahasiswa4.php
ketika link delete untuk mahasiswa dengan nama sania di klik maka tampilannya adalah sebagai berikut 74
jika tombol cancel yang dipilih, maka akan kembali ke halaman tampilmahasiswa4.php, namun jika pada konfirmasi yang dipilih adalah tombol OK maka tampilan berikutnya adalah sebagai berikut
terlihat bahwa data mahasiswa dengan nama sania telah dihapus.
75
7.3 Langkah – Langkah Praktikum (Pertemuan VII) 1. Modifikasi Kode PHP pada praktikum keenam, sehingga semua fungsi delete dapat bekerja seperti yang telah dicontohkan pada bab ini.
76
MODUL VIII FUNGSI DAN STRING 8.1 Tujuan Tujuan dari praktikum ini agar mahasiswa mampu 1. Menggunakan beberapa fungsi umum dari sebuah String 2. Membuat fungsi sendiri untuk melakukan beberapa proses
8.2 Pendahuluan A. String String adalah kumpulan dari karakter atau huruf, yang dimaksud dengan huruf pada pengertian ini tidak terbatas hanya huruf saja, namun juga angka tapi tidak melakukan proses aritmatika. PHP telah menyediakan beberapa fungsi yang berhubungna dengan string yang dapat digunakan untuk: 1. mencari teks di dalama sebuah String 2. Mengubah atau mengganti teks dalam sebuah string dengan teks lainnya. 3. Mengubah format atau bentuk sebuah string sehingga lebih mudah dibaca 4. Fungsi-fungsi lainnya yang berhubungan dengan String Untuk membuat sebuah variabel yang menggunakan String maka cukup dengan memberikan tanda petik dua (double quote) pada nilai dari variabel tersebut seperti pada contoh berikut:
pada contoh di atas, terlihat sebuah variabel dengan nama nama_lengkap dan berisi sebuah string dengan nilai sayed muchallil. Selain menggunakan tanda petik ganda, sebuah string dapat juga menggunakan tanda petik tunggal. Seperti pada contoh berikut ini untuk nama variabel dan nilai yang sama seperti pada contoh sebelumnya 77
Ada beberapa kelebihan dengan menggunakan tanda petik ganda, antara lain : Jika di dalam tanda petik ganda adalah nama variabel, maka yang ditampilkan adalah isi dari variabel tersebut Bisa ditambahkan escape charakter Contoh berikut ini akan lebih memperjelas pernyataan di atas. ”; echo 'Apa Kabar, $nama_lengkap '; echo “<pre>Apa Kabar\n$nama_lengkap”; echo '<pre>Apa Kabar\n$nama_lengkap'; ?>
berikut adalah tampilan jika contoh tersebut dijalankan
Dari tampilan di atas terlihat jelas antara perbedaan pernggunaan double quote dan single quote. Tabel berikut ini akan memperlihatkan beberapa escape character yang didukung oleh php Escape Charakter
Keterangan
\n
Baris Baru
\t
Tab
\\
Backslash
\”
Tanda Petik Ganda
78
Sebuah string dapat dihitung panjangnya, yaitu berapa jumlah huruf yang membentuk string tersebut dengan menggunakan fungsi strlen(varibel). Fungsi ini akan mengembalikan integer atau sebuah angka, dimana angka yang dikembalikan ini adalah panjang dari string tersebut. Misalkan sebuah halaman PHP yang berfungsi untuk mendata lulusan dari Universitas Syiah Kuala meminta para alumni untuk memasukkan tahun kelulusan atau tahun wisuda, maka perlu dipastikan bahwa alumni memasukkan empat digit angka. Untuk memastikan hal ini dapat digunakan dengan fungsi strlen yang telah disebutkan sebelumnya. Halaman html berikut berfungsi untuk mendapatkan data-data alumni, diberi nama dengan data-alumni.php dan isinya adalah sebagai berikut Pendataan
Alumni
Error : $error "; } ?>
align="center">
Tampilannya adalah sebagai berikut
Setelah data diisi maka selanjutnya data tersebut akan diproses oleh prosesalumni.php. Pada halaman ini lah variabel lulus akan diperiksa berapa panjang string, jika panjang string lulus tidak sama dengan empat (4) maka alumni akan dikembalikan lagi ke halaman tersebut untuk mengisi kembali data dengan benar. Halaman proses-alumni.php adalah sebagai berikut $nim = $_POST["nim"];
82
$nama = $_POST["nama"]; $date =$_POST["ttl"]; $email = $_POST["email"]; $lulus =$_POST["lulus"]; $gender = $_POST["gender"]; $fakultas =$_POST["fakultas"]; $telp = $_POST["telp"]; if(strlen($lulus)!=4){ header("Location:http://localhost/data-alumni.php? error='Tahun Lulus harus 4 digit'"); exit; } $sql = "INSERT INTO alumni VALUES ('$nim','$nama','$date', '$gender','$email','$lulus','$fakultas','$telp')"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); echo "Data Berhasil Disimpan"; mysql_close(); ?>
maka jika tahun lulus diisi selain 4 digit tampilannya menjadi seperti berikut ini
83
fungsi string berikutnya adalah untuk memisahkkan antara tempat lahir dan tanggal lahir. Untuk memisahkan keduanya dapat digunakan fungsi strpos(). Fungsi ini akan digunakan untuk mencari tanda koma (,) sebagai pemisah antara tempat kelahiran dan tanggal lahir. Kenapa perlu dipisahkan, karena pada database antara tempat lahir dan tanggal lahir akan diisi pada kolom yang berbeda. Untuk contoh penggunaannya dari fungsi ini, dapat dilihat pada kode proses-alumni.php yang telah dimodifikasi sehingga menjadi seperti berikut $nim = $_POST["nim"]; $nama = $_POST["nama"]; $date =$_POST["ttl"]; $email = $_POST["email"]; $lulus =$_POST["lulus"]; $gender = $_POST["gender"]; $fakultas =$_POST["fakultas"]; $telp = $_POST["telp"]; if(strlen($lulus)!=4){ header("Location:http://localhost/data-alumni.php? error='Tahun Lulus harus 4 digit'"); exit; } if(!strpos($date,",")){ header("Location:http://localhost/data-alumni.php? error='Pisahkan antara tempat lahir dan tahun kelahiran dengan tanda koma'"); exit; }else { $koma = strpos($date,","); $tgllahir = substr($date, $koma+1, strlen($date)); $tempat =substr($date, 0, strpos($date,",")); }
84
$sql = "INSERT INTO alumni VALUES ('$nim','$nama','$tempat', '$tgllahir', '$gender','$email','$lulus','$fakultas','$telp')"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); echo "Data Berhasil Disimpan"; mysql_close(); ?>
ada beberapa hal yang perlu dijelaskan kembali, yaitu fungsi strpos akan mengembalikan integer di mana keyword ditemukan dan akan mengembalikan false jika keyword tidak ditemukan. Dikarenakan alasan tersebut maka dapat digunakan pada fungsi if untuk mengetahui apakah keyword ditemukan atau tidak. Fungsi berikutnya adalah substr yang berfungsi untuk memotong string menjadi bagian tertentu. Fungsi ini memerlukan dua argumen, yaitu awal string dan akhir string. Untuk memastikan bahwa pengguna tidak memasukkan spasi ke dalam tanggal maka perlu dilakukan pengecekan berikutnya menggunakan fungsi trim() sebelum dimasukkan ke dalam database. Sehingga kode pada proses-alumni.php mejadi seperti berikut ini $nim = $_POST["nim"]; $nama = $_POST["nama"]; $date =$_POST["ttl"]; $email = $_POST["email"]; $lulus =$_POST["lulus"]; $gender = $_POST["gender"]; $fakultas =$_POST["fakultas"]; $telp = $_POST["telp"];
85
if(strlen($lulus)!=4){ header("Location:http://localhost/data-alumni.php? error='Tahun Lulus harus 4 digit'"); exit; } if(!strpos($date,",")){ header("Location:http://localhost/data-alumni.php? error='Pisahkan antara tempat lahir dan tahun kelahiran dengan tanda koma'"); exit; }else { $koma = strpos($date,","); $tgllahir = substr($date, $koma+1, strlen($date)); $tempat =substr($date, 0, strpos($date,",")); } $tgllahir = trim($tgllahir); $sql = "INSERT INTO alumni VALUES ('$nim','$nama','$tempat', '$tgllahir', '$gender','$email','$lulus','$fakultas','$telp')"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); echo "Data Berhasil Disimpan"; mysql_close(); ?>
selanjutnya adalah mengubah nama menjadi huruf kapital sebelum disimpan ke dalam database dengan menggunakan fungsi strtoupper(variabel). Sehingga kode akhir dari proses-alumni.php menjadi seperti berikut ini.
86
$nim = $_POST["nim"]; $nama = $_POST["nama"]; $date =$_POST["ttl"]; $email = $_POST["email"]; $lulus =$_POST["lulus"]; $gender = $_POST["gender"]; $fakultas =$_POST["fakultas"]; $telp = $_POST["telp"]; if(strlen($lulus)!=4){ header("Location:http://localhost/data-alumni.php? error='Tahun Lulus harus 4 digit'"); exit; } if(!strpos($date,",")){ header("Location:http://localhost/data-alumni.php? error='Pisahkan antara tempat lahir dan tahun kelahiran dengan tanda koma'"); exit; }else { $koma = strpos($date,","); $tgllahir = substr($date, $koma+1, strlen($date)); $tempat =substr($date, 0, strpos($date,",")); } $tgllahir = trim($tgllahir); $nama = strtoupper($nama); $tempat = strtoupper($tempat); $sql = "INSERT INTO alumni VALUES ('$nim','$nama','$tempat', '$tgllahir', '$gender','$email','$lulus','$fakultas','$telp')"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke
87
MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); if($row){ echo "Data Berhasil Disimpan"; }else{ echo "Error ".$sql; } mysql_close(); ?>
B. Fungsi PHP menyediakan lebih dari 1000 fungsi untuk mempermudah programmer. Namun adakalanya kita membutuhkan fungsi tambahan yang belum disediakan oleh PHP. Fungsi adalah sekelompok kode yang berfungsi untuk mengerjakan pekerjaan tertentu saja dan dapat dipanggil dari mana saja pada kode tersebut tanpa harus mengulang pembuatan kode yang ada dalam fungsi. Sebuah fungsi umumnya memerlukan satu atau lebih argumen yang dapat dipergunakan di dalam fungsi tersebut. Pada PHP sebuah fungsi dapat mengembalikan nilai atau tidak. Alasan-alasan untuk menggunakan fungsi adalah: 1. Mencegah penulisan kode yang berulang-ulang 2. Mudah mencari kesalahan pada kode 3. Fungsi dapat digunakan berulang kali Memanggil Fungsi Seperti yang sudah pernah digunakan sebelumnya pada bagian string, memanggil fungsi cukup dengan menyebutkan atau menuliskan nama fungsi tersebut. Misalkan fungsi untuk merubah dari huruf kecil menjadi huruf kapital adalah strtoupper(argument), maka untuk memanggil fungsi tersebut caranya adalah sebagai berikut
jika fungsi tersebut mengembalikan sebuah nilai, maka bisa dibuat sebuah variabel yang digunakan untuk menampung nilai yang dikembalikan dari fungsi tersebut. Seperti pada contoh dibagian String, yaitu fungsi substr(arg1, arg2,arg3) yang memerlukan 3 buah argumen dan akan mengembalikan sebuah string yang merupakan sub string dari string lainnya. $tgllahir = substr($date, $koma+1, strlen($date)); ?>
Fungsi-fungsi yang sebelumnya pernah dicoba adalah fungsi-fungsi yang telah disediakan oleh PHP. Adakalanya perlu dibuat fungsi sendiri oleh programmer sesuai dengan kebutuhannya. Misalkan saja ada kebutuhan fungsi untuk menampilkan menu yang tidak memerlukan argumen apapun. Maka pertama sekali yang perlu dilakukan adalah mendefinisikan fungsi tersebut. function tampilMenu() { echo "Home "; echo "About "; echo "contact "; } tampilMenu(); ?>
dan tampilannya adalah sebagai berikut
89
untuk fungsi yang memerlukan argumen maka definisi dari fungsi tersebut menjadi seperti di bawah ini function tampilSegitiga($n){ $e="* "; $s=" "; for ($i=1;$i<=$n;$i++) { echo "<pre>".str_repeat($s,$n-$i); echo str_repeat($e,$i); echo str_repeat($s,$n-$i); echo "<pre>"; } } tampilSegitiga(14); ?>
fungsi ini berguna untuk membuat sebuah segitiga sama kaki di mana panjang dari sisi segitiga ini ditentukan oleh argumen yang diberikan oleh pengguna kepada fungsi tersebut. Pada contoh berikut ini sebuah elemen input akan dibuat untuk memberi nilai kepada fungsi tersebut, sehingga fungsi tersebut akan menampilkan segitiga berdasarkan masukkan dari pengguna. function tampilSegitiga($n){ $e="* "; $s=" "; for ($i=1;$i<=$n;$i++)
dan berikut adalah tampilannya ketika pengguna memasukkan angka 7.
91
ada kelebihan lainnya pada PHP, karena ada argumen yang bersifat optional dan nilai defaultnya dapat ditentukan ketika sebuah fungsi didefinisikan. Misalkan pada contoh di atas, akan dibuat nilai default dari argumen pada fungsi tampilSegitiga adalah 14, yang artinya jika pengguna tidak memasukkan angka lain sebagai n, maka n akan dianggap sebagai 14. dan contohnya adalah sebagai berikut function tampilSegitiga($n=14){ $e="* "; $s=" "; for ($i=1;$i<=$n;$i++) { echo "<pre>".str_repeat($s,$n-$i); echo str_repeat($e,$i);
8.3 Langkah – Langkah Praktikum (Pertemuan VIII) 1. ubahlah semua kode untuk memasukkan data pada praktikum sebelumnya, untuk nama, semua data yang disimpan adalah berupa huruf kapital 2. Pada halaman login yang dibuat pada praktikum pertama. buatlah sebuah fungsi untuk melakukan pengecekan terhadap username dan password dimasukkan user. Fungsi ini akan mengembalikan nilai true jika benar dan false jika username dan password adalah salah. Jika true tampilkan halaman 93
menu, jika false kembalikan ke halaman login. Halaman menu adalah halaman yang berisi link untuk mengakses isi data pelanggan, isi data pegawai, isi Data DVD, proses peminjaman dan proses pengembalian seperti yang terlihat pada gambar berikut ini.
Halaman menu
94
MODUL IX ARRAY 9.1 Tujuan Tujuan dari praktikum ini agar mahasiswa mampu menggunakan array dalam pemrograman PHP
9.2 Pendahuluan Alasan untuk menggunakan array adalah pada array dapat digunakan untuk menyimpan data dengan panjang yang tidak terbatas dan mudah meng-edit data di dalam array hanya dengan satu buah perintah. Ada dua tipe Array, yaitu 1. Array ber-indeks 2. Asosiatif Array berikut adalah cara untuk mendefinisikan array $mahasiswa = array( “ami”, “uma”, “Toni”, “fatimah” );
ini merupakan contoh dari array yang berindeks, di mana elemen ami memiliki indeks 0, uma indeknya adalah 1 dan seterusnya. Sementara untuk membuat assosiatiave array dapat digunakan cara sebagai berikut $mahasiswa = array{“nama”=>”ami”, “nim” =>”1234567890123”, “ipk” => 3.17};
untuk mengaksesg
sebuah array yang sudah dibuat seperti di atas dapat
digunakan indeks pada array yang ber-indeks dan indeks string untuk assosiative array. $mahasiswa = array( "ami", "uma", "Toni", "fatimah" ); $nilai_mahasiswa = array("nama" "1234567890123", "ipk" => 3.17);
=>
"ami",
"nim"
=>
echo "$mahasiswa[0] "; echo "$mahasiswa[3] ";
95
echo $nilai_mahasiswa['nama']." dengan IPK "; echo $nilai_mahasiswa['ipk']; ?>
untuk merubah nilai dari sebuah array cukup menggunakan tanda sama dengan (=). misalkan pada array mahasiswa pada contoh di atas elemen kedua yang akan diganti menjadi sayed maka caranya adalah sebagai berikut $mahasiswa = array( "ami", "uma", "Toni", "fatimah" ); $nilai_mahasiswa
Selain cara yang disebutkan di atas, untuk membuat sebuah array dapat menggunakan cara-cara di bawah ini. Dengan hanya menggunakan tanda kurung kotak ([]) dan indeks dengan nama variabel adalah mahasiswa2 dan isi dari array ini adalah sama seperti pada array mahasiswa $mahasiswa = array( "ami", "uma", "Toni", "fatimah" ); $mahasiswa2[0] = "ami"; $mahasiswa2[1] = "uma"; $mahasiswa2[2] = "toni"; $mahasiswa2[3] = "fatimah"; echo $mahasiswa2[2]; ?>
Cara berikutnya adalah dengan menggunakan kurung kotak saja tanpa menggunakan indeks dengan nama variabel adalah mahasiswa3 dan isi dari array ini adalah sama seperti pada array mahasiswa
untuk menampikan seluruh isi dari array dapat menggunakan beberapa perintah, salah satunya adalah print_r seperti pada contoh berikut ini $mahasiswa3[] = "ami"; $mahasiswa3[] = "uma"; $mahasiswa3[] = "toni"; $mahasiswa3[] = "fatimah"; print_r($mahasiswa3); ?>
dan tampilannya adalah sebagai berikut
untuk menghitung panjang dari sebuah array dapat menggunakan fungsi count seperti pada contoh berikut ini
cara lain yang umum digunakan untuk menampilkan sebuah array adalah menggunakan perulangan, dengan cara ini nilai dari sebuah array dapat diformat sesuai dengan kemauan sebelum ditampilkan. Seluruh perulangan dapat digunakan pada array, namun pada array ada perulangan khusus yaitu foreach seperti yang akan ditunjukkan pada contoh berikut ini $mahasiswa = array( "ami", "uma", "Toni", "fatimah" ); foreach($mahasiswa as $mhs){ echo $mhs." "; } ?>
98
9.3 Langkah – Langkah Praktikum (Pertemuan IX) 1. dengan menggunakan perintah select, ambil semua data nama pelanggan, data nama pegawai dan data judul DVD. Ke semua data ini disimpan dalam 3 variabel array yang bernama $pelanggan, $pegawai, $dvd. Dengan menggunakan perintah foreach, tampilan hasil dari seluruh array ini, seperti pada Gambar berikut
99
MODUL X SESSION 10.1 Tujuan Praktikum ini bertujuan untuk memperkenalkan mahasiswa dengan session sehingga mahasiswa dapat menggunakan session untuk mengamankan halaman web-nya.
10.2 Pendahuluan Secara default web server tidak menyimpan data mengenai siapa yang mengakses halaman tertentu. Penggunaan session diharapkan untuk dapat mengetahui siapa user yang sudah di-otentifikasi untuk mengakses halamanhalaman tertentu.Setiap session dapat digunakan untuk menyimpan data-data yang diperlukan untuk otentifikasi ulang jika halaman lain yang diakses. Untuk memulai sebuah session, gunakan fungsi session_start() pada awal sebuah file PHP karena fungsi ini harus dieksekusi pertama sekali sebelum fungsi-fungsi header lainnya.
Penggunaannya adalah seperti pada contoh
berikut pada halaman login berikut ini. Halaman login.html
$username."' AND password=md5('".$password."')"; include "db_conf.ini.php"; mysql_connect($server, $user, $password) or die("Koneksi ke MySQL gagal"); mysql_select_db($db) or die("Database tidak ditemukan"); $row = mysql_query($sql); $num=mysql_numrows($row); if($num!=1){ echo "username dan password tidak sesuai"; exit; } $_SESSION['role'] = $row['role']; $_SESSION['username'] = $row['username']; mysql_close(); ?>
setelah eksekusi halaman tersebut, maka session sudah menyimpan data untuk username dan role, role disini berfungsi sebagai penentu apakah halaman
101
tertentu boleh diakses apa tidak. Untuk masuk ke halaman menu, maka halaman menu sebelumnya perlu ditambahkan fungsi session_start() pada awal file, dan kemudian akan dilihat nilai dari masing-masing session seperti pada contoh berikut ini session_start(); $role =$_SESSION['role']; $username = $_SESSION['username']; if($role=="admin"){ //tunjukkan menu
admin
}elseif($role=="employer") { //tampilkan menu pegawai }else { //kembali arahkan ke halaman login } ?>
sehingga jika yang login adalah admin, maka akan ditampilkan ke halaman menu admin, jika pegawai yang login, maka hanya akan tampil menu pegawai, namun jika belum login maka pengguna akan diarahkan ke halaman login. 10.3 Langkah – Langkah Praktikum (Pertemuan X) 1. Tambahkan fungsi session pada semua halaman input data pada praktikum sebelumnya dengan ketentuan sebagai berikut a. jika jabatan sama dengan “admin” maka menu tambah pegawai tampil b. jika jabatan adalah “pegawai” menu tambah pegawai tidak akan tampil. c. menu tambah DVD dapat diisi oleh pegawai dan admin d. menu tambah pelanggan dapat diisi oleh pegawai dan admin e. tiap halaman input data, jika jabatan tidak ada maka kembalikan ke halaman 102
login. f. khusus untuk halaman peminjaman hanya boleh diisi oleh pegawai tidak admin g. semua halaman edit juga disesuaikan dengan ketentuan di atas. h. pencarian data juga disesuaikan dengan ketentuan di atas.
103
Daftar Pustaka 1. Brooks, D.R., 2007, Introduction to HTML and JavaScript for Scientists and Engineers, Springer, United States of America 2. Brooks, D.R., 2011, Guide to HTML, JavaScript and PHP for Scientists and Engineers, Springer, United States of America 3. Powell, T. A., 2010, HTML & CSS: The Complete Reference, McGraw-Hill, United States of America 4. Robson E, dan Freeman E, 2012, Head First HTML and CSS, O'Reilly, United States of America 5. Holzschlag, M.E., 2005, HTML and CSS, Addison Wesley Professional, United States of America 6. Darie, C and Balanescu, E, 2008, Beginning PHP and MySQL E-Commerce: From Novice to Professional, Second Edition, Apress, United States of America 7. Gilmore, W.J., 2006, Beginning PHP and MySQL 5: From Novice to Professional, Second Edition, Apress, United States of America 8. Doyle, M., 2010, Beginning PHP 5.3, Wiley Publishing, United States of America 9. Glass. M, Scouarnec Y.L., Naramore. E, Mailer. G, Stolz J, and Gerner J., 2004, Beginning PHP, Apache, MySQL Web Development,Wiley Publishing, United States of America 10. Nixon R., 2012, Learning PHP, MySQL, JavaScript, and CSS, Second Edition, O’Reilly Media, United States of America