WEB DINAMIS (PHP MYSQL) Materi Kuliah Pemrograman Internet HTTP (HyperText Transfer Protocol) HTTP digunakan oleh web browser untuk mengirim request dari website bi ke web server dan kemudian menerima response dari web server. HTTP request berkerja seperti email, memberitahukan kapan request dikirim, berisi header yang memberitahu apa yang harus dilakukan server dan bagaimana menghandle request tersebut. Sekali sebuah request diterima, web server kemudian menentukan response apa yang akan diberikan.
Http Request Format http request : <tipe> <headers> <blank> [<body>] Baris pertama dari http request adalah tipe dari request yang diikuti dengan versi HTTP yang digunakan. Bagian headers berisi informasi tambahan yang mungkin digunakan oleh server, seperti host,user-agent ataupun type connection. Setelah bagian header diikuti baris kosong. Bagian request body yang dapat diisi ataupun tidak yang biasanya berisi data (text HTML atau jenis resource yang lainnya). Get request Misal : url : www.google.com GET / HTTP/1.1 Host: www.google.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en- US; rv:1.7.6) Gecko/20110225 Firefox/1.0.1 Connection: Keep-Alive
Keterangan : Baris pertama dari request menandakan bahwa ini adalah GET request kemudian diikuti oleh / yang berarti kita membuka root dari domain tersebut kemudian diikuti oleh jenis HTTP yang dipakai yaitu 1.1 (alternatif yang lain bisa saja 1.0). Kemanakah request itu dikirim? (baris kedua) baris kedua merupakan header request yang pertama yaitu host yang merupakan target dari request ini. untuk jenis header ini hanya diperlukan untuk HTTP 1.1 (pada HTPP 1.0 header ini tidak diperlukan). Baris ketiga berisi header user agent yang berisi tipe browser yang dipakai. i header iilh inilah yang biasanya dimanfaatkan script untuk membuat browser detection. Baris terakhir adalah berisi header yang ketiga yaitu connection yang biasanya isinya keep alive. Meskipun setelah header tidak dituliskan blank line tapi hal tersebut diharuskan ada meskipun request body tidak disertakan.
Post Request POST / HTTP/1.1 Host: www.google.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en- US; rv:1.7.6) Gecko/20110225 Firefox/1.0.1 Content-Type: application/x-www-form-urlencoded Content-Length: 20 Connection: Keep-Alive Http Response <status> <headers> <blank> [<response>] ---- HTTP/1.1 200 OK Date: Sat, 31 Dec 2010 23:59:59 GMT Content-Type: text/html;charset=iso-8859-1 h Content-Length: 122 Perbedaan dengan http request pada Status code
Jenis kode response kode yang umum Post Methode Get Methode Post Tidak ditampilkan di adress bar, bersifat penting dan rahasia, digunakan untuk meminta respon ke server dengan cara tertutup. Metode POST digunakan untuk : Mengambil sumber data yang telah ada Mengirim pesan, berita, forum dsb. Mengirim i sejumlah data yang dikirimi melalu l form Operasi mengubah database yang telah ada.
Get Ditamplikan di adress bar, digunakan untuk mengambil kembali data2 yang telah ada di sumber data/database. Penggunaan metode get umumnya diimplementasikan pada pembuatan fasilitas searching. Namun hal ini menjadi kendala jika method get ini digunakan dalam menginput data dengan text yang panjang Contoh : Script : index.html <form action=get.php method=get> <table border=0> <tr><td>nama : </td> <td><input name=nama type=text></td></tr> <tr><td>email :</td> <td><input name=email type=text></td></tr> <tr><td>homepage : </td> <td><input name=web type=text></td></tr> <tr><td>isi :</td> <td><textarea name=isi cols=25 rows=6></textarea></td></tr> <tr><td></td> <td><input type=submit value=kirim></td></tr> </table> </form>
Script : get.php <?php echo $_GET['nama']." ".$_GET['web']." ".$_GET['email']." ".$_GET['isi']?> Hasilnya : Jika script index.html di ganti dengan post method : <form action=post.php p p method=post> Script : post.php <?php echo $_POST['nama']." ".$_POST['email']." ".$_POST['web']." ".$_POST['isi'];?> URL :
Mengambil data dari Form (HTML) <html> <body> <form action="hasil.php" il h " method="post"> Nama: <input type="text" name="nama"><br> Password: <input type="password" name="password"><br> Jenis Kelamin : <input name="gender" type="radio" value="laki-laki">laki-laki <input name="gender" type="radio" value="perempuan">perempuan<br> <input type="submit" value="kirim"> <input type="reset" value="batal"> </form> </body> </html> Server Side <? echo "<html></body>"; //file hasil.php if (empty($_post["nama"])) $ket.="nama kosong,"; if (empty($_post["password"])) $ket.="pasword kosong,"; if (empty($_post["gender"])) $ket.="gender kosong,"; if (isset($ket)){ echo "Error :".$ket; exit; } echo "Nama anda: ".$_POST["nama"]."<br>"; echo "Password anda: ".$_POST["password"]."<br>"; echo "Jenis Kelamin anda: ".$_POST["gender"]."<br>";?>
Jika register global ditutup Maka tidak bisa melewatkan variabel secara langsung : $_GET[ varname ] $_POST[ varname ] $_SESSION[ varname ] $_COOKIE[ varname ] $_REQUEST[ varname ] $_FILES[ varname ] MySQL MySQL merupakan salah satu database server yang sangat handal dan populer, selain itu ia bersifat free (open source).
Koneksi MySQL Untuk dapat berhubungan dengan MySQL, PHP harus membuka hubungan ke server MySQL, yaitu dengan menggunakan fungsi-fungsi MySQL yang tidak terdapat dalam PHP. mysql_connect(nama host,nama user,password) mysql_select_db(nama database) --- <? mysql_connect("localhost","root",""); mysql_select_db("db_matkul");?> Membuat Database Perintah membuat database pada MySQL : CREATE DATABASE <nama_database>; Perintah membuat tabel : CREATE TABLE <nama_tabel> ( nama_field_1 type_field attributes, nama_field_2 type_field attributes, nama_field_n n type_field attributes, Primary key(nama_field) );
Manipulasi Data INSERT INSERT INTO <nama_tabel> VALUES ( nilai nilai_field_1 1, nilai_field_2,, nilai_field_n ); SELECT SELECT <nama_field> FROM <nama_tabel> WHERE <kriteria>; UPDATE UPDATE <nama_tabel> SET <nama_field_kunci= nilai_field > WHERE <kriteria>; DELETE DELETE FROM <nama_tabel> WHERE <kriteria>; Fungsi Query MySQL mysql_query(query) mysql_fetch_row(result_id) mysql_fetch_array(result_id) Beda antara mysql_fetch_row() dan mysql_fetch_array() adalah pada mysql_fetch_array() hasil yang diperoleh dalam bentuk array assosiatif
Project Sederhana dgn PHP - MySQL Program pendataan Mata Kuliah Rancangan: Tujuan : pendataan dan pengelolaan data Mata Kuliah Fitur : Input data mata kuliah Menampilkan data mata kuliah Struktur DB CREATE DATABASE db_matkul; CREATE TABLE matkul ( kode char(6) NOT NULL default, nama varchar(100) default NULL, definisi longtext, PRIMARY KEY ( kode ) );
Form Input <? echo "<b>tambah Data Mata Kuliah</b>"; echo "<form method='post' ' action='simpan_data.php'>"; i ' echo "<table><tr><td>kode Mata Kuliah </td> <td><input type='text' name='kode_matakuliah' size=6></td> </tr> <tr><td>nama Mata Kuliah</td> <td><input type='text' name='nama_matakuliah' size=40></td> </tr> <tr><td valign='middle'>definisi Mata Kuliah </td> <td><textarea name='definisi' i i cols=40 rows=6></textarea></td> </tr> <tr><td><input type='submit' value='simpan'></td> </tr>"; echo "</table></form>";?>
Proses simpan data <? include "koneksi.php"; $query = "insert into matkul(kode, nama, definisi) i i) values ('$_POST[kode_matakuliah]','$_POST[nama_matakuliah]', '$_POST[definisi]')"; $hasil = mysql_query($query); if($hasil) { echo "<h3>pengiriman Data Sukses!</h3>"; } else { echo "<h3>pengiriman Data Gagal! <input type=button value=back OnClick=self.history.back();></h3>"; }?> Tampil data <? echo "<table border = 1> <tr><td><b>kode</b></td> <td><b>nama Mata Kuliah </b></td> <td><b>definisi</b></td></tr>"; include "koneksi.php"; $qdata = mysql_query("select kode,nama,definisi from matkul"); while($rdata = mysql_fetch_array($qdata)){ $kode = $rdata["kode"]; $nama = $rdata["nama"]; $definisi = $rdata["definisi"]; definisi echo "<tr><td>$kode</td><td>$nama</td><td>$definisi</td></tr> ";} echo "</table>";?>
Tugas Mandiri 2: Tambahkan fitur EDIT dan HAPUS
Tugas Kelompok Buatlah project sederhana aplikasi berbasis internet menggunakan PHP-MySQL dengan ketentuan : Domain permasalahan bebas Form (Login User*, Input Data) Data Manipulation (Insert, Select, Update, Delete) Minimal menggunakan 2 tabel MySQL Menggunakan manajemen sesi (session) * Dikumpulkan dalam bentuk hardcopy(laporan) dan softcopy(source&.sql) pada minggu ke 5 (presentasi pertemuan 5,6). *) materi perkuliahan 4. Format Laporan Pendahuluan Analisa dan Rancangan Hasil dan Pembahasan Penutup Maksimal 15 halaman