Sabtu, 05 Mei 2012

Mencari Nilai MIN dan Max pada Grup


Tabel yang digunakan yaitu :
produk dan kategori


1.Menampilkan nilai Min pada grup

SELECT
  MIN(produk.stok) AS Minimal,
  produk.nama_produk,
  kategori.nama_kategori
FROM
  kategori
  INNER JOIN produk ON (kategori.id_kategori = produk.id_kategori)
GROUP BY
  produk.nama_produk,
  kategori.nama_kategori

2.Menampilkan nilai Max pada Group

SELECT
  MAX(produk.stok) AS Minimal,
  produk.nama_produk,
  kategori.nama_kategori
FROM
  kategori
  INNER JOIN produk ON (kategori.id_kategori = produk.id_kategori)
GROUP BY
  produk.nama_produk,
  kategori.nama_kategori

Langkah-langkah membuat website


Dalam membuat website tentunya tidak lepas  dari software, sehingga sebelumnya perllu untuk mempersiapkan software sebagai berikut:
  • XAMPP , digunakan untuk webserver, dan database server
  • Macromedia Dreamweaver / notepad ++, digunakan untuk coding / menuliskan script php, css, javascript dan mendesain web
  • Adobe phothosop, digunakan untuk mendesain tampilan website.

1.Membuat desain web
Membuat desain web sangat penting karena akan mempengaruhi keindahan dan kemudahan navigasi website nantinya, mendesain web bias dimulai dari
  • Tujuan membuat website
  • Sitemap
  • Sketsa
  • Resolusi
  • Lebar konten
  • Manajemen folder
  •  
2.Membuat database
Membuat database bisa menggunakan MySql. Dimulai dari merancang ERD hingga membuat  table-tabel dan field-nya

3.Pemrogaman
Dalam tahap ini ada penggabungan dari desain, pemrogaman dan database.
Dalam pemrogaman ini bisa menggunakan PHP. Pembuatan bisa dari sisi admin kemudian sisi user/ pengunjung


Untuk memudahkan dalam membuat sebaiknya untuk file file disimpan dal sebuah folder sesuai jenisnya contoh folder gambar, css, javascript dll.
 

PENGERTIAN FRAMWORK / MVC

A. PENGERTIAN MVC (MODEL VIEW CONTROLLER).

Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu :
  1. View, merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model.
  2. Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view.
  3. Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi.
Dengan menggunakan prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan developernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designer yang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan maintanability dan organisasi kode. Walaupun demikian dibutuhkan komunikasi yang baik antara programmer dan designer dalam menangani variabel-variabel yang akan ditampilkan.
Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain,
  • Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain.
  • Konfigurasi yang sangat minim (nearly zero configuration)  : tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya perlu merubah sedikit saja file pada folder config.
  • Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru.
  • Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami.
  • Dan banyak lagi yang lainnya.

B. PENGERTIAN CODEIGNITER

Codeigniter adalah sebuah aplikasi open source, yaitu aplikasi yang bebas untuk digunakan oleh siapapun tanpa harus membayar lisensi untuk menggunakannya.
Codeigniter juga merupakan sebuah framework untuk membangun sebuah aplikasi website dinamis menggunakan PHP yang dapat digunakan dengan cepat dan mudah tanpa harus membangun apilkasi PHP dari awal.
untuk mendapatkan aplikasi ini, silahkan kunjungi website resminya di http://www.codeigniter.com/
Kelebihan dari codeigniter dari framework lainnya adalah :
1. Mendukung PHP4 dan PHP 5
2. Dolumentasi yang sangat lengkap
3. mudah untuk dipelajari
4. Performa yang cepat,
5. Menggunakan MVC (Model View Controller) yang membedakan antara logika, tampilan.

C. KONFIGURASI DASAR CODEIGNITER

Pada folder System/application/config, terdapat beberapa file konfigurasi dasar untuk Codeigniter. Di sini akan dibahas mengenai 4 file konfigurasi penting yang akan menetukan kinerja Codeigniter, diantaranya : Config.php, database.php, autoload.php, dan routes.php.
Pertama-tama kita bahas konfigurasi Config.php
Pada config.php berisi konfigurasi dasar dari aplikasi yang kita buat. Konfigurasi yang pertama adalah base URL dari aplikasi kita. Kita menentukannya secara lengkap dengan menyertakan bagian http:// juga, misalnya :
$config ['base_url'] = "http://webblog.com/";
 
Keuntungan menggunakan cara ini adalah kita tidak perlu menulis ulang secara lengkap URL jika diperlukan, misalnya untuk menentukan action pada form. Cukup menggunakan fungsi base_url. Apalagi jika anda harus mengalihkan aplikasi kita pada web server lain, maka kita cukup mengganti base_url nya. Hal kedua untuk konfigurasi adalah URL untuk homepage dengan mengatur “$config ['index_page']“. Artinya, index.php akan muncul pada homepage anda. contoh :
http://localhost/webblog/index.php/blog
 
Sehingga sebaiknya biarkan saja setting untuk index page sesuai defaultnya, yaitu index.php
$config ['index_page'] = "index.php" ;
 
Setelah kita mengatur kedua konfigurasi di atas, sebaiknya untuk yang lain dibiarkan dulu saja.
Yang kedua, sekarang kita bahas konfigurasi dari database.php
File database.php berisi semua informasi yang diperlukan untuk berhubungan dengan database. Saat ini, Codeigniter mendukung MySQL(4.1 +), MySQLi, MS SQL, Postgres, Oracle, SQLite, dan ODBC. Untuk berhubungan dengan database, cukup memasukkan informasi yang valid mengenai hostname, username, password, nama database, dan driver database. misalnya :

$active_group = 'default';
$active_record = TRUE;
 
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root';
$db['default']['database'] = 'simdik';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
 
terdapat 5 poin penting dalam konfigurasi database, yaitu : hostname, username, password, database (nama databse) dan dbdriver(engine RDBMS). Sesuaikan dengan yang ada di komputer kita, jika kita mengisi dengan benar maka tidak akan ada masalah.
yang ke-tiga kita bahas mengenai konfigurasi autoload.php
$autoload['libraries'] = array('session','form_validation');
$autoload['helper'] = array('url','form');
$autoload['plugin'] = array();
$autoload['config'] = array();
$autoload['language'] = array();
$autoload['model'] = array();
 
File autoload.php menspesifikasikan resource apa saja yang akan di load secara otomatis oleh Codeigniter.
Dan yang ke-empat kita bahas mengenai konfigurasi pada routes.php
File konfigurasi routes.php di gunakan untuk melakukan remap URI request agar mengarah ke suatu fungsi tertentu pada sebuah controller.Contoh, kita memiliki sebuah controller bernama blog dengan fungsi index di dalamnya. URI dari pasangan kombinasi controller atau fungsi akan tempak seperti :
http://webblog.com/blog/index
 
Selanjutnya, jika controller kita memiliki sebuah fungsi halaman yang menerima sebuah parameter berupa bilangan, URI akan tampak seperti :

http://webblog.com/blog/halaman/5
 
Nah, pada intinya konfigurasi diatas bertujuan untuk mempermudah kita dalam penggunaan Codeigniter. Agar tidak memanggil berkali-kali suatu model atau database, kita cukup mengkonfigurasi pada file Config.php.


Kamis, 03 Mei 2012

Membuat Anti SQL Injection

Contoh Aplikasi Form Login
Langkah pertama adalah pembuatan database:

Kemudian membuat script php:
Script
1. Public_html /Login _form.php

<!DOCTYPE html>
<head>
<title>form login</title>
</head>
<body>
<form name="login" action="config/login_check.php" method="post">
<table border="1" align="center" bordercolor="#00CCFF">
<tr><td colspan="2"><div align="center">Form Login</div></td></tr>
<tr><td>Username</td><td> : <input type="text" name="username"></td></tr>
<tr><td>Password</td><td> : <input type="password" name="password"></td></tr>
<tr><td colspan="2"><div align="center">
  <input type="submit" value="Login">
</div></td></tr>
</table>
</form>
</body>
</html>

2. public_html/config/login_check.php

<?php
include "../conn.php"; //connection file
function anti_injection($data){
$filter = mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))));
return $filter;
}
$username = anti_injection($_POST['username']);
$pass     = anti_injection(md5($_POST['password']));
//make sure the username and password are character or number.
if (!ctype_alnum($username) OR !ctype_alnum($pass)){
echo "Bingo!! sekarang login form telah terlindungi. Tidak ada SQL Injection.";
}
else{
$login=mysql_query("select * from users where username='$username' and password='$pass'
and block='N'");
$found=mysql_num_rows($login);
$r=mysql_fetch_array($login);
//If found the username and password
if ($found > 0){
session_start();
include "timeout.php";
$_SESSION[username]     = $r[username];
$_SESSION[fullname]     = $r[full_name];
$_SESSION[passuser]     = $r[password];
$_SESSION[leveluser]    = $r[level];
// session timeout
$_SESSION[login] = 1;
timer();
$old_sid = session_id();
session_regenerate_id();
$new_sid = session_id();
mysql_query("update users set id_session='$new_sid' where username='$username'");
header('location:../home.php'); //page redirection, after success login
}
else{
echo "<center>LOGIN GAGAL!!<br/>
salah username atau password.<br/>
atau accaunt anda diblokir<br/>";
echo "<a href=../login_form.php><b>Coba Lagi</b></a></center>";
}
}
?>

3. . public_html/config/timeout.php

<?php
session_start();
function timer(){
$time=10000; //set the timer
$_SESSION[timeout]=time()+$time;
}
function login_check(){
$timeout=$_SESSION[timeout];
if(time()<$timeout){
timer();
return true;
}else{
unset($_SESSION[timeout]);
return false;
}
}
?>
4. public_html/config/logout.php
<?php
session_start();
session_destroy();
echo "<center>Anda berhasil Keluar dari sistem.<b>[LOGOUT]</b></center>";
?>

5.public_html/home.php
<?php
session_start();
error_reporting(0);
include "config/timeout.php";
if($_SESSION[login]==1){
if(!login_check()){
$_SESSION[login] = 0;
}
}
if($_SESSION[login]==0){
header('location:login_form.php');
}
else{
if (empty($_SESSION['username']) AND empty($_SESSION['passuser']) AND $_SESSION['login']==0){
"<center>Untuk mengakses halaman ini, login dulu ya!<br/>";
echo "<a href=login_form.php><b>LOGIN</b></a></center>";
}
else{
?>

<!DOCTYPE html>
<head>
<title></title>
<style type="text/css">
<!--
#Layer1 {
            padding:10px;
            width:1000px;
            height:280px;
            background-color: #00CCFF;
}
.style1 {color: #000000}
-->
</style>
</head>
<body>
<div id="Layer1">
  <h1 align="center" class="style1">Selamat Datang </h1>
  <h4 align="center" class="style1">Di Web Ku </h4>
 
  <p align="center"><a href="config/logout.php" target="_parent">logout</a></p>
  <p>&nbsp;</p>
</div>
</body>
</html>
<?php
}
}
?>

6.public_html/conn.php

<?php
$host = "localhost";
$username = "root";
$password = "";
$databasename = "users";
$connection = mysql_connect($host, $username, $password) or die("Kesalahan Koneksi ... !!
");
mysql_select_db($databasename, $connection) or die("Database Error");
?>



Selasa, 01 Mei 2012

Sepucuk Surat Dari Ibu dan Ayah

 
Kawan, lihat dan bacalah agar kita dapat menghormati dan menjaganya kelak. Kalau mau menangis, keluarkanlah tangismu dan kalau mau berubah inilah waktunya.

sumber : youtube