KAPITA SELEKTA KOMPUTER
Modul-6 : Teknik PHP Lanjutan
Fungsi Pemilihan Tanggal
• Teknik ini menunjukkan bagaimana pemilihan tanggal yang akan di-input dapat dilakukan melalui “kotak kombo”
• Pertama kita membuat vektor “Nama Bulan”, kemudian membuat fungsi “pilihan tanggal” yang memasukkan Nama Bulan ke dalam kotak kombo.
<?php$NAMA_BULAN = array ("","Januari",
"Pebruari", "Maret", "April","Mei","Juni", "Juli","Agustus","September", "Oktober", "November", "Desember");
function pilihan_tanggal( $nama_tg, $nama_bl, $nama_th,
$th_awal, $th_akhir, $tg_bawaan, $bl_bawaan,
$th_bawaan){ global $NAMA_BULAN;
// Tanggal print("<select
name=\"$nama_tg\">\n");
$ada_selected = FALSE; for ($tg=1; $tg <= 31; $tg++) { if ($tg_bawaan == $tg)
{ $selected = "selected";
$ada_selected = TRUE; } else $selected = "";
print("<option value=\"$tg\" $selected>$tg</option>\n");
}
if ($ada_selected == FALSE) print("<option value=\"0\" selected></option>\n");
print("</select>\n");
// Bulan print("<select name=\"$nama_bl\">\n");
$ada_selected = FALSE; for ($bl=1; $bl <= 12; $bl++) { if ($bl_bawaan == $bl)
{ $selected = "selected";
$ada_selected = TRUE; } else $selected = "";
print("<option value=\"$bl\" $selected>$NAMA_BULAN[$bl]</option>\n"); }
if ($ada_selected == FALSE) print("<option value=\"0\" selected></option>\n");
print("</select>\n"); // Tahun print("<select name=\"$nama_th\">\n");
$ada_selected = FALSE; for ($th=$th_awal; $th <= $th_akhir; $th++) { if ($th_bawaan == $th)
{ $selected = "selected";
$ada_selected = TRUE; } else $selected = "";
print("<option value=\"$th\" $selected>$th</option>\n"); }
if ($ada_selected == FALSE) print("<option value=\"0\" selected></option>\n");
print("</select>\n");}
function my_ke_tgl($tanggal)// Mengubah format yyyy-mm-dd (format MYSQL) // menjadi dd/mm/yyyy{ $y = substr($tanggal,0,4); $m = substr($tanggal,5,2); $d = substr($tanggal,8,2); return "$d/$m/$y";}
function my_ke_tgl2($tanggal)// Mengubah format yyyy-mm-dd (format MYSQL) // menjadi dd nama_bulan yyyy{ global $NAMA_BULAN; $y = (integer) substr($tanggal,0,4); $m = (integer) substr($tanggal,5,2); $d = (integer) substr($tanggal,8,2); return "$d $NAMA_BULAN[$m] $y";}
function tgl_ke_my($tg, $bl, $th){ $y = (int) $th; $m = (int) $bl; $d = (int) $tg; return sprintf("%04d-%02d-%02d", $y, $m, $d);}
?>
Mencoba Pilih Tanggal<html><head><title>Mencoba Pemilihan Tanggal</title></head><body> <?php require_once "tanggal.php"; $tahun_sekarang = (integer) date("Y"); print("Tanggal :"); pilihan_tanggal("selecttg", "selectbl", "selectth", 1900, $tahun_sekarang, 17, 8, 1945); ?> </body></html>
Mencoba Fungsi Ubah Format Tanggal
<html><head><title>Mencoba Fungsi-Fungsi Tanggal</title></head><body> <?php require_once "tanggal.php"; $tgl1 = "2007-12-30"; $tgl2 = my_ke_tgl($tgl1); echo "$tgl2 <br>"; echo my_ke_tgl2($tgl1) . "<br>"; echo tgl_ke_my(5,3,2009); ?> </body></html>
Format Tanggal Data Karyawan
<html><head><title>Memformat Tanggal</title></head><body>
<?php require_once "tanggal.php";
$server = "127.0.0.1"; $pemakai = "userphp"; $password = "php123";
$id_mysql = mysql_connect($server, $pemakai, $password); if (! $id_mysql) die("Tak dapat melakukan koneksi ke server MySQL");
$db_personalia = mysql_select_db("personalia", $id_mysql); if (! $db_personalia) die("Tak dapat mengakses database personalia");
// Bagian untuk membaca data$sql = "SELECT nip, nama, tgl_lahir FROM karyawan";$hasil = mysql_query($sql, $id_mysql);if (! $hasil) die("Salah SQL"); $nomor = 0;
print("<table width = \"80%\" border=\"1\">\n");print("<tr>\n");print("<td width=\"10%\">No</td>\n");print("<td width=\"15%\">NIP</td>\n");print("<td width=\"40%\">Nama</td>\n");print("<td width=\"35%\">Tanggal Lahir</td>\n");print("</tr>\n");
while ($baris = mysql_fetch_row($hasil)) { $nomor++; $nip = $baris[0];
$nama = $baris[1]; $tgl_lahir = $baris[2];
$data_lahir = my_ke_tgl2($tgl_lahir); print("<tr>\n"); print("<td>$nomor</td>\n"); print("<td>$nip</td>\n"); print("<td>$nama</td>\n"); print("<td>$data_lahir</td>\n");}
print("</table>\n");// Akhir pembacaan data
mysql_close($id_mysql); ?></body></html>
Menambah Data Karyawan
• Teknik berikutnya adalah membuat form untuk menambah data karyawan, dimana ada pemeriksaan terhadap nip, nama, tanggal, departemen
• apabila dikosongkan akan ada info kesalahan
<html><head><title>Menambah Karyawan</title><script type="text/javascript" src="tglvalid.js"></script><script type="text/javascript">function cekdata(){ // Cek NIP if (formtambah.textnip.value=="") { alert("NIP tidak boleh kosong");
formtambah.textnip.focus(); return false;
}
if (formtambah.textnip.value.length != 5) { alert("NIP harus berupa 5 digit");
formtambah.textnip.focus(); return false;
}
// Cek nama if (formtambah.textnama.value=="") { alert("Nama tidak boleh kosong");
formtambah.textnama.focus(); return false;
} // Cek tanggal if (formtambah.selecttg.value=="0" || formtambah.selectbl.value=="0" ||
formtambah.selectth.value=="0" ) { alert("Tanggal/Bulan/Tahun tidak boleh kosong");
formtambah.selecttg.focus(); return false;
}
if (! tglvalid(formtambah.selecttg.value, formtambah.selectbl.value, formtambah.selectth.value)) { alert("Tanggal tidak valid");
formtambah.selecttg.focus(); return false;
} // Cek departemen if (formtambah.selectdep.value=="") { alert("Departemen tidak boleh kosong");
formtambah.selectdep.focus(); return false;
}
return true;}</script></head>
<body><h1>Menambah Karyawan</h1><form name="formtambah" action="tamkar7.php" method="post" onSubmit="return cekdata()"> <table border="1" bgcolor="#99FF66"> <tr> <td>NIP</td> <td> <input name="textnip" type="text" size="5" maxlength="5"></td> </tr> <tr> <td>Nama</td> <td> <input name="textnama" type="text" size="35" maxlength="35"></td> </tr> <tr> <td>Tanggal Lahir</td> <td>
<?php require_once "tanggal.php";
$tahun_sekarang = (integer) date("Y"); pilihan_tanggal("selecttg", "selectbl", "selectth", 1900, $tahun_sekarang, 0, 0, 0);
?> </td>
</tr>
<tr> <td>Jenis Kelamin</td> <td> <input name="checkpria" type="checkbox" value="Pria" checked> Pria</td> <td> <input name="checkwanita" type="checkbox" value="Wanita"> Wanita</td> </tr> <tr> <td>Departemen </td>
<td><select name="selectdep"> <option value="" selected></option> <?php
$server = "127.0.0.1"; $pemakai = "suarga"; $password = "";
$id_mysql = mysql_connect($server, $pemakai, $password); $db_personalia = mysql_select_db("personalia", $id_mysql);
$sql = "SELECT kode_dep, nama_dep FROM departemen"; $hasil = mysql_query($sql, $id_mysql);
while ($baris = mysql_fetch_row($hasil)) { $kode_dep = $baris[0];
$nama_dep = $baris[1];
print("<option value=\"$kode_dep\">$nama_dep</option>\n"); } mysql_close($id_mysql);
?> </select> </td> </tr> <tr> <td colspan="2"><input name="buttonsimpan" type="submit"
value="Simpan"></td> </tr> </table> </form>
<?php if ($_POST["buttonsimpan"] == "Simpan")
{ // Berarti tombol Simpan diklik
// Ambil data yang dilewatkan skrip $textnip = $_POST['textnip'];
$textnama = $_POST['textnama']; $selecttg = $_POST['selecttg'];
$selectbl = $_POST['selectbl']; $selectth = $_POST['selectth']; $checkpria = $_POST['checkpria']; $selectdep = $_POST['selectdep'];
if ($checkpria == "Pria") $pria = TRUE; else $pria = FALSE;
$tgl_lahir = tgl_ke_my($selecttg, $selectbl, $selectth);
// Proses MySQL $server = "127.0.0.1"; $pemakai = "suarga"; $password = "";
$id_mysql = mysql_connect($server, $pemakai, $password); $db_personalia = mysql_select_db("personalia", $id_mysql);
$sql = "INSERT INTO karyawan " . "(nip, nama, tgl_lahir, jenis_kelamin, kode_dep) " .
"VALUES('$textnip', '$textnama', '$tgl_lahir', " . "'$pria','$selectdep')";
$hasil = mysql_query($sql, $id_mysql); if (empty($hasil)) print("Gagal menyimpan data nip='$textnip'"); else print("Data nip='$textnip' telah disimpan");
mysql_close($id_mysql); }
?></body></html>