Object Oriented Programming (OOP) atau pemrograman berorientasi obyek merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. (wikipedia)
Banyak programmer menggunakan prinsip OOP untuk membuat sebuah aplikasi. Penggunaan OOP memang sangat memudahkan para programmer dalam menyusun program.
Kali ini saya tidak akan panjang lebar memberikan teori mengenai OOP, namun kita akan mencoba untuk mengaplikasikannya ke dalam sebuah sistem.
Dalam tutorial ini terdapat sebuah folder yang dipanggil menggunakan PHP include.
- registration.php
- home.php
- include
- functions.php
- config.php
Ok, langsung saja kita mulai
1. kita buat dulu database user dengan table columns uid, username, passcode, name and email.
CREATE TABLE users
(
uid INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(30) UNIQUE,
password VARCHAR(50),
name VARCHAR(100),
email VARCHAR(70) UNIQUE
);
2. Buat Kelas function.php
include_once ‘config.php’;
class User
{
//Database connect
public function __construct()
{
$db = new DB_Class();
}
//Registration process
public function register_user($name, $username, $password, $email)
{
$password = md5($password);
$sql = mysql_query(“SELECT uid from users WHERE username = ‘$username’ or email = ‘$email’”);
$no_rows = mysql_num_rows($sql);
if ($no_rows == 0)
{
$result = mysql_query(“INSERT INTO users(username, password, name, email) values (‘$username’, ‘$password’,'$name’,'$email’)”) or die(mysql_error());
return $result;
}
else
{
return FALSE;
}
}
// Login process
public function check_login($emailusername, $password)
{
$password = md5($password);
$result = mysql_query(“SELECT uid from users WHERE email = ‘$emailusername’ or username=’$emailusername’ and password = ‘$password’”);
$user_data = mysql_fetch_array($result);
$no_rows = mysql_num_rows($result);
if ($no_rows == 1)
{
$_SESSION['login'] = true;
$_SESSION['uid'] = $user_data['uid'];
return TRUE;
}
else
{
return FALSE;
}
}
// Getting name
public function get_fullname($uid)
{
$result = mysql_query(“SELECT name FROM users WHERE uid = $uid”);
$user_data = mysql_fetch_array($result);
echo $user_data['name'];
}
// Getting session
public function get_session()
{
return $_SESSION['login'];
}
// Logout
public function user_logout()
{
$_SESSION['login'] = FALSE;
session_destroy();
}
}
?>
3. registration.php
<?php
include_once ‘include/functions.php’;
$user = new User();
// Checking for user logged in or not
if ($user->get_session())
{
header(“location:home.php”);
}
if ($_SERVER["REQUEST_METHOD"] == “POST”)
{
$register = $user->register_user($_POST['name'], $_POST['username'], $_POST['password'], $_POST['email']);
if ($register)
{
// Registration Success
echo ‘Registration successful <a href=”login.php”>Click here</a> to login’;
} else
{
// Registration Failed
echo ‘Registration failed. Email or Username already exits please try again’;
}
}
?>
//HTML Code
<form method=”POST” action=”register.php” name=’reg’ >
Full Name
<input type=”text” name=”name”/>
Username
<input type=”text” name=”username”/>
Password
<input type=”password” name=”password”/>
Email
<input type=”text” name=”email”/>
<input type=”submit” value=”Register”/>
</form>
4. Login.php
<?php
session_start();
include_once ‘include/functions.php’;
$user = new User();
if ($user->get_session())
{
header(“location:home.php”);
}
if ($_SERVER["REQUEST_METHOD"] == “POST”)
{
$login = $user->check_login($_POST['emailusername'], $_POST['password']);
if ($login)
{
// Login Success
header(“location:login.php”);
}
else
{
// Login Failed
$msg= ‘Username / password wrong’;
}
}
?>
//HTML Code
<form method=”POST” action=”" name=”login”>
Email or Username
<input type=”text” name=”emailusername”/>
Password
<input type=”password” name=”password”/>
<input type=”submit” value=”Login”/>
</form>
5. home.php
<?php
session_start();
include_once 'include/functions.php';
$user = new User();
$uid = $_SESSION['uid'];
if (!$user->get_session())
{
header("location:login.php");
}
if ($_GET['q'] == 'logout')
{
$user->user_logout();
header("location:login.php");
}
?>
//HTML Code
<a href="?q=logout">LOGOUT</a>
<h1> Hello <?php $user->get_fullname($uid); ?></h1>
6. config.php
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'database');
class DB_Class
{
function __construct()
{
$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or
die('Oops connection error -> ' . mysql_error());
mysql_select_db(DB_DATABASE, $connection)
or die('Database error -> ' . mysql_error());
}
}
?>
7. Bagaimana menambah fungsi baru
public function get_email($uid)
{
$result = mysql_query("SELECT email FROM users WHERE uid = $uid");
$user_data = mysql_fetch_array($result);
echo $user_data['email'];
}
