Kamis, 18 Desember 2014

Program Sederhana Menggunakan AJAX




pertama kali kita membuat database terlebih dahulu

simpan dengan nama
"mahasiswa.sql"
dengan nama tabel "mhs"

-- phpMyAdmin SQL Dump
-- version 4.2.11
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Dec 14, 2014 at 06:35 PM
-- Server version: 5.6.21
-- PHP Version: 5.6.3

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `mahasiswa`
--

-- --------------------------------------------------------

--
-- Table structure for table `mhs`
--

CREATE TABLE IF NOT EXISTS `mhs` (
  `nim` varchar(20) NOT NULL,
  `nama` varchar(40) NOT NULL,
  `alamat` varchar(150) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `mhs`
--

INSERT INTO `mhs` (`nim`, `nama`, `alamat`) VALUES
('24010312120000', 'Benedict Cumberbatch', 'Baker Street 221B'),
('24010312120012', 'Cut Fauziah Nur', 'Sirajudin 15 Semarang'),
('24010312120023', 'Qoriah Fauzziyyah', 'Banjarsari 21 Semarang');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `mhs`
--
ALTER TABLE `mhs`
 ADD PRIMARY KEY (`nim`);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

lalu buat koneksinya
simpan dengan nama
connect.php

<?php
/*
Aninda Khamamai 24010312140029
Gugun Ksatria 24010312110041
*/
$db_host = "localhost";
$db_username = "root";
$db_password = "";

$db_database = "pwi";
?>

 lalu buat halaman utama program
simpan dengan nama "utama,php"

<html>
<!--
Aninda Khamamai 24010312140029
Gugun Ksatria 24010312110041
-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title> Daftar Mahasiswa </title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js" ></script>

<script type="text/javascript">
$(document).ready(function(){
$(".edit").click(function(){ //ketika klik edit ,
var link = $(this).attr('href'); //buat dapetin nilai dari atribut href
$("#tampung").load(link); //load data pada div = tampung
return false; //return false supaya ketika klik edit tidak mengacu ke halaman hrefnya
});
 
//pada elemen yang mempunyai id tampung, ketika ada elemen di dalamnya ber id kan formEdit dan
//melakukan submit maka lakukan fungsi berikut
$("#tampung").on('submit', '#formEdit', function(){
var link = $(this).attr('action'); //dapatkan isi dari action
var nim = $("#tampung #nim ").val();
var nama = $("#tampung #name").val();
var alamat = $("#tampung #address").val();
var email = $("#tampung #email").val();
$.post( link, { submit:"yoi",nim : nim , name: nama, address: alamat, email : email }) //yang di post = var
.done(function( data ) {
alert(data );
location.reload(true);
});
return false;
});

$("#tambah").click(function(){
var link2 = $(this).attr('href');
$("#tampung").load(link2);
return false;
});
 
$("#tampung").on('submit', '#formTambah', function(){
var link2 = $(this).attr('action');
var nim = $("#tampung #nim").val();
var nama = $("#tampung #name").val();
var alamat = $("#tampung #address").val();
var email = $("#tampung #email").val();
$.post( link2, {submit : "yoi" ,nim : nim, name : nama, address : alamat, email : email})
.done(function(data) {
alert(data);
location.reload(true);
});
return false;
});
 
});
</script>

<style>
.layer{
width: 65%;
}
.tengah{
text-align : center;
}
</style>

</head>

<body>

<h2>Data Mahasiswa</h2>

<div class = "layer">
<table border ="1">
<tr >
<th class = "tengah" >NIM</th>
<th class = "tengah">Nama</th>
<th class = "tengah">Alamat</th>
<th class = "tengah">Email</th>
<th class = "tengah" colspan="2">Option</th>

</tr>
<?php
// connect database
require_once('connect.php');
$db = new mysqli($db_host, $db_username, $db_password, $db_database);
if ($db->connect_errno){
die ("Could not connect to the database: <br />". $db->connect_error);
}

//Asign a query
$query = " SELECT * FROM mahasiswa ORDER BY nim ";

// Execute the query
$result = $db->query( $query );
if (!$result){
  die ("Could not query the database: <br />". $db->error);
}

// Fetch and display the results
while ($row = $result->fetch_object()){
echo '<tr>';
echo '<td align = "center">'.$row->nim.'</td>';
echo '<td align = "center">'.$row->nama.'</td> ';
echo '<td align = "center">'.$row->alamat.'</td> ';
echo '<td align = "center">'.$row->email.'</td>';
echo '<td align = "center"><a href="edit.php?id='.$row->nim.'" class ="edit"> <button type="button">Edit</button></a>
&nbsp; &nbsp; <a href="hapus.php?remove='.$row->nim.'"onclick="return confirm (\'Apakah anda yakin?\');" class = "hapus" > <button type="button">Hapus</button> </a>';

echo '</tr>';
}
echo '</table>';
//echo '<br />';

$result->free();
$db->close();
?>
</div>

<a href = "tambah.php" id = "tambah"> <button type="button">Tambahkan Data</button> </a>

<div id = "tampung"></div>

</body>
</html>

lalu buat script untuk mengedit data yang diinputkan
simpan dengan nama "edit.php"

<?php
/*
Aninda Khamamai 24010312140029
Gugun Ksatria 24010312110041
*/
$id = $_GET['id'];
// connect database
require_once('connect.php');
$db = new mysqli($db_host, $db_username, $db_password, $db_database);
$error_name = "";
$error_address= "";
$error_nim ="";
if ($db->connect_errno){
die ("Could not connect to the database: <br />". $db->connect_error);
}

if (!isset($_POST["submit"])){
$query = " SELECT * FROM mahasiswa WHERE nim=".$id." ";
// Execute the query
$result = $db->query( $query );
if (!$result){
die ("Could not query the database: <br />". $db->error);
}else{
while ($row = $result->fetch_object()){
$name = $row->nama;
$address = $row->alamat;
$nim = $row -> nim;
$email = $row -> email;
}
}
}else{
$email = test_input($_POST['email']);
$name = test_input($_POST['name']);
if ($name == ''){
$error_name = "Name is required";
$valid_name = FALSE;
}elseif (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  $error_name = "Only letters and white space allowed";
  $valid_name = FALSE;
}else{
$valid_name = TRUE;
}
$address = test_input($_POST['address']);
if ($address == ''){
$error_address = "Address is required";
$valid_address = FALSE;
}else{
$valid_address = TRUE;
}
$nim = test_input($_POST['nim']);
if ($nim == ''){
$error_nim = "NIM is required";
$valid_nim = FALSE;
}else{
$valid_nim = TRUE;
}
//update data into database
if ($valid_name && $valid_address &&  $valid_nim){
//escape inputs data
$nim = $db->real_escape_string($nim);
$name = $db->real_escape_string($name);
$address = $db->real_escape_string($address);
$email = $db->real_escape_string($email);
//Asign a query
$query = " UPDATE mahasiswa SET nim = '".$nim."' , nama='".$name."', alamat='".$address."', email='".$email."' WHERE nim=".$id." ";
// Execute the query
$result = $db->query( $query );
if (!$result){
  die ("Could not query the database: <br />". $db->error);
}else{
echo 'Data has been updated.';
$db->close();
exit;
}
}
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>
<!DOCTYPE HTML> 
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body> 

<h2>Edit Data</h2>
<form id="formEdit" method="POST" autocomplete="on" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]).'?id='.$id;?>">

<table>
<tr>
<td valign="top">NIM</td>
<td valign="top">:</td>
<td valign="top"><input type="text" id="nim" name="nim" size="30"  autofocus value="<?php if(isset($nim)){echo $nim;}?>"></td>
<td valign="top"><span class="error">* <?php echo $error_nim;?></span></td>
</tr>
<tr>
<td valign="top">Name</td>
<td valign="top">:</td>
<td valign="top"><input type="text" id="name" name="name" size="30" maxlength="50" placeholder="Name (max 50 characters)" autofocus value="<?php 
if(isset($name)){
echo $name;}?>"></td>
<td valign="top"><span class="error">* <?php echo $error_name;?></span></td>
</tr>
<tr>
<td valign="top">Address</td>
<td valign="top">:</td>
<td valign="top"><textarea id="address" name="address" rows="5" cols="30" placeholder="Address (max 100 characters)"><?php echo $address;?></textarea></td>
<td valign="top"><span class="error">* <?php echo $error_address;?></span></td>
</tr>
<tr>
<td valign="top">Email</td>
<td valign="top">:</td>
<td valign="top"><input type="text" id="email" name="email" size="30"  autofocus value="<?php if(isset($email)){echo $email;}?>"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top" colspan="3"><br><input type="submit" name="submit" value="Submit">
</tr>
</table>
</form>
</body>
</html>
<?php
$db->close();
?>

dan juga script menghapus datanya 
simpan dengan nama "hapus.php"

<?php
/*
Aninda Khamamai 24010312140029
Gugun Ksatria 24010312110041
*/
require_once("connect.php");
if(isset($_GET['remove'])){
$db = new mysqli($db_host, $db_username, $db_password, $db_database);
if ($db->connect_errno){
die ("Could not connect to the database: <br />". $db->connect_error);
}
$id = $_GET['remove'];
$query = " DELETE FROM mahasiswa WHERE nim= $id ";
// Execute the query
$result = $db->query( $query );
if (!$result){
die ("Could not query the database: <br />". $db->error);
}else{
echo '<br/>Data has been deleted.<br /><br />';
header("Location: utama.php");
$db->close();
}
}
?>

dan untuk menambah data 
simpan dengan nama "tambah.php"

<?php
/*
Aninda Khamamai 24010312140029
Gugun Ksatria 24010312110041
*/
$error_name = "";
$valid_name = "";
if(isset($_POST["submit"])){
$nama = $_POST["name"];
$name = test_input($nama);
$address = $_POST["address"];
$nim = $_POST["nim"];
$email = $_POST["email"];
if ($name == ""){
$error_name ="Name is required";
}elseif(!preg_match("/^[a-z A-Z]*$/",$name)){
$error_name = "Only letters and white space allowed";
}
else{
$valid_name = TRUE;
}
}else{
?>
<html>
<head>
<style>
.error {color:#FF0000;}
</style>
</head>
<body>
<h2> Tambah Data </h2>
<form id="formTambah" method="POST" autocomplete="on" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<table>
<tr>
<td valign="top"> NIM </td>
<td valign="top"> : </td>
<td valign="top"><input type="text" id="nim" name="nim" size="30" value = "<?php if (isset($nim)){echo $nim;}?>">
</tr>
<tr>
<td valign="top"> Name </td>
<td valign="top"> : </td>
<td valign="top"><input type="text" id="name" name="name" size="30" maxlegth="50" placeholder="Name (max 50 characters)" value = "<?php if (isset($name)){echo $name;}?>">
<span class="error">*<?php echo $error_name;?></span></td>
</tr>
<tr>
<td valign="top"> Address </td>
<td valign="top"> : </td>
<td valign="top"> <textarea id="address" name="address" rows="5" cols="30" > <?php if (isset($address)){echo"$address";}?> </textarea> </td>
</tr>
<tr>
<td valign="top"> Email </td>
<td valign="top"> : </td>
<td valign="top"><input type="text" id="email" name="email" size="30" value = "<?php if (isset($email)){echo $email;}?>">
</tr>
<tr>
<td valign="top" ><br />
<td valign="top" colspan="3"><br><input type="submit" name="submit" value="Submit">
<input type="reset" name="reset" value="Reset">
</td>
</tr>
</table>
</form>
</html>
<?php
}
function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>

<?php
// insert into database
if($valid_name){
// include our login information
require_once("connect.php");
//connect
$db = new mysqli($db_host, $db_username, $db_password, $db_database);
if ($db->connect_errno){
die("Could not connect to databse : <br />".$db->connect_error);
}
$name = $db->real_escape_string($name);
$address = $db->real_escape_string($address);
$nim = $db->real_escape_string($nim);
$email = $db->real_escape_string($email);
//assign a query
$query = "INSERT INTO mahasiswa (nim , nama, alamat, email)
VALUES('$nim','$name','$address','$email')";
//execute a query
$result = $db->query($query);
if(!$result){
die("Could not query the database : ".$db->error);
}else{
echo '1 record added. ';
}
}
?>

Selamat Mencoba
semoga dapat membantu teman-teman dalam penyelesaian tugas dan menambah ilmu pengetahuan..

Selasa, 16 Desember 2014

Deteksi Tepi dengan Operator Kompas



Tugas PCD
mendeteksi tepi sebuah Citra dengan menggunakan Operator Kompas.
 

functionvarargout = kompas(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
'gui_Singleton',  gui_Singleton, ...
'gui_OpeningFcn', @kompas_OpeningFcn, ...
'gui_OutputFcn',  @kompas_OutputFcn, ...
'gui_LayoutFcn',  [] , ...
'gui_Callback',   []);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

ifnargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before kompas is made visible.
functionkompas_OpeningFcn(hObject, eventdata, handles, varargin)

% Choose default command line output for kompas
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);


% --- Outputs from this function are returned to the command line.
functionvarargout = kompas_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
[filename,pathname] = uigetfile ( ...
    {'*.bmp;*.jpg;*.tif;*.gif', 'file lukisan (*.bmp,*.jpg,*.tif,*.gif)';
'*.bmp', 'gambar bmp (*.bmp)';...
'*.jpg', 'gambar JPEG (*.jpg)';...
'*.tif', 'gambartif (*.tif)';...
'*.gif', 'gambar gif (*.gif)';...
'*.*', 'semua File (*.*)'},...
'pick a file');
citra=imread(fullfile(pathname,filename));
[m n o]=size(citra);
axes(handles.axes1);
imshow(citra);
%Apabilaberupacitrawarnamakaakandirubahkegreeyscale
if(o == 3)
citra = rgb2gray(citra);
end
handles.citra=citra;
handles.m=m;
handles.n=n;
handles.o=o;
guidata(hObject, handles);

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
hasil = compass(handles.citra);
hasil   = uint8(hasil);
    axes(handles.axes2);
imshow(hasil);

% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
delete(handles.figure1);

%FugnsiKompas -->dikonvolusikemudiandicarinilakekuatantepiterbesar
functionhasil = compass(citra)

    mask(:,:,1)=[1 1 1; 1 -2 1;-1 -1 -1];
    mask(:,:,2)=[1 1 1; -1 -2 1;-1 -1 1];
    mask(:,:,3)=[-1 1 1;-1 -2 1;-1 1 1];
    mask(:,:,4)=[-1 -1 1;-1 -2 1;1 1 1];
    mask(:,:,5)=[-1 -1 -1;1 -2 1;1 1 1];
    mask(:,:,6)=[1 -1 -1;1 -2 -1;1 1 1];
    mask(:,:,7)=[1 1 -1;1 -2 -1;1 1 -1];
    mask(:,:,8)=[1 1 1;1 -2 -1;1 -1 -1];
hasil = konvolusi(citra,mask(:,:,1));
for i=2:8,
hasil=max(hasil,konvolusi(citra,mask(:,:,i)));
end;

%FungsiKonvolusi
functionhasil=konvolusi(x,k)
    x = double(x);
hasil = x;
    [m n] = size(x);
for i=2:m-1,
for j=2:n-1,
hasil(i,j) = x(i-1,j-1)*k(1,1) + x(i-1,j)*k(1,2) +x(i-1,j+1)*k(1,3)...
                + x(i,j-1)*k(2,1) + x(i,j) * k(2,2) + x(i,j+1)*k(2,3)...
                + x(i+1,j-1)*k(3,1) + x(i+1,j)*k(3,2) + x(i+1,j+1)*k(3,3);
end;
end;
hasil=uint8(hasil);


selamat Mencoba.. /*:D*/