Wavy Tail

Minggu, 28 April 2019

PENDAHULUAN "Update Data dengan PHP - MySQL"


Proses update suatu data dengan menggunakan script PHP dan MySQL biasanya memiliki mekanisme sebagai berikut:

1.      Tampilkan list data terlebih dahulu

2.      Buat sebuah link pada setiap baris data yang menuju proses update. Link tersebut memuat sebuah parameter yang di dalamnya terdapat value yang nantinya digunakan sebagai acuan dalam proses update datanya.

3.      Selanjutnya bila link tersebut diklik akan muncul form berisi data yang akan diedit.


Dalam melakukan proses update data, pada prinsipnya adalah menjalankan query update pada SQL nya.

UPDATE namaTabel SET namafield = value WHERE …

Baiklah… kita langsung saja mempraktekkan proses update data. Sebagai contoh, kita akan mengupdate data mahasiswa, dimana tabel untuk menyimpan data mahasiswanya berbentuk seperti di bawah ini

nim
varchar(5)
primary key
nama
varchar(30)

alamat
text

sex
varchar(1)

tgllahir
date


Sebagai contoh misalkan kita telah mempunyai data awal sebagai berikut

NIM
NAMA
ALAMAT
SEX
TGLLAHIR
M0001
A
SOLO
L
1979-10-20
M0002
B
JAKARTA
L
1982-09-10
M0003
C
BANDUNG
P
1980-11-07

Catatan: Untuk membuat data awal Anda bisa mengisikannya langsung ke MySQL dengan phpMyAdmin atau membuat script PHP untuk memasukkan datanya.



Sesuai dengan mekanisme di atas, maka langkah pertama kita buat terlebih dahulu script untuk menampilkan list datanya. Dalam script list ini, data akan disajikan dalam bentuk tabel dengan 6 buah kolom. Lima kolom pertama untuk menampilkan data semua fieldnya, sedangkan kolom ke-6 untuk meletakkan link untuk editnya.

list.php

<?php

mysql_connect("localhost", "root", "root");

mysql_select_db("data");

// query SQL untuk memunculkan semua mahasiswa

$query = "SELECT * FROM mhs";

$hasil = mysql_query($query);

echo "<table border='1'>";

echo "<tr><td>NIM</td>

<td>Nama Mahasiswa</td>
<td>Alamat</td>

<td>Sex</td>

<td>Tgl Lahir</td>

<td>Action</td></tr>";
while ($data = mysql_fetch_array($hasil))

{

echo "<tr><td>".$data['nim']."</td>

<td>".$data['nama']."</td>
<td>".$data['alamat']."</td>

<td>".$data['sex']."</td>

<td>".$data['tgllahir']."</td>

<td>Edit</td></tr>";

}

echo "</table>";

?>


Hasil dari script di atas akan menghasilkan tampilan sebagai berikut:
Selanjutnya, bagaimana bentuk link editnya? Link edit misalkan kita buat sebagai berikut




Dalam link edit di atas, link akan diarahkan ke script edit.php yang nantinya akan memunculkan form untuk keperluan edit data. Di dalam link tersebut terdapat parameter nim yang nantinya digunakan sebagai acuan mahasiswa manakah yang datanya akan diedit. Sebagai contoh, misalkan akan diedit mahasiswa bernim ‘M0001 maka linknya akan berbentuk


OK.. sekarang kita modifikasi sedikit script list.php di atas untuk memunculkan link editnya.

list.php

<?php

mysql_connect("localhost", "root", "root");

mysql_select_db("data");

// query SQL untuk memunculkan semua mahasiswa

$query = "SELECT * FROM mhs";

$hasil = mysql_query($query);

echo "<table border='1'>";

echo "<tr><td>NIM</td>
<td>Nama Mahasiswa</td>

<td>Alamat</td>

<td>Sex</td>

<td>Tgl Lahir</td>
<td>Action</td></tr>";

while ($data = mysql_fetch_array($hasil))

{

echo "<tr><td>".$data['nim']."</td>
<td>".$data['nama']."</td>

<td>".$data['alamat']."</td>

<td>".$data['sex']."</td>

<td>".$data['tgllahir']."</td>
<td><a href='edit.php?nim=".$data['nim']."'>Edit</a></td></tr>";

}

echo "</table>";

?>

Langkah selanjutnya kita buat script edit.php yang nantinya akan memunculkan form edit sekaligus data mahasiswa yang akan diedit. Mungkin yang menjadi pertanyaan adalah bagaimana cara memunculkan data mahasiswa yang akan diedit? Ya… jawabnya adalah dengan menggunakan query SELECT dengan nim sebagai syaratnya. Dalam hal in nim yang ada dalam link edit lah yang nantinya akan digunakan sebagai syarat.

SELECT * FROM mhs WHERE nim = …;

OK… berikut ini adalah script edit.php untuk memunculkan form dan data yang akan diedit.


edit.php

<?php

mysql_connect("localhost", "root", "root");

mysql_select_db("data");

$nim = $_GET['nim'];

$query = "SELECT * FROM mhs WHERE nim = '$nim'"; $hasil = mysql_query($query);

$data = mysql_fetch_array($hasil);

echo "<form method='post' action='update.php'>"; echo "<table>";

echo "<tr><td>NIM</td><td>:</td>

<td><input type='text' name='nim' value='".$data['nim']."'></td></tr>"; echo "<tr><td>Nama Mahasiswa</td><td>:</td>

<td><input type='text' name='nama' value='".$data['nama']."'></td></tr>"; echo "<tr><td>Alamat</td><td>:</td>

<td><textarea name='alamat'>".$data['alamat']."</textarea></td></tr>"; echo "<tr><td>Sex</td><td>:</td>

<td><input type='radio' name='sex' value='L'> Laki-Laki


<input type='radio' name='sex' value='P'> Perempuan</td></tr>"; echo "<tr><td>Tgl Lahir</td><td>:</td><td>

<select name='tgl'>";

for ($i=1; $i<=31; $i++)
{

echo "<option value='".$i."'>".$i."</option>";

}

echo "</select>

<select name='bln'>";

for ($i=1; $i<=12; $i++)

{

echo "<option value='".$i."'>".$i."</option>";
}

echo "</select>

<select name='thn'>";

for ($i=1980; $i<=1997; $i++)
{

echo "<option value='".$i."'>".$i."</option>";

}

echo "</select>
</td></tr>";

echo "</table>";

echo "<input type='submit' name='submit' value='Submit'>"; echo "</form>";

?>


Catatan:

Untuk keperluan edit data nim, script di atas menggunakan komponen textbox.

Demikian pula edit data nama mahasiswa.

Sedangkan untuk alamat, script di atas menggunakan komponen textarea.

Untuk edit jenis kelamin, kita menggunakan komponen radiobutton

Untuk edit tanggal lahir mahasiswa, kita menggunakan 3 komponen combobox yang masing-masing digunakan untuk tanggal, bulan dan tahun. Option dari masing-masing combobox digenerate otomatis dengan looping FOR.

Hasil tampilan dari script di atas ketika digunakan untuk mengedit data mahasiswa bernim ‘M0001’ adalah

Bila kita perhatikan tampilan script edit di atas, maka untuk edit jenis kelamin masih belum berfungsi. Seharusnya karena data awal mahasiswa bernim ‘M0001’ adalah berjenis kelamin ‘Laki-laki’ maka radiobutton Laki-laki terpilih (checked). Demikian pula bila jenis kelaminnya adalah Perempuan. Lantas.. bagaimana caranya mewujudkan ha ini? OK.. caranya adalah dengan menggunakan konsep IF.

Perhatikan bagian script dari edit.php di bawah ini:

echo "<tr><td>Sex</td><td>:</td>
<td><input type='radio' name='sex' value='L'> Laki-Laki

<input type='radio' name='sex' value='P'> Perempuan</td></tr>";

Nah… kita akan memodifikasi bagian script di atas menjadi seperti di bawah ini:

echo "<tr><td>Sex</td><td>:</td><td>”;

if ($data['sex'] == ”L”)

echo ”<input type='radio' name='sex' value='L' checked> Laki-Laki <input type='radio' name='sex' value='P'> Perempuan”;

else if ($data['sex'] == ”P”)

echo ”<input type='radio' name='sex' value='L'> Laki-Laki

<input type='radio' name='sex' value='P' checked> Perempuan”;

echo "</td></tr>";

Konsep dari ide script modifikasi di atas adalah jika data jenis kelamin mahasiswa adalah laki-laki (L) maka komponen radiobutton laki-laki akan dichecked. Demikian pula jika perempuan.

Setelah bagian script edit jenis kelamin diedit maka hasilnya adalah
Simpel bukan idenya? ☺

OK… next… kita perhatikan bagian edit tanggal lahir. Dalam tampilan script yang telah kita buat di atas, seharusnya tanggal lahir menyesuaikan data tanggal lahir awal sebelum diedit.

Untuk mewujudkan hal ini, pada dasarnya konsep atau idenya sama dengan jenis kelamin di atas yaitu menggunakan IF. Namun… yang menjadi masalah bagaimana caranya memecah tanggal supaya ketiga komponen combobox yang ada dapat membaca tanggal, bulan dan tahun.

OK solusi untuk memecah tanggal, pernah kita bahas sebelumnya yaitu dengan memanfaatkan function explode().

Berikut ini script edit.php yang telah dimodifikasi untuk edit tanggal lahirnya

edit.php

<?php

mysql_connect("localhost", "root", "root");

mysql_select_db("data");

$nim = $_GET['nim'];

$query = "SELECT * FROM mhs WHERE nim = '$nim'"; $hasil = mysql_query($query);

$data = mysql_fetch_array($hasil);

// memecah tanggal lahir ke dalam masing-masing unsur (tgl, bln, thn)

$pecahTgl = explode("-", $data['tgllahir']);

$tgl = $pecahTgl[2];
$bln = $pecahTgl[1];

$thn = $pecahTgl[0];

echo "<form method='post' action='update.php'>"; echo "<table>";

echo "<tr><td>NIM</td><td>:</td>

<td><input type='text' name='nim' value='".$data['nim']."'></td></tr>"; echo "<tr><td>Nama Mahasiswa</td><td>:</td>

<td><input type='text' name='nama' value='".$data['nama']."'></td></tr>"; echo "<tr><td>Alamat</td><td>:</td>

<td><textarea name='alamat'>".$data['alamat']."</textarea></td></tr>"; echo "<tr><td>Sex</td><td>:</td>

<td><input type='radio' name='sex' value='L'> Laki-Laki

<input type='radio' name='sex' value='P'> Perempuan</td></tr>"; echo "<tr><td>Tgl Lahir</td><td>:</td><td>

<select name='tgl'>";
for ($i=1; $i<=31; $i++)

{

if ($i == $tgl) echo "<option value='".$i."' selected>".$i."</option>"; else echo "<option value='".$i."'>".$i."</option>";

}

echo "</select>

<select name='bln'>";

for ($i=1; $i<=12; $i++)
{

if ($i == $bln) echo "<option value='".$i."' selected>".$i."</option>"; else echo "<option value='".$i."'>".$i."</option>";

}
echo "</select>

<select name='thn'>";

for ($i=1980; $i<=1997; $i++)

{

if ($i == $thn) echo "<option value='".$i."' selected>".$i."</option>"; else echo "<option value='".$i."'>".$i."</option>";

}

echo "</select>

</td></tr>";

echo "</table>";

echo "<input type='submit' name='submit' value='Submit'>"; echo "</form>";

?>

Nah… mudah dan simpel bukan idenya?
Sekarang yang terakhir, kita buat script untuk updatenya. Tapi… eiiit… wait a minute.. bagaimana bila NIM mahasiswanya yang diubah? Lho.. emangnya ada apa? Mungkin d pikiran Anda konsepnya sama dengan update data yang lain. Iya sih… but… coba kita lihat pemisalannya. Jika data seorang mahasiswa sebelum diubah memiliki NIM ‘M0001’. Kemudian data NIM nya diubah menjadi ‘M0002’. Bagaimana SQL nya? SQL nya adalah sebagai berikut:

UPDATE mhs SET nim = ‘M0002’ WHERE nim = ‘M0001’;

Dari SQL di atas, kita bisa melihat bahwa kita perlu NIM lama mahasiswa guna proses update tersebut. Nah… bila komponen textbox pada form edit untuk update NIM di atas kita ubah isinya, maka dengan kata lain kita akan kehilangan NIM yang lama. Nah… gimana tuh?

OK… ide untuk menanggulangi hal tersebut adalah kita buat komponen hidden input untuk menyimpan NIM yang lama (sebelum diedit). NIM lama ini nantinya kita gunakan sebagai acuan proses updatenya.

Nah.. dengan demikian kita modifikasi kembali script edit.php yang telah kita buat sebelumnya.

edit.php

<?php

mysql_connect("localhost", "root", "root");

mysql_select_db("data");

$nim = $_GET['nim'];

$query = "SELECT * FROM mhs WHERE nim = '$nim'"; $hasil = mysql_query($query);

$data = mysql_fetch_array($hasil);

$pecahTgl = explode("-", $data['tgllahir']);

$tgl = $pecahTgl[2];

$bln = $pecahTgl[1];

$thn = $pecahTgl[0];

echo "<form method='post' action='update.php'>"; echo "<table>";

echo "<tr><td>NIM</td><td>:</td>

<td><input type='text' name='nimBaru' value='".$data['nim']."'></td></tr>";
echo "<tr><td>Nama Mahasiswa</td><td>:</td>

<td><input type='text' name='nama' value='".$data['nama']."'></td></tr>"; echo "<tr><td>Alamat</td><td>:</td>

<td><textarea name='alamat'>".$data['alamat']."</textarea></td></tr>"; echo "<tr><td>Sex</td><td>:</td>

<td><input type='radio' name='sex' value='L'> Laki-Laki

<input type='radio' name='sex' value='P'> Perempuan</td></tr>"; echo "<tr><td>Tgl Lahir</td><td>:</td><td>

<select name='tgl'>";

for ($i=1; $i<=31; $i++)

{

if ($i == $tgl) echo "<option value='".$i."' selected>".$i."</option>"; else echo "<option value='".$i."'>".$i."</option>";

}

echo "</select>

<select name='bln'>";
for ($i=1; $i<=12; $i++)

{

if ($i == $bln) echo "<option value='".$i."' selected>".$i."</option>"; else echo "<option value='".$i."'>".$i."</option>";

}

echo "</select>

<select name='thn'>";

for ($i=1980; $i<=1997; $i++)
{

if ($i == $thn) echo "<option value='".$i."' selected>".$i."</option>"; else echo "<option value='".$i."'>".$i."</option>";

}
echo "</select>

</td></tr>";

echo "</table>";

echo "<input type='hidden' name='nimLama' value='".$data[‘nim’]."'>"; echo "<input type='submit' name='submit' value='Submit'>";

echo "</form>";

?>

Catatan:

Letak komponen hidden input ini bisa diletakkan di sebarang tempat di dalam form, mengingat komponen ini tidak terlihat oleh mata ☺

Nah.. dengan demikian kita sekarang bisa konsentrasi ke script updatenya. Konsepnya hanyalah menjalankan query SQL UPDATE.

update.php

<?php

mysql_connect("localhost", "root", "root");

mysql_select_db("data");

$nimLama = $_POST['nimLama'];

$nimBaru = $_POST['nimBaru'];

$nama = $_POST['nama'];

$alamat = $_POST['alamat'];

$sex = $_POST['sex'];

//  menggabung unsur tgl dalam combobox menjadi satu dalam format yyyy-mm-dd $tgllahir = $_POST['thn']."-".$_POST['bln']."-".$_POST['tgl'];

$query = "UPDATE mhs

SET nim = '$nimBaru', nama = '$nama', alamat = '$alamat', sex = '$sex', tgllahir = '$tgllahir'

WHERE nim = '$nimLama'";

$hasil = mysql_query($query);

if ($hasil) echo "Data sudah diupdate";

else echo "Data gagal diupdate";

?>

OK deh selesai proses pembuatan script updatenya.

Rabu, 24 April 2019

PENDAHULUAN "Konsep Menampilkan Data MySQL dengan PHP"

Pada  bab  sebelumnya  Anda  telah  belajar  bagaimana  konsep  menyisipkan  data  atau record ke dalam tabel database MySQL. Sekarang kita lanjutkan ke konsep bagaimana menampilkan data yang ada di database MySQL dengan script PHP.
Konsep menampilkan data dengan script PHP ini adalah menggabungkan query SELECT di SQL yang dijalankan dalam script PHP.
Konsep dasar menampilkan data dengan script PHP ini adalah
1. 2. 3.
Buat query SQL untuk menampilkan data (gunakan SELECT) Jalankan query tersebut dengan menggunakan mysql_query() di PHP Baca  data  hasil  query  tersebut  dengan  proses  fetching.  Gunakan  perintah mysql_fetch_array() di PHP. Hasil dari mysql_fetch_array() ini adalah suatu nilai dalam bentuk array asosiatif dengan nama field tabel sebagai indeksnya. Tampilkan data dari proses fetching sesuai nama field yang ada dalam array. 4 .
Langsung   saja,   dalam   pembahasan   bab  ini   akan   saya   berikan   contohnya   untuk menampilkan data semua peserta yang telah registrasi sesuai kasus yang diberikan pada Bab 17. Sehingga dalam hal ini, struktur tabelnya sama dengan kasus yang dibahas pada Bab 17.
Dalam contoh ini, kita akan mencoba menampilkan data peserta khususnya pada field Nama Peserta, Tanggal Lahir, Jenis Kelamin, Alamat, Tanggal Daftar, dan Tempat Lahir.
Langkah pertama, kita siapkan terlebih dahulu script untuk koneksi ke MySQL nya dan ke databasenya.
koneksi.php
<?php mysql_connect("localhost", "root", "root"); mysql_select_db("contoh"); ?>
Catatan: sesuaikan nama username, password dan nama database yang Anda gunakan.

Langkah kedua, kita bisa mulai membuat script untuk menampilkan datanya.
view.php
<html> <head> <title>Data Peserta</title> </head> <body> <h1>Data Peserta</h1> <table border="1"> <tr><th>Nama Lahir</th><th>Alamat</th>
Peserta</th><th>Tgl Lahir</th><th>Tempat
<th>Jenis Kelamin</th><th>Tgl Daftar</th></tr>
// letak script menampilkan data //
</table> </body> </html>
Script di atas baru membuat judul tabel untuk menampilkan datanya. Sekarang barulah kita buat script untuk menampilkan datanya.
view.php
<html> <head> <title>Data Peserta</title> </head> <body> <h1>Data Peserta</h1> <table border="1"> <tr><th>Nama Lahir</th><th>Alamat</th>
Peserta</th><th>Tgl Lahir</th><th>Tempat
<th>Jenis Kelamin</th><th>Tgl Daftar</th></tr>
<?php
include "koneksi.php";
$query = "SELECT * FROM peserta"; $hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil)) { echo "<tr><td>".$data['namaPeserta']."</td><td>".$data['tglLahir']."</td> <td>".$data['tmptLahir']."</td><td>".$data['alamat']."</td> <td>".$data['sex']."</td><td>".$data['tglDaftar']."</td></tr>"; } ?>
</table> </body> </html>
Keterangan:
Dalam melakukan proses fetching data menggunakan mysql_fetch_array() dilakukan per baris data dari hasil query. Sehingga untuk memfetching semua data hasil query, kita gunakan looping WHILE.
Selama masih ada baris data hasil query yang bisa difetch, maka looping ini akan terus berjalan dan baru akan berhenti bila sudah tidak ada baris lagi yang bisa difetch (akhir dari baris data).
Setiap kali data difetch, selanjutnya langsung ditampilkan dengan echo.
Catatan:
Bila data hasil query SELECT hanya terdiri dari sebuah baris data, maka Anda tidak perlu menggunakan looping WHILE.
Array  $data['namaPeserta']  digunakan  untuk menampilkan  data terkait  dengan  field ‘namaPeserta’ yang ada dalam tabel.
PENTING!!
Besar  kecilnya  huruf  dalam  indeks  array  harus  sama  dengan  nama  fieldnya.  Jika tulisannya berbeda, maka data tidak akan muncul.

Senin, 22 April 2019

PENDAHULUAN "Konsep INSERT Data dengan PHP"

Koneksi PHP ke MySQL

Sebelum kita membahasnya  lebih lanjut tentang inserting data, terlebih dahulu akan disinggung tentang bagaimana caranya melakukan koneksi dari PHP ke MySQL.
Perintah PHP untuk koneksi ke MySQL adalah:
mysql_connect(‘nama host’, ‘nama user’, ‘password’); mysql_select_db(‘nama db’);
Keterangan:
Nama  Host  :  nama  komputer  di  mana  MySQL  nya  berada,  kalo  berada  di komputer itu sendiri maka nama hostnya: ‘localhost’, bisa juga diberi nomor IP dari komputernya. Nama User : nama user yang memiliki hak akses ke MySQL nya Password : password dari nama user yang punya hak akses ke MySQL Nama DB : nama database yang akan dipilih
Contoh:
Berikut  ini  adalah  script  untuk  melakukan  koneksi  ke  MySQL  dengan  nama  host: localhost, user : root, password: root, dan nama database: contoh
<?php
mysql_connect('localhost', 'root', 'root');
mysql_select_db('contoh');
?>

Sebaiknya script di atas kita simpan dalam file script tersendiri, misalkan koneksi.php. Selanjutnya  script  tersebut  kita  includekan  ke  dalam  script  lain  yang  di  dalamnya terdapat query-query SQL.
Menjalankan Query SQL di PHP

Setelah kita melakukan koneksi dari PHP ke MySQL, selanjutnya kita bisa menjalankan query melalui script PHP.
Untuk menjalankan query SQL di PHP, kita gunakan perintah
mysql_query(query);
Contoh: Berikut ini contoh script PHP untuk menjalankan query SQL untuk insert data ke tabel MySQL
<?php
include "koneksi.php";
$query = "INSERT INTO namaTabel(field1, field2) VALUES(value1, value2) "; mysql_query($query);
?>
Selanjutnya akan dibahas bagaimana  mengimplementasikan  konsep inserting data ke MySQL melalui script PHP yang diintegrasikan dengan form input
Studi Kasus

Dalam studi kasus ini akan dicontohkan bagaimana cara membuat form registrasi yang di  dalamnya  terdapat  beberapa  jenis  komponen  input  seperti  textbox,  radiobutton, combo box, checkbox dan textarea.
Form  tersebut  akan  diterapkan  dalam  kasus  registrasi  peserta  suatu  seminar  secara online.
Untuk keperluan tersebut terlebih dahulu kita buat tabelnya.
Nama Tabel : peserta
Field

Keterangan:
Field  ‘informasi’ digunakan  untuk  menyimpan  keterangan  darimana  peserta  seminar mendapatkan informasi tentang seminar (dari surat kabar, televisi, atau dari teman).
Field  ‘id’  diset  bertipe  data  integer  dan  berupa  auto  increment.  Maksud  dari  auto increment   adalah   secara   otomatis   akan   muncul   nomor   urut   begitu   data   baru dimasukkan ke dalam tabel.
Field dengan tipe data DATE, harus berformat YYYY-MM-DD (tahun-bulan-tgl)
Selanjutnya kita siapkan form untuk input data peserta seminarnya
registrasi.php


Minggu, 21 April 2019

PENDAHULUAN "SQL"

Pada bab ini Anda akan diperkenalkan  dengan SQL atau structured query languange. SQL adalah suatu statement atau pernyataan atau perintah standart yang digunakan untuk keperluan administrasi database.
Ada banyak software database yang mendukung SQL ini. Software batabase  ini disebut juga SQL based DBMS (Database Management System). Beberapa di antaranya adalah MySQL, Oracle, MS. Access, MS. SQL, SQL Server dll.
Bab pengenalan SQL ini diberikan karena mulai bab selanjutnya materi kursus terkait dengan penggunaan database, dalam hal ini software database yang digunakan adalah MySQL.  Mengapa  MySQL  yang  digunakan?  Ya…  karena  MySQL  adalah  DBMS  yang bersifat free alias gratis namun kehandalannya  tidak kalah dengan DBMS yang tidak free.
Tentang Database

Database  ibaratnya  suatu  wadah  yang  digunakan  untuk  menyimpan  data.  Supaya mudah diatur data-data itu disimpan dalam sebuah tabel.
Database  ibaratnya  seperti  sebuah  lemari  kabinet.  Dalam  lemari  kabinet  terdapat beberapa laci yang di dalamnya terdapat beberapa dokumen file atau data. Laci inilah yang diumpamakan  tabel  dari database dan dokumen  file atau data yang tersimpan dalam laci ibaratnya merupakan data atau record dari database. Bisa membayangkan ya? ☺
Di dalam sebuah database bisa terdapat lebih dari satu tabel.
Pada sebuah  tabel,  terdapat  unsur yaitu kolom  dan baris, seperti  halnya  tabel-tabel umum yang Anda kenal. Kolom pada database disebut juga field, dan barisnya disebut record.
Tentang PhpMyAdmin

Terkadang  dalam  mengatur  atau pengadministrasian  database  sangatlah  repot. Misalnya  membuat  database,  membuat  tabel,  mengubah  struktur  tabel,  menyimpan data ke database, mengedit data, menghapus data dsb.
Nah…   khusus   MySQL   terdapat   software   khusus   yang   dapat   dipergunakan   untuk pengadministrasian database supaya mudah dilakukan. Software ini bernama PhpMyAdmin.  Software  ini  merupakan  web  based  software  yang  dijalankan  melalui URL:
http://localhost/phpmyadmin
Apabila Anda menggunakan  AppServ atau XAMPP  maka ketika dipanggil URL di atas akan langsung masuk ke PhpMyAdmin.
Catatan:
Sebelum  masuk  ke  PhpMyAdmin  biasanya  kita  disuruh  memasukkan  username  dan password.  Username  dan  password  ini  sesuai  dengan yang pernah kita masukkan  sewaktu proses instalasi AppServ.
Tampilan PhpMyAdmin

Membuat Database

Untuk membuat database baru dengan PhpMyAdmin, caranya adalah isikan nama database yang akan Anda buat ke dalam bagian kotak CREATE NEW DATABASE lalu klik tombol CREATE.
Sebagai contoh silakan Anda buat database dengan nama: ‘perpustakaan’
Tips: sebaiknya nama database jangan mengandung spasi.
Membuat Tabel

Setelah database dibuat, selanjutnya kita bisa membuat tabel. Untuk membuat tabel baru dalam database yang telah kita buat caranya ketikkan nama tabel yang akan dibuat pada bagian CREATE NEW TABLE ON DATABASE XXX. ‘XXX’ di sini merupakan nama databasenya. Selain itu masukkan pula jumlah fieldnya. Oleh karena itu sebaiknya sebelum proses pembuatan tabel hendaknya Anda rancang terlebih dahulu nama-nama fieldnya sesuai yang dibutuhkan.
Dalam contoh ini andaikan kita akan membuat tabel ‘kategori_buku’
Tips: seperti halnya membuat nama database, untuk nama tabel juga sebaiknya jangan gunakan spasi.

Untuk tabel ‘kategori_buku’ misalnya kita desain seperti di bawah ini:
Tabel   :  kategori_buku
Field : kode_kat nama_kat      PRIMARY KEY
           varchar(5) varchar(20)

Keterangan:
Dalam tabel ‘kategori buku’ terdapat 2 buah field yaitu ‘kode_kat’ dan ‘nama_kat’. Field ‘kode_kat’  nanti  berisi  kode  kategori  dari  buku-buku  yang  tersimpan  dalam perpustakaan dan ‘nama_kat’ merupakan penjelasan yang berisi nama kategori terkait dengan  kode  kategorinya.  Misalnya  kode  kategori  buku  ‘X10’  itu  merupakan  kode kategori untuk buku tentang ‘MATEMATIKA’.
Varchar merupakan tipe data dari fieldnya. Tipe data ini harus dimiliki setiap field yang akan dibuat. Tipe data ini menentukan jenis atau sifat data yang akan disimpan dalam field tersebut. Terdapat beberapa tipe data yang bisa dipilih, yaitu
Varchar : bila datanya berbentuk karakter (maks 255 karakter)
Int : bila datanya berbentuk bilangan bulat
Float : bila datanya berbentuk bilangan real
Text : bila datanya berbentuk karakter (size nya lebih besar dari varchar)
Date : bila datanya berbentuk tanggal (th-bln-tgl)
Time : bila datanya berbentuk waktu (jam:menit:detik)
Blob : bila datanya berupa file
     
Catatan:
Khusus untuk varchar harus diberikan lebar size yang diinginkan, misalnya suatu field bertipe varchar(5). Maksud 5 di sini adalah banyak karakter yang bisa disimpan dalam field tersebut adalah 5 buah.

PRIMARY KEY adalah fitur yang ada dalam DBMS yang dapat digunakan untuk menjamin bahwa sebuah data itu tunggal. Dalam contoh di atas PRIMARY KEY diberikan pada field ‘Kode Kategori’. Tentu kita tahu bahwa suatu kode kategori buku   itu bersifat tunggal atau tidak boleh ada kode yang sama, seperti halnya kode karyawan atau kode mahasiswa. Bila suatu field sudah dijadikan PRIMARY KEY maka tidak mungkin ada data yang  sama  pada field  tersebut.  Apabila  kita  masukkan  kode  yang  sama,  maka  akan ditolak oleh sistem.
OK… setelah kita rancang tabelnya, kita bisa membuatnya. Berikut ini caranya:

1.   Isikan nama tabel di kotak CREATE NEW TABLE ON DATABASE … Dalam kasus ini masukkan ‘kategori_buku’

2.   Masukkan jumlah field dari tabel yang akan dibuat pada NUMBER OF FIELDS Dalam kasus ini masukkan ‘2’ 3. 
Klik GO
Setelah itu masukkan nama-nama field dan tipe datanya nya pada form yang muncul berikutnya
Sebagai latihan coba Anda buat lagi tabel ‘tabel_buku’ dengan field sebagai berikut
kode_buku   varchar(10)    PRIMARY KEY
judul_buku   text
kode_kat      varchar(30)
pengarang    varchar(30)
penerbit        varchar(5)
thn_terbit      int

Tabel di atas dibuat dalam database ‘perpustakaan’. Dengan demikian terdapat 2 tabel dalam database ‘perpustakaan’.

Memasukkan Data/Record ke Tabel

Untuk memasukkan sebuah record ke tabel, perintah SQL nya adalah berikut ini
INSERT INTO nama_tabel (field1, field2, …) VALUES (data1, data2, ..);
Sebagai contoh misalkan kita akan memasukkan record kode kategori: ‘X001’ dan nama kategori: ‘MAJALAH’ ke tabel ‘kategori_buku’, maka perintahnya
INSERT INTO kategori_buku (kode_kat, nama_kat) VALUES (‘X001’, ‘MAJALAH’);
142 
Menunjukkan primary key telah dipilih pada field ‘kode_kat’

Minggu, 14 April 2019

PENDAHULUAN "Function"

Dalam suatu pengaturan organisasi,  biasanya perlu dibentuk semacam bagian-bagian kerja atau divisi yang spesifik kerjanya. Sebagai contoh misalkan dalam suatu organisasi ada divisi humas yang tugasnya spesifik mengurusi masalah kehumasan, divisi HRD yang khusus menangani masalah SDM dan pengembangannya, serta divisi-divisi yang lain.
Mengapa  dalam  pengaturan  organisasi  perlu dibentuk  divisi  atau suborganisasi  yang lebih  kecil  dalam  kinerjanya?  Ya…  tujuannya  adalah  efisiensi  kerja.  Dalam  hal  ini, seorang ketua atau manajer pastilah akan repot bila semua kegiatan harus dibebankan kepadanya. Selain itu apabila dilihat dari efektifitas, jelas akan efektif karena dengan dibentuknya suborganisasi maka seorang ketua organisasi lebih mudah memberikan komando. Sebagai contoh misalkan ketika sang ketua butuh informasi tentang kehumasan, maka dia tinggal menyuruh divisi humas untuk bekerja dan memberikan informasi. Informasi tersebut nantinya akan digunakan sang ketua untuk menentukan kebijakan organisasi dalam proses selanjutnya.
Nah..   mengadopsi   hal   di   atas,   konsep   pembentukan   suborganisasi   ini  juga  bisa diterapkan  ke  dalam  suatu  script  atau  program.  Dalam  hal  ini,  sebuah  program ibaratnya sebuah organisasi besar. Sedangkan Anda (programmer) sebagai ketua organisasinya. Dengan dibuatnya suatu subprogram yang memiliki tugas atau kerja yang spesifik maka dapat membawa ke efisiensi dan efektifitas kerja dari program atau script tersebut. Sekaligus, Anda pun akan lebih mudah dalam mengatur proses programnya.
Perhatikan contoh script berikut ini yang digunakan untuk menghitung operasi
Dalam PHP sebenarnya terdapat perintah untuk menghitung pangkat bilangan. Namun di   sini   diasumsikan   kita   tidak   menggunakan   perintah   tersebut   melainkan   harus membuat program sendiri.
Untuk menghitung n pangkat m, kita bisa menggunakan program berikut ini
$hasil = 1; for ($i = 1; $i <= m; $i++) { $hasil = $hasil * n;}
Konsep program di atas didasarkan pada ide nm  = n x n x n x … x n (sejumlah m kali perkalian)
Nah… bila program di atas kita terapkan ke dalam kasus yang kita hadapi maka script atau program PHP akan menjadi seperti ini:
<?php
// menghitung 3 pangkat 4
$hasil_a = 1; for ($i = 1; $i <= 4; $i++) { $hasil_a = $hasil_a * 3; }
// menghitung 10 pangkat 3
$hasil_b = 1; for ($i = 1; $i <= 3; $i++) { $hasil_b = $hasil_b * 10; }
// menghitung 4 pangkat 5
$hasil_c = 1; for ($i = 1; $i <= 5; $i++) { $hasil_c = $hasil_c * 4; }
// hitung hasil terakhir
$hasil = $hasil_a * $hasil_b / $hasil_c;
echo $hasil;
?>

Wah… ternyata panjang juga ya. Bila kita perhatikan  bahwa dalam script di atas ada beberapa pekerjaan yang dilakukan secara berulang-ulang yaitu ‘menghitung pangkat’. Nah…  mungkin  untuk  keperluan  efisiensi  dan  efektifitas,  bagaimana  seandainya  kita buat ‘Divisi Perpangkatan‘ dalam program yang tugasnya khusus menghitung pangkat bilangan ☺
Dengan kehadiran divisi tersebut, kita dapat dengan cepat menghitung pangkat bilangan karena   urusan   memangkatkan   bilangan   kita   serahkan   ke   divisi   tersebut.   Dalam programming, divisi ini kita namakan function atau subprogram.
OK…  sejenak  kita  tinggalkan  kasus  di  atas.  Sekarang  kita  lanjutkan  dahulu  tentang bagaimana membuat function.
Secara umum, bentuk function adalah seperti di bawah ini
function nama_function(parameter) { .. .. return variabel; }
Keterangan:
Setiap function pasti  dan harus  memiliki  nama function.  Nama function ini nantinya akan dipanggil oleh program utama bila akan digunakan. Parameter di sini sifatnya optional (boleh ada, boleh tidak). Parameter ini ibaratnya input yang akan diolah oleh function.

Sedangkan   return   variabel   merupakan   perintah   untuk   memberikan   hasil   setelah dikerjakan oleh function. Dalam hal ini perintah return variabel ini juga bersifat optional (boleh ada, boleh tidak).
Kapan return variabel ini digunakan? Dan kapan tidak perlu digunakan? return variabel ini perlu digunakan bila hasil dari pengolahan function ini akan digunakan untuk proses yang lain dalam program. Sedangkan bila hasil dari function tidak akan digunakan oleh program, maka tidak perlu diberikan perintah ini.
Contoh:
<?php
function jumlah($a, $b) {$c = $a + $b; return $c;
}
echo "Hasil penjumlahannya = ".jumlah(3, 5);
?>
Script  di  atas  menunjukkan  penggunaan  function  untuk  menjumlahkan  dua  buah bilangan. Apabila dikembangkan lagi untuk kasus menghitung (3 + 5) ditambah (7 + 6), maka scriptnya dapat berbentuk seperti di bawah ini
<?php
function jumlah($a, $b) { $c = $a + $b; return $c; }
$hasil = jumlah(3, 5) + jumlah(7, 6);
echo "Hasil penjumlahannya = ". $hasil;
?>
Atau
<?php
function jumlah($a, $b) { $c = $a + $b; return $c; }
$hasil = jumlah(jumlah(3, 5), jumlah(7, 6));
echo "Hasil penjumlahannya = ". $jumlah; ?>
Sedangkan  berikut  ini  contoh  function  yang tidak  perlu  menggunakan  return.  Script berikut ini hanya sekedar menampilkan suatu string melalui sebuah function.

<?php
function tulis($x) { echo "Anda menampilkan ". $x . "<br>"; }
tulis("Hello World.."); tulis("Apa kabar?");
?>
Nah… kembali lagi ke kasus semula, yaitu mencari hasil dari
Maka  kita   bisa  membuat  script  yang   lebih   sederhana menggunakan function
daripada sebelumnya
<?php
function pangkat($m, $n) { $hasil = 1; for ($i = 1; $i <= $n; $i++) { $hasil = $hasil * $m; } return $hasil; }
$jwb = pangkat(3, 4) * pangkat(10, 3) / pangkat(4, 5); echo "Hasilnya adalah : ".$jwb;
?>
Anda  juga  bisa  membuat  beberapa  function  dalam file  tersendiri,  semacam daftar cukup sering function.  Selanjutnya  setiap  kali  butuh  suatu  function  dalam  daftar  tersebut, meng-include-kan  saja  nama  file  nya,  lalu  panggil  nama  functionnya.  Trik  ini digunakan   oleh   para   programmer   handal   dalam   membuat   aplikasi.   Berikut   ini contohnya:
functions.php
<?php
function jumlah($a, $b) { $hasil = $a + $b; return $hasil; }
function kurang($a, $b) { $hasil = $a - $b; return $hasil; }
function kali($a, $b) { $hasil = $a * $b; return $hasil; }
function bagi($a, $b) { $hasil = $a / $b; return $hasil; }
?>
jumlah.php
<?php
include "functions.php";
$bil1 = 103; $bil2 = 192;
echo "Hasil ".$bil1." + ".$bil2. " = " . jumlah($bil1, $bil2) ;
?>

kurang.php
<?php
include "functions.php";
$bil1 = 103; $bil2 = 192;
echo "Hasil ".$bil1." - ".$bil2. " = " . kurang($bil1, $bil2) ;
?>
kali.php
<?php
include "functions.php";
$bil1 = 103; $bil2 = 192;
echo "Hasil ".$bil1." x ".$bil2. " = " . kali($bil1, $bil2) ;
?>
bagi.php
<?php
include "functions.php";
$bil1 = 103; $bil2 = 192;
echo "Hasil ".$bil1." / ".$bil2. " = " . bagi($bil1, $bil2) ; ?>
Built in Functions dalam PHP
Sebuah function dapat kita create sendiri seperti halnya di atas, namun dapat pula kita langsung gunakan karena sudah disediakan oleh PHP. Function yang sudah disediakan oleh PHP ini selanjutnya disebut built in functions.

Berikut ini beberapa built in functions yang sudah ada dalam PHP berdasarkan kategori penggunaannya.
Mathematics Built in Functions

Untuk menghitung nilai mutlak atau absolute
Contoh:
<?php $bil = -10; echo abs($bil);  // menghasilkan 10 ?>

Untuk membulatkan ke atas suatu bilangan real
Contoh:
<?php $bil = 19.1; echo ceil($bil);  // menghasilkan 20 ?>

Untuk membulatkan ke bawah suatu bilangan real 
Contoh: 
<?php $bil = 19.5; echo floor($bil);  // menghasilkan 19 ?> 

Mencari nilai terbesar dari suatu data bertipe array 
Contoh: 
<?php 
$data = array(19, 23, 11, 45); 
$max = max($data); echo "Nilai max = ".$max;  // menghasilkan 45 
?>

Mencari nilai minimum dari suatu data bertipe array 
Untuk menghasilkan bilangan bulat random antara x s/d y. 
Contoh: 
<?php 
$random = mt_rand(4, 10); // menghasilkan bilangan random antara 4 s/d 10 echo $random; 
?>

Digunakan untuk mencari hasil x pangkat y. 
Contoh: 
<?php 
$hasil = pow(4, -5); // menghitung 4 pangkat -5 echo $hasil; 
?>

Membulatkan bilangan real ke bawah bila desimal di belakang komanya kurang dari 0.5, dan  membulatkan  ke  atas  bila  desimal  di  belakang  komanya  lebih dengan 0.5. dari  atau  sama 
Contoh: 
<?php 
echo round(10.23);  // menghasilkan 10 echo round(10.6);  // menghasilkan 11 echo round(-10.2);  // menghasilkan -10 
?> 
Array Built in Functions 
Berikut  ini  beberapa  function  yang  bisa  digunakan  untuk  mengolah data  berbentuk  array
Digunakan  untuk  mensorting  beberapa  array  terkait  sekaligus.  Bisa juga  digunakan untuk mensorting dalam sebuah array saja. 

Sintaks dari penggunaan array_multisort() adalah 
array_multisort(x, metode, a, b, c, …); 
dengan ‘x’ adalah array yang digunakan sebagai acuan dalam sorting, ‘metode’ adalah metode yang digunakan sorting (ascending atau descending), dan a, b, c,… adalah array lain yang ikut disorting. 
Contoh: 
Script berikut ini akan mengurutkan data mahasiswa (NIM dan NAMA) berdasarkan NIM dari 2 buah array yang bersesuaian secara ascending. 
<?php 
$nim = array("M0197002","M0197004","M0197001","M0197008","M0197003"); 
$nama = array("Amir","Joko","Budi","Siti","Agus"); 
array_multisort($nim, SORT_ASC, $nama); 
for ($i = 0; $i <= count($nim)-1; $i++) { echo $nim[$i]. " " .$nama[$i]. "<br>"; } 
?> 
Keterangan: 
Untuk sorting secara descending, gunakan parameter SORT_DESC 

Digunakan untuk mengambil salah satu elemen dari array secara random 
Contoh: 
<?php $bil = array(3, 1, 4, 5, 2, 6); $ambilAcak = array_rand($bil); echo $ambilAcak; ?>

Digunakan untuk membalik urutan data dalam array 
Contoh: 
<?php 
$data = array("mangga","jambu","jeruk","apel"); $balik = array_reverse($data); 
foreach($balik as $index => $buah) { echo $buah. "<br>"; // menampilkan apel, jeruk, jambu, mangga }?> 

Digunakan untuk mencari nomor urut elemen tertentu dalam array (dimulai dari 0) 
Contoh: 
Script berikut ini akan mencari nomor urut elemen dari data ‘jambu’ dalam array buah 
<?php 
$data = array("mangga","jambu","jeruk","apel"); $no = array_search("jambu", $data); 
echo $no;  // akan menampilkan 1 (nomor urut elemen dalam array) 
?>
Digunakan untuk menghitung jumlah elemen yang ada dalam suatu array. 
String Built in Functions 

Digunakan untuk memecah suatu string ke dalam array berdasarkan karakter tertentu. 
Contoh: 
<?php 
$date = "20-01-2009"; 
$pecah = explode("-", $date);   // memecah string berdasarkan karater ‘-’ 
echo "Tanggal : ". $pecah[0]; // menampilkan 20
echo "Bulan : ". $pecah[1]; // menampilkan 01
echo "Tahun : ". $pecah[2]; // menampilkan 2009 
?> 

Digunakan untuk mengenkripsi (hashing) suatu string. Biasanya function ini digunakan untuk keperluan enkripsi password login ke suatu aplikasi. Hasilnya adalah suatu string yang tidak dapat dibaca dengan panjang 32 karakter 
<?php $passwordAsli = "hello"; $passwordEnkrip = md5($passwordAsli); echo $passwordEnkrip;  // menampilkan ‘5d41402abc4b2a76b9719d911017c592’ ?> 
Keterangan: 
Tidak ada function untuk membalik dari hasil md() ke string asli. 

Memformat angka dengan mengelompokkan berdasarkan ribuan. 
Contoh: 
Berikut  ini  contoh  script  untuk  menyajikan  angka  Rp.  1002372 1.002.372,- 
menjadi  bentuk Rp. 
<?php 
$harga = 1002372; $formatted = number_format($harga, 0, "", "."); echo "Harganya Rp. ".$formatted. ",-"; 
?> 
Keterangan: 
Parameter pertama dari number_format() menunjukkan bilangan yang akan diformat, parameter  kedua  menunjukkan  jumlah  digit  desimal  di  belakang  koma,  parameter ketiga  menunjukkan   tanda  pemisah   untuk   digit  desimal   di  belakang   koma,   dan parameter keempat menunjukkan tanda pemisah untuk ribuan. 
Contoh: 
Berikut ini contoh  script untuk menyajikan  bilangan  real 123456789.111111  menjadi bentuk  123.456.789,111  (tanda  pemisah  desimal  menggunakan  koma,  jumlah desimal sebanyak 3 dan menggunakan tanda titik untuk pemisah ribuan) digit 
<?php 
$bil = 123456789.111111; $formatted = number_format($bil, 3, ",", "."); echo "Bilangannya ".$formatted; 
?> 
Digunakan untuk mereplace suatu substring dengan substring lain dalam string. 
Contoh: 
Script berikut ini akan mengganti substring ‘be’ menjadi ‘bi’ 
<?php 
$kalimat = "saya ingin bebas seperti burung beo"; $replace = str_replace("be", "bi", $kalimat); 
echo $replace;  // menampilkan ‘saya ingin bibas seperti burung bio’ 
?> 
Digunakan   untuk   menghilangkan   tag   HTML   dalam   suatu   string.   Biasanya untuk keamanan dalam form guna mencegah disisipkannya tag-tag HTML yang bisa merusak halaman web. 
<?php 
$string = "<font face='verdana' size='2'>Hello world</font>"; $hilangkanTag = strip_tags($string); 
echo $hilangkanTag;  // akan menghasilkan ‘Hello World’ ?>

Digunakan untuk menghitung jumlah karakter dari suatu string 
Contoh: 
<?php 
$kata = "Hello World"; $jumKarakter = strlen($kata); 
echo $jumKarakter;   // akan menghasilkan 11 (spasi ikut dihitung) 
?> 
Digunakan untuk mengubah semua huruf penyusun string menjadi huruf kecil 
Contoh: 
<?php 
$kata = "Rosihan Ari Yuana"’; $kecil = strtolower($kata); 
echo $kecil;  // menghasilkan ‘rosihan ari yuana’ 
?>
Merupakan kebalikan strtolower() 
Menghitung jumlah substring dalam suatu string 

Contoh: 
<?php 
$lagu = "topi saya bundar, bundar topi saya, kalau tidak bundar, bukan topi saya"; $hitungTopi = substr_count($lagu, "topi"); 
echo $hitungTopi;   // akan menghasilkan 3. 
?>
Mengambil sejumlah karakter substring dari suatu string 
Contoh: 
Script berikut ini akan  mengambil  tahun angkatan  mahasiswa  dari NIM ‘M0197001’, dimana tahun angkatan terletak pada digit ke 4 dan 5 dari NIM (dalam hal ini tahun angkatannya adalah 97) 
<?php 
$nim = "M0197001"; $angkatan = substr($nim, 3, 2); 
echo $angkatan;   // menghasilkan 97 ?> 
Keterangan: 
Parameter   pertama   dari   substr()   menunjukkan   string   aslinya.   Parameter   kedua menunjukkan posisi awal substring yang akan diambil (dihitung mulai 0 dari karakter paling kiri string),  dan parameter ketiga menunjukkan  jumlah karakter  subtring yang akan diambil. 
Sehingga  dari  contoh  di  atas,  karena  posisi  awal  tahun  angkatan  itu  terletak  pada karakter  ke-3  dari  string  NIM,  dan  tahun  angkatan  ini  terdiri  dari  2  karakter  maka perintahnya adalah 
substr($nim, 3, 2) 

Minggu, 07 April 2019

PENDAHULUAN "Penggunaan Cookie"

Anda telah belajar bagaimana menggunakan SESSION untuk menyimpan data atau value supaya dikenali di beberapa script halaman web. Selain menggunakan SESSION untuk melakukan hal ini, Anda juga bisa menggunakan COOKIE.
Apa perbedaan antara SESSION dan COOKIE? Dari sisi fungsi atau kegunaan, keduanya adalah sama, namun perbedaannya adalah jika SESSION value disimpan dalam server web sedangkan value COOKIE disimpan dalam komputer client.
Memang keduanya ada plus dan minusnya. Kelebihan SESSION adalah bahwa user tidak bisa menghapus value yang tersimpan kecuali dirinya sendiri, misal dengan menutup browser atau ketika dalam proses logout. Namun kelemahannya adalah ketika tiba-tiba jaringan internetnya putus setelah proses login. Bila jaringannya putus, maka otomatis SESSION akan terhapus sehingga apabila hal ini terjadi ketika Anda mengakses halaman web yang terdapat autentifikasi maka Anda diharuskan login kembali.
Sedangkan COOKIE, value disimpan di komputer client. Dengan demikian value tersebut tetap tersimpan meskipun jaringan internetnya putus atau dalam kondisi offline. Namun kelemahannya adalah value COOKIE tersebut bisa dihapus oleh orang lain yang juga menggunakan komputer tersebut, atau mungkin user komputer tersebut telah menge- set  bahwa  browsernya  tidak  bisa  menerima  COOKIE  sehingga  COOKIE  tidak  bisa tersimpan dalam komputer client.
Sehingga apabila ditanya, lebih baik pakai yang mana? COOKIE atau SESSION? Ya… hal ini saya serahkan kepada Anda saja. Sebagai gambaran, bahwa sistem login Google Mail sepertinya  menggunakan  COOKIE,  demikian  pula  dengan  Wordpress.  Namun  banyak juga situs atau aplikasi yang menggunakan  SESSION untuk membuat sistem login ini. Saya sendiri lebih senang menggunakan SESSION ☺
Cara Menyimpan Value Ke Dalam COOKIE
Untuk menyimpan value ke dalam COOKIE caranya adalah dengan memberikan perintah berikut ini:
setcookie("nama cookie", value, expired time);
Pada perintah di atas, parameter ‘nama cookie’ bisa diisi dengan sebarang nama. Nama COOKIE  ini  seperti  halnya  Anda  memberi  nama  pada  SESSION.  Parameter  ‘value’nantinya diisi dengan value yang akan disimpan. Sedangkan parameter ‘expired time’ adalah lama waktu untuk mengatur masa berlaku COOKIE.
Catatan:
Nama COOKIE tidak boleh mengandung spasi Expired Time dihitung dalam satuan detik
Contoh:
<?php $kata = "Saya sedang belajar COOKIE"; setcookie("mycookie", $kata, time()+3600); ?>
Script di atas akan menyimpan value berupa teks ‘Saya sedang belajar COOKIE’ ke dalam COOKIE.  Bila  script  di  atas  dijalankan,  maka  kita  bisa  lihat  valuenya  dalam  COOKIE. Apabila Anda menggunakan Firefox, maka cara melihat COOKIE nya adalah:
1. 2. 3. 4.
Klik TOOLS > OPTIONS Pilih menu tab PRIVACY Klik tombol SHOW COOKIES Kemudian dicari nama situsnya, karena Anda mencobanya melalui LOCALHOST maka LOCALHOST pada site name Lalu akan tampil seperti pada gambar berikut ini
Oya…  pada  script di  atas,  parameter  ‘expired  time’  nya  diberikan  time()+3600  itu maksudnya bahwa cookie tersebut akan disimpan selama 1 jam (3600 detik). Setelah 1 jam maka cookie akan terhapus secara otomatis. Bila parameter ‘expired time’ ini tidak dituliskan maka cookie akan terhapus begitu browser ditutup, seperti halnya SESSION.
Nah…   konsep   COOKIE   yang   bisa   diatur   jangka   waktu   atau   umurnya   ini   sering dimanfaatkan oleh program-program bisnis afiliasi. Mungkin Anda pernah mendengar atau bahkan sering bahwa suatu program afiliasi X menggunakan sistem COOKIE selama 3 bulan, 9 bulan atau bahkan tahunan. COOKIE dalam bisnis afiliasi ini digunakan untuk menyimpan nomor ID dari referalnya. Bila terdapat konsumen yang membeli produk di bawah  ID  referal  seseorang  selama  usia  COOKIE  ini  masih  aktif,  maka  orang  yang memiliki ID referal tadi akan mendapatkan komisi.
Membaca Value Cookie
Setelah COOKIE tersimpan, selanjutnya kita bisa membaca valuenya. Untuk membaca value COOKIE, caranya adalah menggunakan perintah
$_COOKIE['nama cookie'];
Contoh:
<?php if isset($_COOKIE['mycookie'])
{
echo $_COOKIE['mycookie'];
} else echo "Cookie Tidak Ada"; ?>
Script di atas digunakan untuk menampilkan value dari COOKIE bernama ‘mycookie’ bila COOKIE tersebut ada (masih tersimpan dalam komputer), sedangkan bila sudah tidak ada maka tampilkan ‘Cookie Tidak Ada’.
Nah… mungkin Anda berpikir, bagaimana bila terdapat nama COOKIE yang sama lebih dari  satu  yang  tersimpan  dalam  komputer?  Bila  nama  COOKIE  yang  sama  tersebut berasal dari situs yang sama, maka sifat timpa menimpa value seperti halnya dalam variabel akan terjadi.
Contoh:
script1.php
<?php $kata = "COOKIE 1"; setcookie("mycookie", $kata, time()+3600); ?>
script2.php
<?php $kata = "COOKIE 2"; setcookie("mycookie", $kata, time()+3600); ?>
Kedua  script  di  atas  akan  melakukan  proses penyimpanan  COOKIE  sebanyak  2  kali dengan value yang berbeda namun nama COOKIE nya sama. Jika Anda jalankan script di atas  dalam  LOCALHOST  (sebagai  nama  situsnya),  maka  value  COOKIE  pertama  akan ditimpa dengan COOKIE yang kedua.
Namun… misalkan Anda punya dua situs atau server yang berbeda katakanlah A dan B, kemudian   script1.php   Anda   upload   ke  A   sedangkan   script2.php   diupload   ke   B. Selanjutnya script1.php di A dijalankan dan script2.php di B juga dijalankan. Bila diperhatikan,   maka  proses  ini  akan  menghasilkan  2  buah  COOKIE  yang  berbeda, meskipun nama COOKIE nya sama. Di sini yang membedakan adalah nama server atau situsnya.

PENDAHULUAN "Session"

Untuk  menjelaskan  tentang  SESSION  dan  kegunaannya,   saya  akan  mulai  dengan memberikan contoh visualisasi terlebih dahulu.
Misalkan kita memiliki sebuah form sebagai berikut
<form method="post" action="submit.php">
Bilangan ke-1 <input type="text" name="bil1" /><br />
Bilangan ke-1 <input type="text" name="bil1" /><br />
 <input type="submit" name="submit" value="Submit" /> </form>
Form di atas digunakan untuk memasukkan dua buah bilangan. Selanjutnya kita buat script untuk membaca kedua bilangan yang diinputkan tersebut
submit.php
<?php
$bil1 = $_POST['bil1'];
$bil2 = $_POST['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php'>Klik di sini</a>"; ?>
Apabila   kita   telah  memasukkan    dua  buah  bilangan   melalui   form,  kemudian mensubmitnya   maka  pada  script  submit.php   akan  memunculkan   kedua  bilangan tersebut dengan sukses.
Pada submit.php ini terdapat pula link menuju script lanjut.php. Dalam script lanjut.php ini, kita juga akan menampilkan kedua bilangan yang diinputkan sebelumnya.

lanjut.php
<?php
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />"; echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php'>Klik di sini</a>"; ?>
Nah… apa yang terjadi bila kita mengklik link menuju ke lanjut.php tersebut? Apakah kedua bilangan yang diinputkan tadi masih bisa terbaca nilainya? Jawabannya adalah TIDAK.   Kedua   bilangan   hanya   bisa  terbaca   pada   script   submit.php   saja,   karena submit.php adalah halaman pertama setelah pemrosesan form.
Mungkin Anda berpikiran bahwa perlu ditambahkan perintah
$bil1 = $_POST['bil1']; $bil2 = $_POST['bil2'];
pada lanjut.php. Cara ini pun juga tidak bisa untuk membaca kedua bilangan.
Trus.. bagaimana supaya dalam lanjut.php ini kedua bilangan yang diinputkan masih bisa dibaca nilainya?
Untuk mengatasi hal ini terdapat 2 solusi yang bisa digunakan, yaitu menggunakan GET method atau SESSION.

Apabila kita menggunakan GET method, maka caranya adalah menyisipkan parameter untuk   kedua   bilangan   pada   link   menuju   lanjut.php   tersebut.   Selanjutnya   dalam lanjut.php, parameter kedua bilangan ini dibaca nilainya.
submit.php
<?php
$bil1 = $_POST['bil1']; $bil2 = $_POST['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />"; echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php?bil1= ".$bil1."&bil2=".$bil2."'>Klik di sini</a>";
?>

lanjut.php
<?php
$bil1 = $_GET['bil1']; $bil2 = $_GET['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />"; echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
?>
Cara di atas akan dapat memunculkan kedua bilangan pada lanjut.php. Namun… cara ini terdapat kelemahan yaitu ditampilkannya nilai input sebagai parameter dalam URL link.
Trus… bagaimana dengan menggunakan SESSION? Ya… dengan menggunakan SESSION, kita tidak perlu menuliskan nilai input dalam URL link. Nilai input ini nantinya akan disimpan  dalam  suatu  variabel  SESSION.  Selama  browser  kita  masih  aktif  (browser belum  ditutup)  atau  sengaja  dinonaktifkan  (dihapus)  SESSION  nya,  maka  variabel SESSION ini masih terus aktif.
Nilai yang disimpan dalam variabel SESSION ini bisa dibaca atau dikenali di beberapa halaman script. Beda dengan variabel biasa. Kalau variabel biasa itu hanya dikenali pada halaman script tersebut saja.
Selanjutnya bagaimana cara menyimpan  nilai ke dalam suatu variabel  SESSION? Ya… sebelum  mulai  menyimpan,  kita  harus  mengaktifkan  SESSION  nya  terlebih  dahulu menggunakan perintah
session_start();
Setelah SESSION aktif, barulah kita bisa membuat variabel SESSION untuk menyimpan nilai. Berikut ini perintah untuk menyimpan sebuah nilai ke dalam variabel SESSION
$_SESSION['namaSession'] = value;
Nilai  yang  bisa  disimpan  dalam  SESSION  ini  bisa  berupa  bilangan,  array,  karakter maupun string.
Sehingga apabila konsep ini diterapkan pada contoh di atas, maka berikut ini adalah script submit.php yang telah dimodifikasi
submit.php
<?php
session_start();   // mengaktifkan SESSION
$bil1 = $_POST['bil1']; $bil2 = $_POST['bil2'];
// menyimpan kedua bilangan ke dalam SESSION
$_SESSION['bil1'] = $bil1; $_SESSION['bil2'] = $bil2;
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />"; echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php'>Klik di sini</a>"; ?>
Kemudian, bagaimana dengan script lanjut.php nya? Bagaimana cara menampilkan nilai kedua bilangan yang disimpan dalam SESSION? Ini dia scriptnya.
lanjut.php
<?php
session_start();
// membaca nilai dari variabel SESSION
$bil1 = $_SESSION['bil1']; $bil2 = $_SESSION['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />"; echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
?>
Keterangan: Dalam script lanjut.php di atas, kita tetap memberikan perintah session_start() karena dalam script lanjut.php ini kita masih memanfaatkan variabel SESSION.
Menghapus Variabel SESSION
Kemudian,  bagaimana  cara  menghapus  variabel  SESSION?  Cara pertama,  Anda  akan langsung   bisa   menghapus   SESSION   bila   Anda   keluar   dari   browser   (EXIT),   buka meminimize lho! Cara kedua, gunakan perintah berikut ini pada script.
session_destroy();
Dengan  perintah  tersebut,  maka  semua  variabel  SESSION  akan  terhapus.  Namun, bagaimana bila hanya ingin menghapus suatu variabel SESSION tertentu saja? Untuk hal ini, gunakan perintah unset()
unset($_SESSION['nama session']);
Penerapan SESSION
Biasanya,  SESSION  ini  digunakan  untuk  keperluan  autentifikasi  user  melalui  login. Adapun idenya adalah apabila user sukses melakukan login, maka username ini akan disimpan dalam sebuah SESSION.
Mengapa username ini harus disimpan ke dalam SESSION? Ya… dengan disimpannya username   ke   dalam   SESSION   sekaligus   bisa   digunakan   untuk   mencegah   adanya penyusup yang masuk ke aplikasi tanpa melalui login.
Lho? Kok bisa, logikanya bagaimana? Ya.. untuk mengecek ada tidaknya penyusup yang masuk ke aplikasi tanpa login, bisa hanya dengan mengecek SESSION nya. Jika penyusup tadi masuk ke aplikasi tanpa login, otomatis SESSION nya belum ada, karena SESSION baru ada ketika user login dengan sukses.