Saturday 4 July 2015

ANDROID :: Membuat Aplikasi Maps dengan Maps API V2 di Android Studio


PHP :: Cara membuat Form login Admin dengan Multiuser



Dalam postingan sebelumnya saya sudah membahas tentang "Cara Membuat Form Auto Complete di PHP". Nah, dalam postingan kali ini kita akan membahas bagaimana cara membuat form login admin dengan multiuser.


Sebuah website yang memiliki multiple admin atau mungkin admin dan user tentunya membutuhkan implementasi pemrograman menggunakan teknik pelevelan. Misalnya dalam suatu aplikasi web terdapat dua jenis admin, diantaranya :


  • Admin utama (akses ke seluruh administrasi situs web)
  • User registrasi (akses ke beberapa fitur situs)

Baiklah untuk lebih jelasnya langsung saja kita praktekan :

1. Buat sebuah database dengan nama "kampus" kemudian buat sebuah tabel dengan nama user, untuk struktur fieldnya silahkan lihat gambar dibawah ini :





Selanjutnya kita akan mengisi struktur di atas. Misalnya kita mempunyai dua data, dimana satu data adalah super admin dan satu lagi adalah user umum.



2.Selanjutnya kita akan merancang dan mengimplementasinya dengan membuat form sederhana menggunakan HTML. copypaste saja script dibawah ini lalu simpan dengan nama index.php :

<form action="login.php" class="form-horizontal" method="post">
<label class="username">Username</label>
<input name="username" placeholder="Username Anda" type="text" />
<label class="password">Password</label>
<input name="pass" placeholder="Password" type="password" />
<button class="btn" name="submit" type="submit">Login</button>
</form>

3. Setelah form sederhana selesai dibuat, selanjutnya kita buat juga file config.php yang berisi konfigurasi database agar terhubung dengan form sistem login yang kita buat. 
berikut source code-nya :


<?php
$host="localhost";
$user="root";
$password="";
$koneksi=mysql_connect($host,$user,$password) or
die("Gagal koneksi mas bro..!");
mysql_select_db("kampus");
?>


4. selanjutnya kita membuat file login.php yang berisi variabel $_SESSION dan menggunakan fungsi php session_start(), agar data session tersimpan ke browser.



<?php
session_start();
include 'config.php';
$username = $_POST['username'];
$password = $_POST['pass'];
// query untuk mendapatkan record dari username
$query = "SELECT * FROM user WHERE username = '$username'";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
// cek kesesuaian password
if ($password == $data['password'])
{
echo "sukses";
// menyimpan username dan level ke dalam session
$_SESSION['level'] = $data['level'];
$_SESSION['username'] = $data['username'];
header('location: admin.php');
}
else
echo '<h1>Login gagal</h1>';
?>


5. Dalam tahap ini kita akan membuat pengecekan session, Jadi kita akan menerapkan fungsi IF..ELSE. Copy script dibawah ini lalu simpan dengan nama admin.php


<?php
// memulai session
session_start();
error_reporting(0);
if (isset($_SESSION['level']))
{
// jika level admin
if ($_SESSION['level'] == "admin")
{
}
// jika kondisi level user maka akan diarahkan ke halaman lain
else if ($_SESSION['level'] == "user")
{
header('location:user.php');
}
}
if (!isset($_SESSION['level']))
{
header('location:../index.php');
}
?>

buat lagi sebuah file dengan nama user.php lalu copykan lagi script dibawah ini :



<?php
error_reporting(0);
session_start();
if (isset($_SESSION['level']))
{

if ($_SESSION['level'] == "admin")
{
include 'konten-admin.php';
}
else if ($_SESSION['level'] == "user")
{
include 'konten-user.php';
}
}
?>

PHP :: Membuat Laporan Web dengan EXCEl


Satu lagi tutorial persembahan dari blog.rosihanari.net yang mudah-mudahan berguna bagi para web programmer. Tutorial ini adalah bagaimana membuat script PHP untuk menghasilkan file report dalam format MS. Excel.

Apa menariknya report dalam format MS. Excel? dengan report berformat MS. Excel memungkinkan untuk dilakukan pengolahan lagi pada data report tersebut. Sebagai contoh, report tentang data nilai mahasiswa dan status kelulusannya pada matakuliah tertentu. Apabila report yang dihasilkan berupa MS. Excel, maka memungkinkan untuk pengolahan lebih lanjut terhadap report tersebut menggunakan perintah-perintah dalam MS. Excel, seperti menghitung jumlah mahasiswa yang lulus maupun tidak lulus, bahkan dalam bentuk prosentasenya.

Nah… kita akan coba membuat script PHP untuk menghasilkan report dalam format MS. Excel ini, dengan mengambil studi kasus lagi-lagi tentang nilai matakuliah mahasiswa. Report yang akan dihasilkan berupa daftar mahasiswa (NIM dan Nama) yang mengambil matakuliah, nilai yang diperoleh, serta status kelulusannya (LULUS/TIDAK LULUS). Untuk menentukan kelulusan, misalnya diambil policy jika nilainya 60 ke atas maka LULUS, jika kurang dari 60 maka TIDAK LULUS. Untuk data mentah dari report ini diambil dari database MySQL.

OK… terlebih dahulu kita siapkan tabel dan recordnya.

CREATE TABLE nilaimhs(
nim varchar(10),
namaMhs varchar(30),
nilai int(11),
PRIMARY KEY(nim)
)
INSERT INTO nilaimhs VALUES
('M0197001', 'Faza Fauzan Kh.', 80),
('M0197002', 'Dwi Amalia Fitriani', 75),
('M0197003', 'Rosihan Ari Yuana', 45),
('M0197004', 'Nada Hasanah', 83),
('M0197005', 'Muh. Ahsani Taqwim', 90);
Setelah tabel dan record sudah siap, let’s write a PHP script. Ini dia scriptnya…

// nama file

$namaFile = "report.xls";

// Function penanda awal file (Begin Of File) Excel

function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}

// Function penanda akhir file (End Of File) Excel

function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
return;
}

// Function untuk menulis data (angka) ke cell excel

function xlsWriteNumber($Row, $Col, $Value) {
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
return;
}

// Function untuk menulis data (text) ke cell excel

function xlsWriteLabel($Row, $Col, $Value ) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
return;
}

// header file excel

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0,
pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");

// header untuk nama file
header("Content-Disposition: attachment;
filename=".$namaFile."");

header("Content-Transfer-Encoding: binary ");

// memanggil function penanda awal file excel
xlsBOF();

// ------ membuat kolom pada excel --- //

// mengisi pada cell A1 (baris ke-0, kolom ke-0)
xlsWriteLabel(0,0,"NO");

// mengisi pada cell A2 (baris ke-0, kolom ke-1)
xlsWriteLabel(0,1,"NIM");

// mengisi pada cell A3 (baris ke-0, kolom ke-2)
xlsWriteLabel(0,2,"NAMA MAHASISWA");

// mengisi pada cell A4 (baris ke-0, kolom ke-3)
xlsWriteLabel(0,3,"NILAI");

// mengisi pada cell A5 (baris ke-0, kolom ke-4)
xlsWriteLabel(0,4,"STATUS KELULUSAN");

// -------- menampilkan data --------- //

// koneksi ke mysql

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

// query menampilkan semua data

$query = "SELECT * FROM nilaimhs";
$hasil = mysql_query($query);

// nilai awal untuk baris cell
$noBarisCell = 1;

// nilai awal untuk nomor urut data
$noData = 1;

while ($data = mysql_fetch_array($hasil))
{
// menampilkan no. urut data
xlsWriteNumber($noBarisCell,0,$noData);

// menampilkan data nim
xlsWriteLabel($noBarisCell,1,$data['nim']);

// menampilkan data nama mahasiswa
xlsWriteLabel($noBarisCell,2,$data['namaMhs']);

// menampilkan data nilai
xlsWriteNumber($noBarisCell,3,$data['nilai']);

// menentukan status kelulusan
if ($data['nilai'] >= 60) $status = "LULUS";
else $status = "TIDAK LULUS";

// menampilkan status kelulusan
xlsWriteLabel($noBarisCell,4,$status);

// increment untuk no. baris cell dan no. urut data
$noBarisCell++;
$noData++;
}

// memanggil function penanda akhir file excel
xlsEOF();
exit();

?>
Apabila script di atas dijalankan pada browser, maka browser akan menampilkan kotak dialog untuk mendownload file MS. Excel sebagai outputnya. Gambar berikut ini adalah screen shot isi file excel yang telah didownload.


Mudah bukan cara membuatnya?

Silakan isi komentar di bawah ini apabila ada pertanyaan dan diskusi seputar artikel ini.