• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI SISTEM

4.1. Lingkungan Implementasi

4.1.4. File Pendukung

Seperti yang telah diuraikan pada bagian sebelumnya, terdapat 3 file pendukung yang di include pada file config.php. Penjelasan mengenai fungsi file-file tersebut adalah sebagai berikut :

a. File mysql.lib.php

File ini berisi kode program yang berfungsi untuk melakukan koneksi dengan database dan memilih database menggunakan fungsi mysql_connect(); dan

mysql_select_db();. Kegagalan koneksi dibagi menjadi 2 jenis, yaitu gagal melakukan untuk koneksi dengan database dan gagal untuk memilih database.

Fungsi strConnect();1 akan dipanggil jika gagal melakukan koneksi dan fungsi

strSelect();2 akan dipanggil jika gagal memilih database. Kode program untuk melakukan koneksi dan fungsi-fungsi yang dimaksud adalah sebagai berikut:

Kode program untuk koneksi database & memilih tabel

$connect = mysql_connect($dbhost, $dbuser, $dbpass) or die(strConnect()); $dbselect = mysql_select_db($dbname, $connect) or die(strSelect());

Fungsi strConnect(); & fungsi strSelect(); function strConnect() { // tampilan gagal koneksi

global $images; ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>MySQL Error - Koneksi GAGAL</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head> <body><center><p><img src=<?=$images?>/under.gif width=263 height=232></p> <span style=font-family:verdana;font-size=12px;font-weight:bold;color:red> <p>Mysql ERROR</p>Gagal melakukan koneksi dengan database</span></center> </body></html>

<?php }

function strSelect() { // tampilan gagal memilih database global $images;

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head>

<title>MySQL Error - Database Tidak Dapat Dipilih</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head>

<body>

<center><p><img src=<?=$images?>/under.gif width=263 height=232></p> <span style=font-family:verdana;font-size=12px;font-weight:bold;color:red> <p>Mysql ERROR</p>Database tidak dapat dipilih</span></center>

</body></html> <?php }

Gambar 4.2a – Output gagal koneksi Gambar 4.2b – Output gagal memilih database

1

Fungsi akan menampilkan pesan error seperti pada gambar 4.2a

2

b. File session.lib.php

Dalam file ini terdapat 2 bagian utama yaitu definisi session atau variabel yang bersifat global dan definisi variabel yang diperoleh baik dari hasil pemrosesan data menggunakan standar input ($_POST) maupun hasil dari

QUERY_STRING ($_GET). Pada umumnya session menyimpan variabel-variabel yang digunakan untuk keperluan autentikasi pengguna, untuk dapat menggunakannya digunakan fungsi session_start();.

Jika user melakukan proses login, maka akan request login pada

QUERY_STRING akan diproses pada file ini dengan mengidentifikasi variabel input

dari form login berupa $_POST[`username`], $_POST[`password`] dan

$_POST[`level`]. Apabila login berhasil, maka user akan di-redirect ke halaman kewenangan masing-masing user sesuai dengan level aksesnya.

File session juga akan memproses request logout oleh user, dimana tabel

session akan di-update, nilai variabel-variabel global ($_SESSION) akan diset ke kondisi semula menggunakan fungsi resetSession(); dan halaman di-redirect

ke halaman utama (index.php).

Kode program file session.lib.php session_start();

if (!isset($_SESSION ['login'])) { resetSession(); } if (empty($_GET['load'])) {

$load = (empty($_POST['load'])) ? "main" : $_POST['load']; } else { $load = $_GET['load']; }

if (!isset($_REQUEST['sysload'])) {$sysload = $load.".php"; } else { $sysload = $_REQUEST['sysload'];$load = "modules/".$sysload;

$sysload = "modules/".$sysload.".php";} $load = $load.".php"; $_SESSION['sysload'] = $load; if (isset($_REQUEST['login'])) { $username = $_POST['username']; $password = $_POST['password']; $arrayLevel = explode(".", $_POST['level']);

$level = $arrayLevel[0]; $levelName = $arrayLevel[1]; if ($level == 1) { $table = 'admin'; $id = 'id'; }

else if ($level == 2) { $table = 'guru'; $id = 'idGuru'; $where = "AND aktif = 'Y'";}

else if ($level == 3) { $table = 'karyawan'; $id = 'kid'; $where = "AND aktif = 'Y'";}

else if ($level == 4) { $table = 'siswa'; $id = 'nis'; $where = "AND aktif = 'Y'";}

else if ($level == 5) { $table = 'alumni'; $id = 'raid'; $where = "AND aktif = 'Y'"; }

$sql = mysql_query("SELECT ".$id.", uname, email FROM ".$table." WHERE uname = BINARY '".$username."' AND passwd = '".md5($password)."' ".$where."");

if (mysql_num_rows($sql) == 0) { global $images_icon; $_SESSION['pesanLogin'] = "<span style=\"color:red;\"><img

src=\"".$images_icon."/warning.gif\" width=\"16\" height=\"16\" align=\"absmiddle\"> Data tidak ditemukan</span>";

header("Location:index.php"); } else {

$_SESSION['login'] = 1;

$_SESSION['userId'] = mysql_result($sql, 0, $id); $_SESSION['uname'] = mysql_result($sql, 0, 'uname');

$_SESSION['level'] = $level;

$_SESSION['table'] = $table;

$_SESSION['sesid'] = session_id();

$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];

$sql2 = mysql_query("UPDATE ".$table ." SET lastIP = '".$_SESSION['ip']."' WHERE uname = '".$username."'"); $ctime = time();

mysql_query("UPDATE session SET uname = '".$_SESSION['uname']."', time = '".$ctime."', host = '".$_SESSION['ip']."',

guest = '0' WHERE uname = '".$_SESSION['sesid']."'") or header("Location:index.php");

if ($level == 1) {header("Location:admin.php?sysload=home");} else if ($level == 2) {header("Location:index.php?load=homeguru");} else if ($level == 3) {header("Location:index.php?load=homekaryawan");} else if ($level == 4) {header("Location:index.php?load=homesiswa");} else {header("Location:index.php?load=homealumni");}}}

// proses logout

if (isset($_REQUEST['logout'])) {

mysql_query("UPDATE ".$_SESSION['table'] ." SET tglLogin = NOW() WHERE uname = '".$_SESSION['uname']."'");

mysql_query("DELETE FROM session

WHERE uname = '".$_SESSION['uname']."'") or die(mysql_error()); resetSession();header("Location:index.php");}

function resetSession() {

$_SESSION['login'] = 0; $_SESSION['userId'] = ""; $_SESSION['uname'] = ""; $_SESSION['level'] = "";

$_SESSION['table'] = ""; $_SESSION['sesid'] = session_id();

$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];

$_SESSION['infodaftar'] = ""; }

c. File standar.lib.php

File ini berisi fungsi-fungsi yang digunakan pada modul-modul web yang dikembangkan. Penjelasan fungsi tersebut akan diuraikan sebagai berikut:

Nama Fungsi : isLoggedIn function isLoggedIn() {

if ($_SESSION['login'] == 1) return isset($_SESSION['login'])

&& $_SESSION['userId'] && $_SESSION['uname']

&& !empty($_SESSION['level']) && $_SESSION['table'] && ($_SESSION['sesid']) == session_id()

&& ($_SESSION['ip']) == $_SERVER['REMOTE_ADDR']; }

Fungsi ini digunakan untuk mengecek variabel-variabel pada session jika nilai variabel login bernilai 1 yang berarti user telah melakukan proses login. Variabel-variabel yang dimaksud sebagai syarat untuk status login user tersebut. Fungsi ini dipanggil pada setiap modul web yang membutuhkan autentikasi user.

Nama Fungsi : superAdmin function superAdmin() {

$userId = $_SESSION['userId']; $uname = $_SESSION['uname'];

$sql = mysql_query("SELECT nama, superadmin FROM admin WHERE id = '".$userId."' AND uname = '".$uname."'"); $res = mysql_fetch_object($sql);

if ($res->superadmin == 0) { return 0; } else { return 1; }}

Fungsi ini digunakan untuk mengecek apakah admin yang login adalah berstatus superadmin atau bukan. Untuk itu dilakukan pengecekan terhadap atribut admin (superadmin) yang di query dari tabel admin. Jika atribut superadmin bernilai 1, fungsi mengembalikan nilai 1, sebaliknya fungsi akan mengembalikan nilai 0.

Nama Fungsi : myModul function myModul() {

global $javascript, $images_modul, $www_root, $dir_root;

echo "<script language=\"JavaScript\" type=\"text/javascript\">\n" ."if (navigator.appVersion.indexOf(\"MSIE\") != -1) { \n"

."document.write('\<div id=\"overDiv\" style=\"position:absolute; visibility:hide; z-index:auto; filter:

alpha(opacity=85); >\<\/div\>');\n"."}\n"."</script>\n"."<div id=\"overDiv\" style=\"position:absolute;z-index:1;\"></div>\n"

."<script language=\"JavaScript\" src=\"".$javascript."/overlib.js\" type=\"text/javascript\">

</script>\n"; openMainTable();judulBlok("Administrator Modul"); echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\"

cellpadding=\"0\">\n"."<tr bgcolor=\"#FFFFFF\"> \n";echo "<td width=\"13%\"

align=\"center\"><a href=\"".$www_root."/admin.php?sysload=home\" onMouseOut=\"nd()\" onMouseOver=\"return overlib('Halaman Utama Admin', CAPTION,

'<span>Administrator</span>')\">\n"

."<img src=\"".$images_modul."/adminhome.gif\" width=\"25\" height=\"25\" border=\"0\"></a><br>\n"."<a title=\"Halaman Utama Admin\"

href=\"".$www_root."/admin.php?sysload=home\">Home</a></td>\n"; if (superAdmin() == 1) {

$dir = dir($dir_root."/admin");$n = 0;

while ($modul = $dir->read()) {if ($modul != "." AND $modul != ".." AND $modul != "Thumbs.db" AND $modul != "index.html") {$file = explode(".",$modul);

$title = explode("_",$file[0]);if ($title[1] == "admin") {

include $dir_root."/admin/mod_admin.php"; }if ($title[1] == "database") { include dir_root."/admin/mod_database.php"; }if ($title[1] == "group") { include

$dir_root."/admin/mod_group.php"; }if ($title[1] == "setting") { include $dir_root."/admin/mod_setting.php";}

echo "<td width=\"13%\" align=\"center\"><a

href=\"".$www_root."/admin.php?sysload=".$file[0]."\" onMouseOut=\"nd()\" onMouseOver=\"return overlib('".$deskripsi."', CAPTION,

'<span>".ucfirst(trim($title[1]))."</span>')\">\n"."<img src=\"".$images_modul."/".$icon."\" width=\"25\"

height=\"25\" border=\"0\"></a><br>\n"."<a title=\"".$deskripsi."\" href=\"".$www_root."/admin.php?sysload=".$file[0]."\">

".ucfirst(trim($title[1]))."</a></td>\n"; if ($n == 8) { echo "</tr><tr>"; $n = 0;

} else { $n++; }} } // end while }

echo "</tr></table>\n";echo "<hr size=\"1\" color=\"#CCCCCC\" noshade>"; echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\"

cellpadding=\"0\">\n"."<tr bgcolor=\"#FFFFFF\"> \n"; $uname = $_SESSION['uname'];$ID = $_SESSION['userId'];

$r = mysql_fetch_object(mysql_query("SELECT id, uname, superadmin FROM admin WHERE uname = '".$uname."'"));

$superadmin = $r->superadmin;$uname = $r->uname;$ids = $r->id; if ($superadmin == 1) { $result = mysql_query("SELECT nama,

deskripsi, pathLink, imgLink FROM modul_group WHERE aktif = 'Y' ORDER BY groupID"); }else {

$strSql = 'SELECT `modul_group`.*, `admin`.`id`'. ' FROM `admin`' . ' LEFT JOIN `modul_admin` ON `admin`.`id` = `modul_admin`.`id`'

. ' LEFT JOIN `modul_group` ON modul_admin`.`groupID` = `modul_group`.`groupID` ' . ' WHERE ((`modul_admin`.`id` = \''.$ids.'\') AND (`admin`.`id` = `modul_admin`.`id`) AND (`modul_group`.`aktif` = \'Y\')) ORDER BY `modul_group`.`groupID`';

$auth = 1;}

$m = 0;$jumrec = mysql_num_rows($result); while ($row = mysql_fetch_object($result)) {

if ($superadmin == 1 || $auth == 1) { $j = round(100/8); echo "<td width=\"$j%\" align=\"center\"><a

href=\"".$www_root."/admin.php?sysload=".$row->pathLink."\"

onMouseOut=\"nd()\" onMouseOver=\"return overlib('".$row->deskripsi."', CAPTION, '<span>".$row->nama."</span>')\">\n"

."<img src=\"".$images_modul."/".$row->imgLink."\" width=\"25\" height=\"25\" border=\"0\"></a><br>\n"."<a title=\"".$row->deskripsi."\"href=\"".$www_root."/ admin.php?sysload=".$row->pathLink."\">".trim($row->nama)."</a></td>\n";

if ($m == 7) { echo "</tr><tr>"; $m = 0; }else { $m++; }}} // end while

echo "<td align=\"center\" width=\"13%\"><a href=\"".$www_root."/index.php?logout\" onmouseout=\"nd()\"

onmouseover=\"return overlib('Jangan lupa untuk selalu Logout setelah melakukan maintenance data', CAPTION, '<span>Logout</span>')\"><img src=\"".$images_modul."/logout.gif\" width=\"25\" height=\"25\"

border=\"0\"></a><br>\n""<a title=\"Jangan lupa untuk selalu Logout setelah melakukan maintenance data\" href=\"".$www_root."/index.php?logout\">Logout</a> </td>\n"."</tr></table>\n";closeMainTable();}

Fungsi ini digunakan pada setiap modul web admin untuk menampilkan icon dan link menuju modul tersebut. Sebelumnya akan dicek status admin apakah superadmin atau bukan. Jika superadmin, maka fungsi akan menampilkan icon dan link modul untuk superadmin. Jika bukan, fungsi akan memanggil fungsi

cekAuth(); untuk mengetahui apakah modul yang akan ditampilkan merupakan kewenangan admin yang bersangkutan. Icon dan link default yang akan tampil adalah Home dan Logout. Hasil tampilan fungsi ini dapat dilihat pada Bab III Gambar 3.56. (kotak warna merah dan biru)

Nama Fungsi : cekAuth function cekAuth($modul) {

$strSql = 'SELECT `modul_group`.*, `admin`.`id`'

. ' FROM `admin`'. ' LEFT JOIN `modul_admin` ON `admin`.`id` = `modul_admin`.`id`' . ' LEFT JOIN `modul_group` ON `modul_admin`.`groupID` = `modul_group`.`groupID` ' . ' WHERE ((`modul_admin`.`id` = \''.$_SESSION['userId'].'\')

AND (`admin`.`id` = `modul_admin`.`id`) AND (`modul_group`.`file` = \''.$modul.'\') AND (`modul_group`.`aktif` = \'Y\')) ORDER BY `modul_group`.`groupID`';

$row = mysql_num_rows(mysql_query($strSql)); if ($row == 1) { return 1; } else { return 0; }}

Fungsi ini digunakan untuk mengecek kewenangan admin terhadap modul web yang terdapat pada tabel modul_group. Pengecekan ini melibatkan tabel modul_admin yang berisi data admin yang bersangkutan dan id modul (groupID) yang dimiliki oleh admin tersebut.

Nama Fungsi : cekArray() function cekArray($array) {

$jml = count($array);$tmp = ""; for ($i=0; $i < $jml; $i++) { if (!empty($array[$i])) $tmp = $tmp . $array[$i]; }return empty($tmp);}

Fungsi digunakan untuk proses validasi jawaban polling.

Nama Fungsi : GetLevel() function GetLevel($default = 0) {

$sql = "SELECT * FROM level WHERE aktif='Y' ORDER BY level";

$has = mysql_query($sql) or die ("Query GAGAL. ".mysql_error().". Error number : ".mysql_errno()); $strtmp = "";

for ($i=0; $i < mysql_num_rows($has); $i++) { $strval = mysql_result($has, $i, "level"); $strnm = mysql_result($has, $i, 'nama');

$strtmp = (isset($default) and ($strval == $default))

? $strtmp."<option value=\"".$strval."\" selected>".$strnm."</option>" : $strtmp."<option value=\"".$strval."\">".$strnm."</option>";

} return ($strtmp);}

Fungsi ini digunakan untuk mengisi nilai dropdown (lihat Gambar 4.3) pilihan level pada blok login.

Gambar 4.3 – Output Blok Login Nama Fungsi : getGuru() function GetGuru($default = 0) {

$sql = "SELECT * FROM guru WHERE aktif='Y' ORDER BY idGuru";

$has = mysql_query($sql) or die("Query GAGAL. ".mysql_error().". Error number : ".mysql_errno()); $strtmp = "<option value=\"\"></option>";

for ($i=0; $i < mysql_num_rows($has); $i++) { $strval = mysql_result($has, $i, 'idGuru'); $strnm = mysql_result($has, $i, 'nama');

$strtmp = (isset($default) and ($strval == $default))

? $strtmp."<option value=\"".$strval."\" selected>".$strnm."</option>" : $strtmp."<option value=\"".$strval."\">".$strnm."</option>";

} return ($strtmp); }

Fungsi ini digunakan untuk mengisi nilai dropdown (lihat Gambar 4.4) pilihan guru pada form tambah/edit untuk modul Mapel Aspek, modul Jadwal dan modul Kelas.

Gambar 4.4 – Ouput Fungsi GetGuru Nama Fungsi : GetTgsAjar() function GetTgsAjar($default = 0, $kodeKls) {

$sql = "SELECT a.idTgsAjar, b.nama, b.kodeGuru, c.namaMapel, a.kodeKls FROM tugas_mengajar a LEFT JOIN mapel c ON a.idMapel = c.idMapel LEFT JOIN guru b ON a.idGuru = b.idGuru

LEFT JOIN kelas e ON a.kodeKls = e.kodeKls LEFT JOIN tingkat f ON e.idTingkat = f.idTingkat WHERE a.kodeKls = '".$kodeKls."' ORDER BY c.namaMapel";

$has = mysql_query($sql) or die("Query GAGAL. ".mysql_error().". Error number : ".mysql_errno()); $strtmp = "<option value=\"\"></option>";

for ($i=0; $i < mysql_num_rows($has); $i++) { $strval = mysql_result($has, $i, 'idTgsAjar'); $strnm = mysql_result($has, $i, 'nama'); $strmp = mysql_result($has, $i, 'namaMapel'); $strkk = mysql_result($has, $i, 'kodeKls'); $strkg = mysql_result($has, $i, 'kodeGuru');

$strtmp = (isset($default) and ($strval == $default))

".$strkg."</option>" : $strtmp."<option value=\"".$strval."\">".$strmp." - ".$strnm." - ".$strkg."</option>"; } return ($strtmp); }

Fungsi ini digunakan untuk mengisi nilai dropdown (lihat Gambar 4.5) pilihan tugas mengajar guru pada form tambah/edit jadwal.

Gambar 4.5 – Ouput Fungsi GetTgsAjar Nama Fungsi : GetStatusPegawai() function GetStatusPegawai($default = 0) {

$sql = "SELECT spID,kode FROM status_pegawai ORDER BY spID";

$has = mysql_query($sql) or die("Query GAGAL. ".mysql_error().". Error number : ".mysql_errno()); $strtmp = "<option value=\"\"></option>";

for ($i=0; $i < mysql_num_rows($has); $i++) { $strval = mysql_result($has, $i, 'spID'); $strnm = mysql_result($has, $i, 'kode');

$strtmp = (isset($default) and ($strval == $default))

? $strtmp."<option value=\"".$strval."\" selected>".$strnm."</option>" : $strtmp."<option value=\"".$strval."\">".$strnm."</option>";

} return ($strtmp); }

Fungsi ini digunakan untuk mengisi nilai dropdown (lihat Gambar 4.6) pilihan status pegawai pada form tambah/edit guru atau karyawan.

Gambar 4.6 – Ouput Fungsi GetStatusPegawai Nama Fungsi : GetTingkat()

function GetTingkat($default = 0) {

$sql = "SELECT idTingkat, namaTingkat FROM tingkat ORDER BY idTingkat"; $has = mysql_query($sql) or die("Query GAGAL. ".mysql_error().". Error number : ".mysql_errno()); $strtmp = "<option value=\"\"></option>";

for ($i=0; $i < mysql_num_rows($has); $i++) { $strval = mysql_result($has, $i, 'idTingkat'); $strnm = mysql_result($has, $i, 'namaTingkat'); $strtmp = (isset($default) and ($strval == $default))

? $strtmp."<option value=\"".$strval."\" selected>".$strnm."</option>" : $strtmp."<option value=\"".$strval."\">".$strnm."</option>";

} return ($strtmp); }

Fungsi ini digunakan untuk mengisi nilai dropdown (lihat Gambar 4.7) pilihan tingkat pada form tambah/edit mata pelajaran dan form tambah kelas.

Gambar 4.7 – Ouput Fungsi GetTingkat Nama Fungsi : GetKelas() function GetKelas($default = 0,$tingkat) {

$strWhere1 = ($tingkat == '1') ? "idTingkat = 1 AND " : ""; $strWhere2 = ($tingkat == '2') ? "idTingkat = 2 AND " : ""; $strWhere3 = ($tingkat == '3') ? "idTingkat = 3 AND " : "";

$sql = "SELECT * FROM kelas WHERE ".$strWhere1."".$strWhere2."".$strWhere3." aktif = 'Y' ORDER BY kodeKls ASC";$has = mysql_query($sql) or die("Query GAGAL.

".mysql_error().". Error number : ".mysql_errno());$strtmp = "<option value=\"\"></option>";for ($i=0; $i < mysql_num_rows($has); $i++) { $strval = mysql_result($has, $i, 'kodeKls');

$strnm = mysql_result($has, $i, 'namaKls');

$strtmp = (isset($default) and ($strval == $default))

? $strtmp."<option value=\"".$strval."\" selected>".$strnm."</option>" : $strtmp."<option value=\"".$strval."\">".$strnm."</option>";

} return ($strtmp); }

Fungsi ini digunakan untuk mengisi nilai dropdown (lihat Gambar 4.8) pilihan kelas pada form tambah/edit siswa dan daftar siswa.

Gambar 4.8 – Ouput Fungsi GetKelas Nama Fungsi : GetRuang() function GetRuang($default = 0) {

$sql = "SELECT idRuang, namaRuang FROM ruang ORDER BY idRuang";

$has = mysql_query($sql) or die("Query GAGAL. ".mysql_error().". Error number : ".mysql_errno());$strtmp = "<option value=\"\"></option>";

for ($i=0; $i < mysql_num_rows($has); $i++) { $strval = mysql_result($has, $i, 'idRuang'); $strnm = mysql_result($has, $i, 'namaRuang');

$strtmp = (isset($default) and ($strval == $default))

? $strtmp."<option value=\"".$strval."\" selected>".$strnm."</option>" : $strtmp."<option value=\"".$strval."\">".$strnm."</option>";

} return ($strtmp); }

Fungsi ini digunakan untuk mengisi nilai dropdown (lihat Gambar 4.9) pilihan ruang pada form tambah/edit jadwal.

Nama Fungsi : GetCatGaleri() function GetCatGaleri($default = 0) {

$sql = "SELECT * FROM foto_album ORDER BY galId";

$has = mysql_query($sql);// or die("Query GAGAL. ".mysql_error().". Error number : ".mysql_errno()); $strtmp = ""; for ($i=0; $i < mysql_num_rows($has); $i++) { $strval = mysql_result($has, $i, "galId");

$strnm = mysql_result($has, $i, 'nama');

$strtmp = (isset($default) and ($strval == $default))

? $strtmp."<option value=\"".$strval."\" selected>".$strnm."</option>" : $strtmp."<option value=\"".$strval."\">".$strnm."</option>";

} return ($strtmp); }

Fungsi ini digunakan untuk mengisi nilai dropdown (lihat Gambar 4.10) pilihan album foto pada form edit foto.

Gambar 4.10 – Ouput Fungsi GetCatGaleri Nama Fungsi : GetCatGaleriAlumni() function GetCatGaleriAlumni($default = 0) {

$sql = "SELECT * FROM alumni_foto_album WHERE raid = '".$_SESSION['userId']."' ORDER BY raidGalId"; $has = mysql_query($sql);// or die("Query GAGAL. ".mysql_error().". Error number : ".mysql_errno());

$strtmp = "";

for ($i=0; $i < mysql_num_rows($has); $i++) { $strval = mysql_result($has, $i, "raidGalId"); $strnm = mysql_result($has, $i, 'nama');

$strtmp = (isset($default) and ($strval == $default))

? $strtmp."<option value=\"".$strval."\" selected>".$strnm."</option>" : $strtmp."<option value=\"".$strval."\">".$strnm."</option>";

} return ($strtmp); }

Fungsi ini digunakan untuk mengisi nilai dropdown (lihat Gambar 4.11) pilihan album foto alumni pada form edit foto alumni.

Gambar 4.11 – Ouput Fungsi GetCatGaleriAlumni Nama Fungsi : GetCatArtikel()

function GetCatArtikel($default = 0) {

$sql = "SELECT * FROM artikel_kategori WHERE aktif = 'Y' ORDER BY katId"; $has = mysql_query($sql) or die ("Query GAGAL. ".mysql_error().". Error number : ".mysql_errno()); $strtmp = ""; for ($i=0; $i < mysql_num_rows($has); $i++) { $strval = mysql_result($has, $i, "katId");

$strnm = mysql_result($has, $i, 'nama');

$strtmp = (isset($default) and ($strval == $default))

? $strtmp."<option value=\"".$strval."\" selected>".$strnm."</option>" : $strtmp."<option value=\"".$strval."\">".$strnm."</option>";

} return ($strtmp); }

Fungsi ini digunakan untuk mengisi nilai dropdown (lihat Gambar 4.12) pilihan kategori artikel pada form tambah/edit artikel.

Gambar 4.12 – Ouput Fungsi GetCatArtikel Nama Fungsi : title()

function title($str) {

return preg_replace('/\b(\w)(.+?)\b/e',"strtoupper('\\1').('\\2')",$str);}

Fungsi ini digunakan untuk mengubah string di awal kata menjadi huruf capital. Fungsi ini biasanya digunakan untuk menangani input berupa judul artikel, nama, nama ayah, nama ibu, tempat lahir dan lain-lain.

Nama Fungsi : menuKelas() function menuKelas($kelas,$url) {

global $PHP_SELF;

$sqlKls = mysql_query("SELECT * FROM kelas ORDER BY kodeKls"); $i = 1; echo "<div align=\"center\">"; while ($res = mysql_fetch_object($sqlKls)) { if ($kelas == $res->kodeKls) { echo "<b>".$res->kodeKls."</b>";}

else { echo "<a href=\"".$PHP_SELF."?".$url."&kelas= ".$res->kodeKls."\">".$res->kodeKls."</a>"; }

if ($i <= mysql_num_rows($sqlKls)-1) { echo " . "; $i++; }

echo " "; }echo "</div>"; echo "<hr size=\"1\" noshade color=\"#CCCCCC\">\n";}

Fungsi ini digunakan untuk menampilkan daftar menu kelas (lihat Gambar 4.13) pada daftar siswa.

Gambar 4.13 – Ouput Fungsi menuKelas Nama Fungsi : menuMapel() function menuMapel($kelas,$mp,$url) {

global $PHP_SELF;

$sqlMp = mysql_query("SELECT a.idMapel,a.namaMapel

FROM kelas k LEFT JOIN mapel a ON a.idTingkat = k.idTingkat WHERE k.kodeKls = '".$kelas."'");

$i = 1;

$k = (mysql_num_rows($sqlMp)+1) / 3; echo "<div align=\"center\">";

while ($res = mysql_fetch_object($sqlMp)) {

if ($mp == $res->idMapel) { echo "<b>".$res->namaMapel."</b>"; } else { echo "<a href=\"".$PHP_SELF."?".$url."&kelas=

".$kelas."&mp=".$res->idMapel."\">".$res->namaMapel."</a>"; } if (!($i%$k)) { echo "<br>"; }

if ($i <= mysql_num_rows($sqlMp)-1 AND ($i%$k) AND $i != $k) { echo " . "; } $i++; echo " "; } echo "</div>";

echo "<hr size=\"1\" noshade color=\"#CCCCCC\">\n"; }

Fungsi ini digunakan untuk menampilkan daftar menu mata pelajaran (lihat Gambar 4.14) pada daftar nilai siswa.

Gambar 4.14 – Ouput Fungsi menuMapel Nama Fungsi : userInfo() function userInfo() {

global $images_icon, $translateKal; $nama = $_SESSION['uname'];

$sql = mysql_query("SELECT DATE_FORMAT(tglLogin,'%W, %d.%b.%Y') as

tgl,DATE_FORMAT(tglLogin,'%H:%i:%s') as jam,UNIX_TIMESTAMP(tglLogin) as hour FROM ".$_SESSION['table']."

WHERE uname = '".$_SESSION['uname']."'") or die(mysql_error()); $show = mysql_fetch_object($sql);

$hari = strtr($show->tgl,$translateKal); $skrg = time();

$waktu = $skrg - $show->hour; if ($waktu <= 86400)

$last = "<span style=\"font-size:9px;\">[ Kurang dari 24 jam lalu ]</span>"; else if ($waktu <= 259200)

$last = "<span style=\"font-size:9px;\">[ Kurang dari 3 hari ]</span>"; else if ($waktu <= 604800)

$last = "<span style=\"font-size:9px;\">[ Kurang dari 1 minggu ]</span>"; else if ($waktu <= 1814400)

$last = "<span style=\"font-size:9px;\">[ Kurang dari 3 minggu ]</span>"; else $last = "<span style=\"font-size:9px;\">[ Lebih dari 3 minggu ]</span>"; $s = array(strtr($show->tgl,$translateKal),$show->jam,$last);

return $s; }

Fungsi ini digunakan untuk menampilkan informasi login user, berupa informasi login terakhir user. Fungsi akan menghitung selisih waktu saat mengakses website dengan data tglLogin user tersebut. Dari hasil selisih tersebut kemudian dilakukan pengecekan dalam 4 kondisi, yaitu untuk waktu 1 hari (24jam), 3 hari, 1 minggu dan 3 minggu). Selanjutnya fungsi akan mengembalikan nilai dalam bentuk array yang berisi, tanggal, jam dan keterangan hasil dari kondisi yang dipenuhi ($last).

Nama Fungsi : getThnSem() function getThnSem() {

$sql_thn = mysql_query("SELECT a.idThn,a.namaThn,b.idSem,

b.namaSem FROM tahun a LEFT JOIN semester b ON b.idThn = a.idThn

WHERE a.aktif = 'Y' AND b.aktif = 'Y'"); if (@mysql_num_rows($sql_thn) > 0) { $idThn = mysql_result($sql_thn,0,'idThn');

$namaThn = mysql_result($sql_thn,0,'namaThn'); $idSem = mysql_result($sql_thn,0,'idSem'); $namaSem = mysql_result($sql_thn,0,'namaSem'); $data = array($idThn,$namaThn,$idSem,$namaSem); return $data; } else {return 0;}}

Fungsi ini digunakan untuk mengembalikan nilai balik berupa data tahun pelajaran dan semester dengan status aktif dalam bentuk array. Data diperoleh dengan melakukan query yang melibatkan 2 tabel tahun dan semester dengan aturan untuk tahun pelajaran dan semester berstatus aktif. Jika query berhasil, maka data idThn, namaThn, idSem dan namaSem akan diset kedalam array $data, jika gagal maka nilai balik fungsi berupa nilai 0. Fungsi ini digunakan pada modul nilai siswa, mata pelajaran, jadwal, kurikulum dan modul nilai siswa untuk guru.

Nama Fungsi : online() function online() {

$ip = $_SESSION['ip']; $sesid = $_SESSION['sesid']; $uname = $_SESSION['uname']; $user = $_SESSION['table']; if (nvl($_SESSION['uname']) == "") {

$uname = $sesid; $guest = 1; } else {

if ($user == "admin") { $admin = 1; } if ($user == "guru") { $guru = 1; }

if ($user == "karyawan") { $karyawan = 1; } if ($user == "siswa") { $siswa = 1; } if ($user == "alumni") { $alumni = 1; } $guest = 0;} $past = time()-10;

mysql_query("DELETE FROM session WHERE time < '".$past."'") or die(mysql_error()); $result = mysql_query("SELECT time FROM session WHERE uname = '".$uname."' AND sesid = '".$sesid."'"); $ctime = time(); if ($row = mysql_fetch_row($result)) {

mysql_query("UPDATE session SET uname='".$uname."',time = '".$ctime."',host = '".$ip."', guest = '".nvl($guest)."', admin = '".nvl($admin)."', guru =

'".nvl($guru)."', karyawan = '".nvl($karyawan)."', siswa = '".nvl($siswa)."', alumni = '".nvl($alumni)."',sesid = '".$sesid."' WHERE uname= '".$uname."'AND sesid= '".$sesid."'") or die(mysql_error()); // duplicate entry } else {

mysql_query("INSERT INTO session (uname, time, host,guest, admin, guru,karyawan, siswa, alumni, sesid) VALUES ('".$uname."', '".$ctime."', '".$ip."',

'".nvl($guest)."', '".nvl($admin)."', '".nvl($guru)."', '".nvl($karyawan)."', '".nvl($siswa)."', '".nvl($alumni)."', '".$sesid."')") or die(mysql_error()); }}

Fungsi yang melibatkan variabel global (session) ini digunakan untuk mendata status pengunjung website dan selanjutnya informasi tersebut akan ditampilkan pada

Dokumen terkait