Fungsi-fungsi PHP untuk akses server MySQL

 

Merupakan fungsi yang digunakan untuk mengakses database MySQL yang diawali mysql_ :

III.4.1  Fungsi mysql_connect

Digunakan untuk melakukan koneksi ke database server MySQL, yang terdapat pada suatu host.

Formatnya : mysql_connect (nama_host, nama_user, password);

Ket :

Ø  nama_host , menyatakan nama host tempat MySQL diinstal.

Ø  nama_user, adalah nama pemakai yang diperbolehkan untuk koneksi dengan database server MySQL.

Ø  password, adalah password yang dimiliki oleh pemakai.

Nilai balik yang dihasilkan true (jika koneksi berhasil dilakukan) dan false (jika koneksi tidak berhasil dilakukan).

Contoh : $konek = mysql_connect (‘localhost’,’Adiexs’,’Kucing’);

Perintah ini digunakan untuk membentuk koneksi ke database server MySQL yang terdapat pada localhost dengan user Adiexs dan password = Kucing dan $konek sebagai pengenal hubungan.

III.4.2  Fungsi mysql_close

Digunakan untuk memutus koneksi ke database MySQL.

Formatnya : mysql_close (pengenal­_hubungan);

Ket :   

Ø  pengenal­_hubungan, menyatakan nama pengenal dari pemanggilan fungsi mysql_connect.

Contoh : mysql_close ($konek);

Perintah ini digunakan untuk memutuskan koneksi terhadap database MySQL, yang mempunyai nama  pengenal­_hubungan-nya adalah $konek.

Contoh programnya : (FungsiMySQLConnect.php).

<html>

<head>

<title>Koneksi ke Database MySQL</title>

</head>

<body>

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

  $konek = mysql_connect("localhost",$pemakai,$password);

if ($konek)

     print("Database MySQL dapat Terkoneksi<br>");

else

     print("Database MySQL tidak dapat Terkoneksi<br>");

$putus =  mysql_close($konek);

if ($putus)

     print("Pemutusan Berhasil");

else

     print("Pemutusan tidak Berhasil");

?>

</body>

</html>

 

 

Gambar 3.38 Tampilan program konekmysql.php

III.4.3  Fungsi mysql_select_db

Digunakan untuk memilih database yang ada di database server MySQL.

Formatnya : mysql_ select_db (nama_database, pengenal­_hubungan);

Ket :   

Ø  nama_database, menyatakan nama database yang akan dipilih.

Ø  pengenal­_hubungan, menyatakan nama pengenal dari pemanggilan fungsi mysql_connect.

Contoh : mysql_ select_db (DataMahasiswa, $konek);

Perintah ini digunakan untuk memilih database yang bernama DataMahasiswa, yang mempunyai nama  pengenal­_hubungan-nya adalah $konek.

III.4.4  Fungsi mysql_query

Digunakan untuk menjalankan permintaan terhadap sebuah tabel atau sejumlah table. 

Formatnya : mysql_ query (permintaan, pengenal­_hubungan);.

Ket :   

Ø  permintaan, merupakan pernyataan SQL yang digunakan untuk mengakses tabel, dimana tabel yang dapat diakses adalah milik database yang disebutkan melalui  mysql_select_db.

Ø  pengenal­_hubungan, menyatakan nama pengenal dari pemanggilan fungsi mysql_connect.

Contoh : mysql_ query (“select * from datapribadi”, $konek);

Perintah ini digunakan untuk menampilkan semua data yang ada di tabel datapribadi, dimana tabel datapribadi ini terdapat dalam database yang bernama DataMahasiswa, yang mana database DataMahasiswa ini telah dipilih sebelumnya dengan perintah  mysql_ select_db (DataMahasiswa, $konek); yang mempunyai nama  pengenal­_hubungan-nya adalah $konek.

III.4.5  Fungsi mysql_db_query

Digunakan untuk menjalankan permintaan terhadap sebuah database.

Formatnya : mysql_db_query (database,permintaan, pengenal­_hubungan);

Ket :   

Ø  database, adalah nama database yang dipilih.

Ø  permintaan, merupakan pernyataan SQL yang digunakan untuk mengakses tabel dari database yang telah dipilih.

Ø  pengenal­_hubungan, menyatakan nama pengenal dari pemanggilan fungsi mysql_connect.

Contoh : $hasilisitabel = mysql_db_query ("DataMahasiswa","select * from datapribadi",$konek);

Perintah ini digunakan untuk memilih database yang bernama DataMahasiswa, kemudian akan menampilkan semua data yang ada di tabel datapribadi, dimana tabel datapribadi ini terdapat dalam database yang bernama DataMahasiswa, dengan  yang  nama  pengenal­_hubungan-nya adalah $konek.

III.4.6  Fungsi mysql_num_rows

Digunakan untuk mendapatkan jumlah baris dari hasil permintaan yang menggunakan perintah select.

Formatnya : mysql_num_rows (pengenal­_hasil);

Ket :   

Ø  pengenal­_hasil, adalah nama pengenal yang berisi hasil pemanggilan fungsi mysql_query dan mysql_db_query.

Contoh : $jumbaris = mysql_num_rows($hasilisitabel);

Perintah ini akan menghasilkan jumlah baris dari hasil perintah select yang telah dijalankan sebelumnya yang disimpan dalam pengenal_hasil  $hasilisitabel.

III.4.7  Fungsi mysql_num_fields

Digunakan untuk mendapatkan jumlah baris dari hasil permintaan yang menggunakan perintah select.

Formatnya : mysql_num_fields (pengenal­_hasil);

Ket :   

Ø  pengenal­_hasil, adalah nama pengenal yang berisi hasil pemanggilan fungsi mysql_query dan mysql_db_query.

Contoh : $jumkolom = mysql_num_fields($hasilisitabel);

Perintah ini akan menghasilkan jumlah kolom dari hasil perintah select yang telah dijalankan sebelumnya yang disimpan dalam pengenal_hasil  $hasilisitabel.

 

III.4.8  Fungsi mysql_fetch_row

Digunakan untuk menghasilkan suatu array, yang terdiri dari seluruh isi kolom dan baris pada suatu hasil permintaan. Fungsi ini mempunyai sifat akan membaca baris berikutnya dari hasil permintaan dan menghasilkan nilai balik bilamana baris yang akan dibaca sudah tidak ada.

Formatnya : mysql_fetch_row (pengenal­_hasil);

Ket :   

Ø  pengenal­_hasil, adalah nama pengenal yang berisi hasil pemanggilan fungsi mysql_query dan mysql_db_query.

Contoh : $array = mysql_fetch_row($hasilisitabel)

Perintah ini akan menghasilkan array, dari hasil perintah yang telah dijalankan sebelumnya yang disimpan dalam pengenal_hasil  $hasilisitabel.

Contoh programnya : (FungsiMySQLFecthRow.php).

<html>

<head>

<title>Menampilkan Isi Tabel dengan Query</title>

</head>

<body>

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$hasilisitabel = mysql_query ("select * from datapribadi",$konek);

//$hasilisitabel = mysql_db_query ("DataMahasiswa","select * from datapribadi",$konek);

$jumbaris = mysql_num_rows($hasilisitabel);

print ("Jumlah Baris : $jumbaris<br>");

$jumkolom = mysql_num_fields($hasilisitabel);

print ("Jumlah Kolom : $jumkolom<br>");

While ($array = mysql_fetch_row($hasilisitabel))

      {

      print ("$array[0] || $array[1] || $array[2] || $array[3]<br>");

      }

?>

</body>

</html>

 

Gambar 3.39 Tampilan program FungsiMySQLFecthRow.php

III.4.9  Fungsi mysql_affected_rows

Digunakan untuk mendapatkan jumlah baris dari permintaan yang menggunakan perintah insert, delete dan update.

Formatnya : mysql_affected_rows (pengenal­_hubungan);

Ket :   

Ø  pengenal­_ hubungan, menyatakan nama pengenal dari pemanggilan fungsi mysql_connect.

Contoh : $jumbaris = mysql_affected_rows($konek);

Perintah ini akan menghasilkan jumlah baris yang dikenai perintah insert, delete dan update yang telah dijalankan sebelumnya.

Contoh programnya : (FungsiMySQLAffectedRows.php).

<html>

<head>

<title>Menampilkan Jumlah Baris dengan Query Insert, Delete dan Update</title>

</head>

<body>

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

/*$Masukkan = "insert into datapribadi(NIM,Nama,Kota,Telepon) values

           ('35410175','Indraguna','Wates','773425')";

$hasilisitabel = mysql_query ($Masukkan,$konek);*/

//$hasilisitabel = mysql_query ("update datapribadi set Nama='Indraguna,S.Kom',Kota='Yogyakarta' where NIM = 35410185 ");

$hasilisitabel = mysql_query ("delete from datapribadi where NIM = 35410175");

if ($hasilisitabel)

     print("Perintah dapat Dijalankan<br>");

else

     print("Perintah tidak dapat Dijalankan<br>");

$jumbaris = mysql_affected_rows($konek);

print ("Jumlah Baris : $jumbaris<br>");

?>

</body>

</html>

 

Gambar 3.40 Tampilan program FungsiMySQLAffectedRows.php

III.4.10  Fungsi mysql_fetch_field

Digunakan untuk mendapatkan informasi suatu kolom, dimana nilai balik-nya berupa suatu objek.

Formatnya : mysql_fetch_field (pengenal­_hasil, nomor_kolom);

Ket :   

Ø  pengenal­_hasil, adalah nama pengenal yang berisi hasil pemanggilan fungsi mysql_query dan mysql_db_query.

Ø  nomor_kolom, menyatakan nomor kolom yang informasinya ingin didapatkan. Bila nomor kolom tidak disebutkan, maka akan mengecek kolom dengan nomor kolom dimulai dari 0 sampai nomor kolom terakhir.

Contoh : $hasilisikolom = mysql_fetch_field($hasil,0);

Perintah ini akan menghasilkan suatu objek $hasilisikolom, kemudian supaya mendapatkan informasi maka objek ini harus diberi property antara lain :

Tabel 3.1  Properti dari suatu filed

Properti

Keterangan

not_null

Bernilai 1 jika kolom tidak boleh kosong

primary_key

Bernilai 1 jika kolom adalah primary key

numeric

Bernilai 1 jika kolom bertipe numerik

name

Nama kolom

max_length

Panjang maksimal kolom

table

Nama tabel milik kolom

 

Contoh programnya : (FungsiMySQLFetchField.php).

<html>

<head>

<title>Menampilkan Informasi Kolom</title>

</head>

<body>

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$hasil = mysql_query ("select * from datapribadi",$konek);

  if (! $hasil)

    die("Permintaan tidak dapat Dijalankan");

$hasilisikolom = mysql_fetch_field($hasil,0);

$tidak_kosong = $hasilisikolom->not_null ? "Tidak": "Boleh";

$primary_key = $hasilisikolom->primary_key ? "Ya": "Tidak";

$Numerik = $hasilisikolom->numeric ? "Ya": "Bukan";

    print("Nama kolom : <b>$hasilisikolom->name</b><br>");

    print("Nama tabelnya : <b>$hasilisikolom->table</b><br>");

    print("Panjang isi kolom : <b>$hasilisikolom->max_length</b><br>");

    print("Apakah isinya boleh kosong : <b>$tidak_kosong</b><br>");

    print("Apakah sebagai kunci primer: <b>$primary_key</b><br>");

    print("Apakah tipenya numerik: <b>$Numerik</b><br>");

?>

</body>

</html>

Gambar 3.41 Tampilan program FungsiMySQLFetchField.php

III.4.11  Fungsi-fungsi untuk  mendapatkan atribut suatu kolom

Tabel 3.2  Fungsi-fungsi untuk mendapatkan atribut suatu kolom

Nama Fungsi

Keterangan

mysql_field_name

Menghasikan nama kolom.

mysql_field_len

Menghasilkan panjang maksimal kolom.

mysql_field_flags

Menghasilkan flag kolom yang dimiliki oleh kolom yang dipilih, misalnya : not_null dan primary_key.

mysql_field_type

Menghasikan tipe kolom misalnya : int dan string.

 

Formatnya : nama_fungsi (pengenal­_hasil, nomor_kolom);

Ket :   

Ø  pengenal­_hasil, adalah nama pengenal yang berisi hasil pemanggilan fungsi mysql_query dan mysql_db_query.

Ø  nomor_kolom, menyatakan nomor kolom yang informasinya ingin didapatkan.

Contoh : $Nama_kolom    = mysql_field_name($hasil, 2);

Perintah ini akan menghasilkan nama kolom dari hasil perintah yang telah dijalankan sebelumnya yang disimpan dalam pengenal_hasil  $hasil, yang mempunyai nomor kolom 2 (penomoran kolom dimulai dari 0).

Contoh programnya : (FungsiMySQLFieldName.php).

<html>

<head>

<title>Menampilkan Informasi Kolom</title>

</head>

<body>

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$hasil = mysql_query ("select * from datapribadi",$konek);

  if (! $hasil)

    die("Permintaan tidak dapat Dijalankan");

$jum_kolom = mysql_num_fields($hasil);

  for($i=0; $i<$jum_kolom; $i++)

  {

    $Nama_kolom    = mysql_field_name($hasil, $i);

    $Tipe_kolom    = mysql_field_type($hasil, $i);

    $Panjang_kolom = mysql_field_len($hasil, $i);

    $Flag_kolom    = mysql_field_flags($hasil, $i);

    print("Nama kolomnya    : <b>$Nama_kolom</b><br>");

    print("Tipe                    : <b>$Tipe_kolom</b><br>");

    print("Panjang maksimal : <b>$Panjang_kolom</b><br>");

    print("Flag kolomnya    : <b>$Flag_kolom</b><br>");

    print("<br>");

  }

?>

</body>

</html>

 

Gambar 3.42 Tampilan program FungsiMySQLFieldName.php

III.4.12  Fungsi-fungsi MySQL lainya

Tabel 3.3  Fungsi-fungsi MySQL lainnya

Nama Fungsi

Keterangan

mysql_create_db

Membuat database baru di database server MySQL.

mysql_list_db

Menghasilkan nama-nama seluruh database yang ada di database server MySQL.

mysql_drop_db

Menghapus suatu database yang ada di database server MySQL.

mysql_list_tables

Menghasilkan nama-nama tabel dari suatu database yang ada di database server MySQL.

mysql_list_fields

Menghasilkan nama-nama kolom/fields dari suatu tabel dalam suatu database yang ada di database server MySQL.

mysql_free_result

Membebaskan memori dari seluruh hasil proses MySQL .

 

Flowchart: Alternate Process: Tugas : Membuat database yang terdiri dari  minimal 2 tabel dan masing –masing tabel minimal terdiri dari 4 field. Yang dikumpulkan :
1.	Menulis langkah-langkah pembuatan database tersebut (harus ditulis dengan tangan).
2.	Penjelasan setiap perintah SQL yang digunakan dalam pembuatan database (harus ditulis dengan tangan).

 

Bab IV.  Aplikasi Web Sederhana dengan 1 Tabel

 

IV.1  Halaman Login (Login.php).

<html>

<head>

<title>Login Pengaturan Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<center>

<h2>Pengaturan Data Mahasiswa</h2>

<form method="post">

<table >

  <tr>

    <td>Petugas</td>

    <td>

      <input type="text" name="petugas">

    </td>

  </tr>

  <tr>

    <td>Password</td>

    <td>

      <input type="password" name="password">

    </td>

  </tr>

</table>

<input type="submit" value="login">

<input type="reset"  value="reset">

</form>

<hr size=15 color="fuchsia" >

<?php

  if (isset($password) and isset($petugas) )

  {

     $validasipwd = crc32("kucing");

     $validasiptg = ("Fafa");

 

     $pwd    = crc32($password);

     $ptg    = $petugas;

     if (($validasipwd == $pwd) and ($validasiptg == $ptg))

            {

            include "MenuUtama.html";

            }

     else

            {

        print("<b>Login Anda Salah...! <br>");

            }

  }

?>

</center>

</body>

</html>

 

Gambar 4.1 Tampilan program login.php

IV.2  Halaman Menu Utama (MenuUtama.html).

<html>

<head>

<title>Menu Utama Pengaturan Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<center>

<h3>Menu Utama Data Mahasiswa</h3>

<hr>

<a href="Masukkan.html">Menambah Data</a><br>

<a href="Cek.html">Mengubah atau Menghapus Data</a><br>

<a href="Login.php">Logout</a>

</center>

</body>

</html>

 

Gambar 4.2 Tampilan program login.php setelah login dengan benar

IV.3  Halaman untuk Menambahkan Data (Masukkan.html).

<html>

<head>

<title>Menambah Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<center>

<form action="Insert.php" method="post">

<table border="1">

  <tr>

    <td><b>NIM</td>

    <td>

      <input type=text name=nim size=9 maxlength=9>

    </td>

  </tr>

  <tr>

    <td><b>Nama</td>

    <td>

       <input type=text name=nama size=25 maxlength=25>

    </td>

  </tr>

  <tr>

    <td><b>Kota</td>

    <td>

        <input type=text name=kota size=15 maxlength=15>

    </td>

  </tr>

  <tr>

    <td><b>Telepon</td>

    <td>

       <input type=text name=tlp size=10 maxlength=10>

    </td>

  </tr>

</table>

<table border="0">

  <tr>

    <td>

      <input type="submit" value="Simpan">

    <input type="reset" value="Reset">

    </td>

  </tr>

</table>

</center>

</body>

</html>

 

Gambar 4.3 Tampilan program masukkan.html yang berupa form isian

IV.4  Halaman untuk Memproses Data yang akan Dimasukkan(Insert.php).

<html>

<head>

<title>Memasukkan Data Dalam Database</title>

</head>

<body bgcolor="aqua">

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

/*

printf("$nim<br>");

printf("$nama<br>");

printf("$kota<br>");

printf("$tlp<br>");*/

$Masukkan = "insert into datapribadi(NIM,Nama,Kota,Telepon) values

           ('$nim','$nama','$kota','$tlp')";

$hasilisitabel = mysql_query ($Masukkan,$konek);

if ($hasilisitabel)

     print("<font color=red size=4>Data <b>$nama</b> Telah Dimasukkan</font><br>");

else

     print("<font color=red size=4> Data Tidak Dapat Dimasukkan</font><br>");

?>

<a href="masukkan.html">Kembali Menu Memasukkan Data</a><br>

</body>

</html>

 

Gambar 4.4 Tampilan program insert.php

IV.5  Halaman untuk Mengecek Data (Cek.html).

<html>

<head>

<title>Mengecek Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<center>

<form action="Edit&Hapus.php" method="post">

<table border="1">

  <tr>

    <td><b>Masukkan NIM</td>

    <td>

       <input type=text name=nim size=15 maxlength=9 >

    </td>

  </tr>

</table>

<table border="0">

  <tr>

    <td>

      <input type="submit" value="Cek">

    </td>

  </tr>

</form>

</center>

</body>

</html>

 

Gambar 4.5 Tampilan program Cek.html

IV.6  Halaman untuk Mengedit dan Menghapus Data (Edit&Hapus.php).

<html>

<head>

<title>Mengedit atau Menghapus Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$hasil= mysql_query ("select NIM,Nama,Kota,Telepon from datapribadi where NIM='$nim'",$konek);

if (! $hasil)

 print ("Permintaan gagal");

$baris = mysql_fetch_row($hasil);

if ($baris == false)

 print ("Data dengan NIM : <b>$nim</b> Tidak Ada...!");

$nim = $baris[0];

$nama = $baris[1];

$kota = $baris[2];

$tlp = $baris[3];

?>

<center>

<form action="Update.php" method="post">

<table border="1">

  <tr>

    <td>NIM</td>

    <td>

       <?php

       echo "$nim";

       ?>

    </td>

  </tr>

  <tr>

    <td>Nama</td>

    <td>

       <?php

       echo "<input type=text name=nama size=25 maxlength=25 value='$nama'>";

       ?>

    </td>

  </tr>

  <tr>

    <td>Kota</td>

    <td>

       <?php

       echo "<input type=text name=kota size=15 maxlength=15 value='$kota'>";

       ?>

    </td>

  </tr>

  <tr>

    <td>Telepon</td>

    <td>

       <?php

       echo "<input type=text name=tlp size=10 maxlength=10 value='$tlp'>";

       ?>

    </td>

  </tr>

</table>

<table border="0">

     <?php

       echo "<input type=hidden name=nim size=9 maxlength=9 value=$nim>";

       ?>

  <tr>

    <td>

      <input type="submit" size=29 value="Update">

    </td>

  </tr>

</form>

<form action="Delete.php" method="post">

    <td>

       <?php

       echo "<input type=hidden name=nim size=9 maxlength=9 value=$nim>";

       ?>

      <input type="submit" size=29 value="Hapus  ">

    </td>

  </form>

</center>

</body>

</html>

 

Gambar 4.6 Tampilan program edit&hapus.php

IV.7  Halaman untuk Memproses Edit Data (Update.php).

<html>

<head>

<title>Mengedit Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$hasilisitabel = mysql_query ("update datapribadi set Nama='$nama',

Kota='$kota',Telepon='$tlp' where NIM=$nim");

if ($hasilisitabel)

     print("<font color=red size=4>Data <b>$nama</b> telah Di-Update...!</font><br>");

else

print("<font color=red size=4>Data tidak dapat Di-Update </font><br>");

?>

<a href="cek.html">Kembali Menu Cek</a><br>

</body>

</html>

 

Gambar 4.7 Tampilan program update.php

IV.8  Halaman untuk Memproses Hapus Data (Delete.php).

<html>

<head>

<title>Menghapus Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$hasilisitabel = mysql_query ("delete from datapribadi where NIM=$nim");

if ($hasilisitabel)

     print("<font color=red size=4>Data telah di Hapus...!</font><br>");

else

print("<font color=red size=4>Data tidak dapat di Hapus</font><br>");

?>

<a href="cek.html">Kembali Menu Cek</a><br>

</body>

</html>

 

Gambar 4.8 Tampilan program delete.php

 

Flowchart: Alternate Process: Tugas : Menjelaskan skrip program aplikasi diatas (harus ditulis dengan tangan).

 

Bab V.  Mengenal Sesi

Pada waktu kita browsing menjelajahi website, misalnya e-mail, kita akan diminta memasukkan username dan password. Prosedur ini hanya dilakukan sekali pada awal proses. Selanjutnya sistem akan ‘mengingat’ identitas kita, dan menampilkan informasi yang sesuai. Tanpa adanya sesi, sistem akan salah dan menampilkan data rahasia ke orang yang salah.

Sesi bekerja seperti tempat penitipan barang di supermarket. Kita datang, menitipkan barang bawaan, dan petugas akan memberikan tanda pengenal. Pada saat kita akan mengambil barang, kita memberikan tanda pada petugas, dan petugas akan dapat mengambil barang yang dititipkan tanpa tertukar dengan barang orang lain. Permasalahan yang terjadi adalah, bagaimana “tanda pengenal” tersebut akan disimpan pada setiap halaman yang diakses user, sehingga dapat diakses oleh sistem setiap kali user mengklik link.

Beberapa kegunaan dari Sesi :

  1. Menyimpan nama User dan Password, sehingga memungkinkan seseorang dapat masuk ke skrip-skrip lainnya tanpa perlu melakukan login kembali.
  2. Menyimpan nama pembeli dan barang-barang yang akan dibeli.
  3. Menyimpan pilihan-pilihan yang ditentukan oleh pengunjung.

Untuk membuat sesi dapat menggunakan Session atau Cookies. Keduanya mempunyai fungsi yang sama yaitu : untuk mencatat aktifitas dari seseorang yang mengakses suatu  aplikasi web, agar informasi yang digunakan untuk mengakses dapat terpelihara atau terjaga.

Perbedaaanya adalah Cookies disimpan di komputer user sedangkan Session disimpan di server. Sehingga dapat disimpulkan bahwa penggunaan Session lebih aman dari Cookie.

Berikut akan dicontohkan aplikasi yang telah menggunakan Session dengan 2 tabel, bandingkan dengan aplikasi   web sederhana diatas.

V.1  Halaman Login (Login.php).

<html>

<head>

<title>Login Pengaturan Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<center>

<?php

  if (!empty($msg))

    print("<font color='red'><b>$msg<br>\n</b></font>");

?>

<h2>Pengaturan Data Mahasiswa</h2>

<form action=MenuUtama.php method="post">

<table >

  <tr>

    <td>Petugas</td>

    <td>

      <input type="text" name="pemakai">

    </td>

  </tr>

  <tr>

    <td>Password</td>

    <td>

      <input type="password" name="password">

    </td>

  </tr>

</table>

<input type="submit" value="login">

<input type="reset"  value="reset">

</form>

<hr size=15 color="fuchsia" >

</center>

</body>

</html>

 

Gambar 5.1 Tampilan program login.php

V .2  Halaman Menu Utama(MenuUtama.php).

<?php

  include "CekPwd.inc";

 session_start();

    if (! empty($pemakai))

      $sesi_pemakai = $pemakai;

    if (! empty($password))

      $sesi_password = $password;  

  if (! password_valid($sesi_pemakai,$sesi_password))

  {

    $alamat = "http://localhost/AplikasiSesi/Index.php";

    $msg = "Login Anda Salah, Silahkan Login Kembali...!";

    header("location: $alamat?msg=$msg");

    exit();

  }

 session_register("sesi_pemakai");

 session_register("sesi_password");

?>

<html>

<head>

<title>Menu Utama Pengaturan Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<center>

<h3>Menu Utama Data Mahasiswa</h3>

<hr>

<a href="MasukData.php">Menambah Data</a><br>

<a href="CekData.php">Mengubah atau Menghapus Data</a><br>

<a href="Kriteria.php">Menampilkan Data dengan Kriteria</a><br>

<a href="TampilData.php">Menampilkan Semua Data</a><br>

<a href="Index.php">Logout</a>

</center>

</body>

</html>

 

Gambar 5.2 Tampilan program menuutama.php

V.3  File untuk Validasi Password (CekPwd.php).

<?php

function password_valid($pemakai, $password)

    {

  if (isset($pemakai) and isset($password) )

    {

       $validasiptg = ("Fafa");

       $validasipwd = crc32("kucing");

       $ptg    = $pemakai;

       $pwd    = crc32($password);

     if (($validasipwd == $pwd) and ($validasiptg == $ptg))

         return true;

         return false;

    }

  }

?>

 

V.4  Halaman atau Form untuk Memasukkan Data(MasukData.php).

<?php

  include "CekPwd.inc";

  session_start();

  if (! password_valid($sesi_pemakai,$sesi_password))

  {

    $alamat = "http://localhost/AplikasiSesi/Index.php";

    $msg = "Login Anda Salah, Silahkan Login Kembali...!";

    header("location: $alamat?msg=$msg");

    exit();

  }

?>

<html>

<head>

<title>Menambah Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<center>

<form action="insert2.php" method="post">

<table border="1">

  <tr>

    <td><b>NIM</td>

    <td>

      <input type=text name=nim size=9 maxlength=9>

    </td>

  </tr>

  <tr>

    <td><b>Nama</td>

    <td>

       <input type=text name=nama size=25 maxlength=25>

    </td>

  </tr>

  <tr>

    <td><b>Kota</td>

    <td>

        <input type=text name=kota size=15 maxlength=15>

    </td>

  </tr>

  <tr>

    <td><b>Telepon</td>

    <td>

       <input type=text name=tlp size=10 maxlength=10>

    </td>

  </tr>

 <tr>

    <td><b>Nama Orang Tua</td>

    <td>

       <input type=text name=naortu size=25 maxlength=25>

    </td>

  </tr>

<tr>

    <td><b>Pekerjaan</td>

    <td>

       <input type=text name=pkj size=15 maxlength=15>

    </td>

  </tr>

</table>

<table border="0">

  <tr>

    <td>

      <input type="submit" value="Simpan">

    <input type="reset" value="Reset">

    </td>

  </tr>

</table>

</center>

</body>

</html>

 

Gambar 5.3 Tampilan program masukdata.php

V.5 Halaman untuk Memproses Data yang akan Dimasukkan (Insert2.php).

<?php

  include "CekPwd.inc";

  session_start();

  if (! password_valid($sesi_pemakai,$sesi_password))

  {

    $alamat = "http://localhost/AplikasiSesi/Index.php";

    $msg = "Login Anda Salah, Silahkan Login Kembali...!";

    header("location: $alamat?msg=$msg");

    exit();

  }

?>

<html>

<head>

<title>Memasukkan Data Dalam Database</title>

</head>

<body bgcolor="aqua">

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$Masuk1 = "insert into datapribadi(NIM,Nama,Kota,Telepon) values

           ('$nim','$nama','$kota','$tlp')";

$hasilisitabel1 = mysql_query ($Masuk1,$konek);

$Masuk2 = "insert into dataortu(NIM,NamaOrtu,Pekerjaan) values

           ('$nim','$naortu','$pkj')";

$hasilisitabel2 = mysql_query ($Masuk2,$konek);

if (($hasilisitabel1) and ($hasilisitabel1))

     print("<font color=red size=4>Data <b>$nama</b> Telah Dimasukkan</font><br>");

else

     print("<font color=red size=4> Data Tidak Dapat Dimasukkan</font><br>");

?>

<a href="masukdata.php">Kembali Menu Memasukkan Data</a><br>

</body>

</html>

 

Gambar 5.4 Tampilan program insert2.php

V.6 Halaman untuk Mengecek Data yang akan Diedit (CekData.php).

<?php

  include "CekPwd.inc";

  session_start();

  if (! password_valid($sesi_pemakai,$sesi_password))

  {

    $alamat = "http://localhost/AplikasiSesi/Index.php";

    $msg = "Login Anda Salah, Silahkan Login Kembali...!";

    header("location: $alamat?msg=$msg");

    exit();

  }

?>

<html>

<head>

<title>Mengecek Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<center>

<form action="Edit&Hapus2.php" method="post">

<table border="1">

  <tr>

    <td><b>Masukkan NIM</td>

    <td>

       <input type=text name=nim size=15 maxlength=9 >

    </td>

  </tr>

</table>

<table border="0">

  <tr>

    <td>

      <input type="submit" value="Cek">

    </td>

  </tr>

</form>

</center>

</body>

</html>

 

.

Gambar 5.5 Tampilan program cekdata.php

V.7  Halaman untuk Mengedit atau Menghapus Data (Edit&Hapus2.php).

<?php

  include "CekPwd.inc";

  session_start();

  if (! password_valid($sesi_pemakai,$sesi_password))

  {

    $alamat = "http://localhost/AplikasiSesi/Index.php";

    $msg = "Login Anda Salah, Silahkan Login Kembali...!";

    header("location: $alamat?msg=$msg");

    exit();

  }

?>

<html>

<head>

<title>Mengedit atau Menghapus Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$hasil1= mysql_query ("select NIM,Nama,Kota,Telepon from datapribadi where NIM='$nim'",$konek);

if (! $hasil1)

 print ("Permintaan gagal");

$baris1 = mysql_fetch_row($hasil1);

if ($baris1 == false)

 printf ("Data dengan NIM : <b>$nim</b> Tidak Ada...!" );

$nim = $baris1[0];

$nama = $baris1[1];

$kota = $baris1[2];

$tlp = $baris1[3];

$hasil2= mysql_query ("select NIM,NamaOrtu,Pekerjaan from dataortu where NIM='$nim'",$konek);

if (! $hasil2)

 print ("Permintaan gagal");

$baris2 = mysql_fetch_row($hasil2);

$nim = $baris2[0];

$naortu = $baris2[1];

$pkj = $baris2[2];

?>

<center>

<form action="update2.php" method="post">

<table border="1">

  <tr>

    <td>NIM</td>

    <td>

       <?php

       echo "$nim";

       ?>

    </td>

  </tr>

  <tr>

    <td>Nama</td>

    <td>

       <?php

       echo "<input type=text name=nama size=25 maxlength=25 value='$nama'>";

       ?>

    </td>

  </tr>

  <tr>

    <td>Kota</td>

    <td>

       <?php

       echo "<input type=text name=kota size=15 maxlength=15 value='$kota'>";

       ?>

    </td>

  </tr>

  <tr>

    <td>Telepon</td>

    <td>

       <?php

       echo "<input type=text name=tlp size=10 maxlength=10 value='$tlp'>";

       ?>

    </td>

  </tr>

<tr>

    <td>Nama Orang Tua</td>

    <td>

       <?php

       echo "<input type=text name=naortu size=25 maxlength=25 value='$naortu'>";

       ?>

    </td>

  </tr>

<tr>

    <td>Pekerjaan</td>

    <td>

       <?php

       echo "<input type=text name=pkj size=15 maxlength=15 value='$pkj'>";

       ?>

    </td>

  </tr>

</table>

<table border="0">

     <?php

       echo "<input type=hidden name=nim size=9 maxlength=9 value=$nim>";

       ?>

  <tr>

    <td>

      <input type="submit" size=29 value="Update">

    </td>

  </tr>

</form>

<form action="delete2.php" method="post">

    <td>

       <?php

       echo "<input type=hidden name=nim size=9 maxlength=9 value=$nim>";

       ?>

      <input type="submit" size=29 value="Hapus  ">

    </td>

  </form>

</center>

</body>

</html>

 

Gambar 5.6 Tampilan program edit&hapus2.php

V.8 Halaman untuk Memproses Data yang akan Diedit (Update2.php).

<?php

  include "CekPwd.inc";

  session_start();

  if (! password_valid($sesi_pemakai,$sesi_password))

  {

    $alamat = "http://localhost/AplikasiSesi/Index.php";

    $msg = "Login Anda Salah, Silahkan Login Kembali...!";

    header("location: $alamat?msg=$msg");

    exit();

  }

?>

<html>

<head>

<title>Mengedit Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$hasilisitabel1 = mysql_query ("update datapribadi set Nama='$nama',

Kota='$kota',Telepon='$tlp' where NIM=$nim");

$hasilisitabel2 = mysql_query ("update dataortu set NamaOrtu='$naortu',Pekerjaan='$pkj'where NIM=$nim");

if (($hasilisitabel2) and ($hasilisitabel2))

     print("<font color=red size=4>Data <b>$nama</b> telah Di-Update...!</font><br>");

else

print("<font color=red size=4>Data tidak dapat Di-Update </font><br>");

?>

<a href="cekdata.php">Kembali Menu Cek</a><br>

</body>

</html>

 

Gambar 5.7 Tampilan program update2.php

V.9 Halaman untuk Memproses Data yang akan Dihapus (Delete2.php).

<?php

  include "CekPwd.inc";

  session_start();

  if (! password_valid($sesi_pemakai,$sesi_password))

  {

    $alamat = "http://localhost/AplikasiSesi/Index.php";

    $msg = "Login Anda Salah, Silahkan Login Kembali...!";

    header("location: $alamat?msg=$msg");

    exit();

  }

?>

<html>

<head>

<title>Menghapus Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$hasilisitabel1 = mysql_query ("delete from datapribadi where NIM=$nim");

$hasilisitabel2 = mysql_query ("delete from dataortu where NIM=$nim");

if (($hasilisitabel1) and ($hasilisitabel2))

     print("<font color=red size=4>Data telah di Hapus...!</font><br>");

else

print("<font color=red size=4>Data tidak dapat di Hapus</font><br>");

?>

<a href="cekdata.php">Kembali ke Menu Cek</a><br>

</body>

</html>

 

Gambar 5.8 Tampilan program delete2.php

V.10 Halaman untuk Memasukkan Kriteria (Kriteria.php).

<?php

  include "CekPwd.inc";

  session_start();

  if (! password_valid($sesi_pemakai,$sesi_password))

  {

    $alamat = "http://localhost/AplikasiSesi/Index.php";

    $msg = "Login Anda Salah, Silahkan Login Kembali...!";

    header("location: $alamat?msg=$msg");

    exit();

  }

?>

<html>

<head>

<title>Menampilkan Data dengan Kriteria</title>

</head>

<body bgcolor="aqua">

<center>

<form action="TampilKriteria.php" method="post">

<font size=5 color="red"><b>Silahkan Masukkan Kriterianya...!</font><br><br>

<table border="1">

  <tr>

    <td><b>Masukkan Kriteria Nama Mahasiswa</td>

    <td>

       <input type=text name=kritnama size=15 maxlength=9 >

    </td>

  </tr>

<tr>

    <td><b>Masukkan Kriteria Kota</td>

    <td>

       <input type=text name=kritkota size=15 maxlength=9 >

    </td>

  </tr>

</table>

<table border="0">

  <tr>

    <td>

      <input type="submit" value="OK">

    </td>

  </tr>

</table>

</form>

</center>

</body>

<a href="menuutama.php"><font size=2 color="blue"><b>Kembali ke Menu Utama...!</a>

</html>

 

Gambar 5.9 Tampilan program kriteria.php

V.11 Halaman untuk Menampilkan Data dengan Kriteria (TampilData.php).

<?php

  include "CekPwd.inc";

  session_start();

  if (! password_valid($sesi_pemakai,$sesi_password))

  {

    $alamat = "http://localhost/AplikasiSesi/Index.php";

    $msg = "Login Anda Salah, Silahkan Login Kembali...!";

    header("location: $alamat?msg=$msg");

    exit();

  }

?>

 

<html>

<head>

<title>Menampilkan Data Mahasiswa dengan Kriteria</title>

</head>

<body bgcolor="aqua">

 

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

 

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

 

$hasil1= mysql_query ("select datapribadi.NIM,datapribadi.Nama,datapribadi.Kota,datapribadi.Telepon,

dataortu.NamaOrtu,dataortu.pekerjaan

from datapribadi, dataortu where datapribadi.NIM=dataortu.NIM and datapribadi.Nama like '%$kritnama%' and datapribadi.Kota like '%$kritkota%'",$konek);

if (! $hasil1)

 print ("Permintaan gagal");

 

?>

 

<?php

print ("<center>");

print ("<font size=4><b>Data Lengkap Mahasiswa dan Orang Tua</b><br><br>");

print ("<table border=1 bordercolor=gray width=100% cellspacing=0>");

 

print ("<tr>");

print ("<td width=5%>");

print ("<center>");

print ("<font size=2><b>No </b>");

print ("</td>");

 

print ("<td width=15%>");

print ("<center>");

print ("<font size=2><b>N I M </b>");

print ("</td>");

 

print ("<td width=20%>");

print ("<center>");

print ("<font size=2><b>Nama Mahasiswa</b>");

print ("</td>");

 

print ("<td width=20%>");

print ("<center>");

print ("<font size=2><b>Nama Orang Tua</b>");

print ("</td>");

 

print ("<td width=7%>");

print ("<center>");

print ("<font size=2><b>Kota </b>");

print ("</td>");

 

print ("<td width=12%>");

print ("<center>");

print ("<font size=2><b>Telepon </b>");

print ("</td>");

 

print ("<td width=15%>");

print ("<center>");

print ("<font size=2><b>Pekerjaan </b>");

print ("</td>");

 

print ("</tr>");

$no=0;

While ($datanya = mysql_fetch_row ($hasil1))

{

$no++;

print ("<tr>");

print ("<td width=5%>");

print ("<center>");

print ("<font size=2>$no ");

print ("</td>");

 

print ("<td width=15%>");

print ("<left>");

print ("<font size=2>$datanya[0]");

print ("</td>");

 

print ("<td width=20%>");

print ("<left>");

print ("<font size=2>$datanya[1]");

print ("</td>");

 

print ("<td width=20%>");

print ("<left>");

print ("<font size=2>$datanya[4]");

print ("</td>");

 

print ("<td width=12%>");

print ("<left>");

print ("<font size=2>$datanya[2]");

print ("</td>");

 

print ("<td width=10%>");

print ("<left>");

print ("<font size=2>$datanya[3]");

print ("</td>");

 

print ("<td width=15%>");

print ("<left");

print ("<font size=2>$datanya[5]");

print ("</td>");

 

print ("</tr>");

}

print ("</table>");

 

?>

</center>

</body>

</html>

 

 Gambar 5.10 Tampilan program tampilkriteria.php

V.12 Halaman untuk Menampilkan Data dari Kedua Tabel (TampilData.php).

<?php

  include "CekPwd.inc";

  session_start();

  if (! password_valid($sesi_pemakai,$sesi_password))

  {

    $alamat = "http://localhost/AplikasiSesi/Index.php";

    $msg = "Login Anda Salah, Silahkan Login Kembali...!";

    header("location: $alamat?msg=$msg");

    exit();

  }

?>

<html>

<head>

<title>Menampilkan Data Mahasiswa</title>

</head>

<body bgcolor="aqua">

<?php

  $pemakai  = "Adiexs";

  $password = "Kucing";

$konek = mysql_connect("localhost",$pemakai,$password);

if (! $konek)

     print("Database MySQL tidak dapat Terkoneksi<br>");

$pilihDB =  mysql_select_db(DataMahasiswa,$konek);

$hasil1= mysql_query ("select datapribadi.NIM,datapribadi.Nama,datapribadi.Kota,datapribadi.Telepon,

dataortu.NamaOrtu,dataortu.pekerjaan

from datapribadi, dataortu where datapribadi.NIM=dataortu.NIM order by datapribadi.Nama",$konek);

if (! $hasil1)

 print ("Permintaan gagal");

?>

<?php

print ("<center>");

print ("<font size=4><b>Data Lengkap Mahasiswa dan Orang Tua</b><br><br>");

print ("<table border=1 bordercolor=gray width=100% cellspacing=0>");

print ("<tr>");

print ("<td width=5%>");

print ("<center>");

print ("<font size=2><b>No </b>");

print ("</td>");

print ("<td width=15%>");

print ("<center>");

print ("<font size=2><b>N I M </b>");

print ("</td>");

print ("<td width=20%>");

print ("<center>");

print ("<font size=2><b>Nama Mahasiswa</b>");

print ("</td>");

print ("<td width=20%>");

print ("<center>");

print ("<font size=2><b>Nama Orang Tua</b>");

print ("</td>");

print ("<td width=7%>");

print ("<center>");

print ("<font size=2><b>Kota </b>");

print ("</td>");

print ("<td width=12%>");

print ("<center>");

print ("<font size=2><b>Telepon </b>");

print ("</td>");

print ("<td width=15%>");

print ("<center>");

print ("<font size=2><b>Pekerjaan </b>");

print ("</td>");

print ("</tr>");

$no=0;

While ($datanya = mysql_fetch_row ($hasil1))

{

$no++;

print ("<tr>");

print ("<td width=5%>");

print ("<center>");

print ("<font size=2>$no ");

print ("</td>");

print ("<td width=15%>");

print ("<left>");

print ("<font size=2>$datanya[0]");

print ("</td>");

print ("<td width=20%>");

print ("<left>");

print ("<font size=2>$datanya[1]");

print ("</td>");

print ("<td width=20%>");

print ("<left>");

print ("<font size=2>$datanya[4]");

print ("</td>");

print ("<td width=12%>");

print ("<left>");

print ("<font size=2>$datanya[2]");

print ("</td>");

print ("<td width=10%>");

print ("<left>");

print ("<font size=2>$datanya[3]");

print ("</td>");

print ("<td width=15%>");

print ("<left");

print ("<font size=2>$datanya[5]");

print ("</td>");

print ("</tr>");

}

print ("</table>");

?>

</center>

</body>

</html>

 

Gambar 5.11 Tampilan program tampildata.php

 

Flowchart: Alternate Process: Tugas : Membuat aplikasi dan dipresentasikan di kelas, dengan ketentuan sebagai berikut :
1.	Minimal terdiri dari 3 tabel dan ada relasinya.
2.	Terdapat proses input, edit, hapus dan tampil.
3.	Adanya proses sesi (bisa dengan Cookie ataupun Session).
4.	Aplikasinya selain tentang data mahasiswa.