Membuat Tags dengan PHP, AJAX dan Bootstrap Tokenfield

Pernahkah anda melihat tags di blog atau website? Bagaimanakah cara membuatnya, kali ini kita akan membuat sistem tags dengan plugin bootstrap tokenfield, kemudian menyimpan datanya ke database dengan PHP dan AJAX.



 langkah pertama kita buat dulu HTMLnya:
<!DOCTYPE html>
<
html>
<
head>
<
meta charset="utf-8">
<
title>Multiple Bootstrap Tags with PHP and AJAX</title>
<
script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<
link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<
script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" charset="utf-8"></script>
<
link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css">
<
script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" charset="utf-8"></script>
<
link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-tokenfield/0.12.0/css/bootstrap-tokenfield.min.css">
<
script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-tokenfield/0.12.0/bootstrap-tokenfield.min.js" charset="utf-8"></script>
</head>
<
body>
<
br>
<
div class="container">
<
div class="row">
<
h2 align="center">Insert Bootstrap tokenfield data using PHP AJAX</h2>
<
br>
<
div class="col-md-6" style="margin:0 auto;float:none">
<!-- pesan suksess -->
<
span id="success_message"></span>
<!-- form -->
<
form method="post" id="programmer_form">
<
div class="form-group">
<
label>Enter Name</label>
<
input type="text" name="name" id="name" class="form-control">
</div>
<
div class="form-group">
<
label>Enter your Skill</label>
<
input type="text" name="skill" id="skill" class="form-control">
</div>
<
div class="form-group">
<
input type="submit" name="submit" id="submit" value="Submit" class="btn btn-info">
</div>
</form>
</div>
</div>
</div>
</body>
</html>

<
script type="text/javascript">

        $(document).ready(function(){

        $(
'#skill').tokenfield({
        autocomplete: {
        source: [
'PHP', 'Code Igniter', 'Ajax', 'JQuery', 'laravel', 'slim', 'mongo db', 'html', 'Bootstrap',
       
'css', 'javascript', 'JSON', 'angular js', 'node js', 'express js', 'socket.io', 'symphony',
       
'yii', 'mysql', 'oracle', 'xml', 'android', 'java', 'ember', 'cake php', 'git', 'Zend', 'Phalcon'],
        delay:
100
       
},
        showAutocompleteOnFocus:
true
       
});

        $(
'#programmer_form').on('submit', function(event){
        event.preventDefault();
       
if ($.trim($('#name').val()).length == 0)
        {
        alert(
"Please enter your name");
       
return false;
        }
       
else if ($.trim($('#skill').val()).length == 0)
        {
        alert(
"Please enter your skill");
       
return false;
        }
       
else
       
{
        var form_data = $(
this).serialize();
        $(
'#submit').attr("disabled", "disabled");
        $.ajax({
        url:
"insert.php",
        method:
"POST",
        data:form_data,
       
// untuk progress dialog atau loading
       
beforeSend:function(){
        $(
'#submit').val('Submiting...');
        },
       
// ketika suksess
       
success:function(data){
       
// jika data tidak kosong
       
if (data != '')
        {
       
// kosongkan input nama
       
$('#name').val('');
        $(
'#skill').tokenfield('setTokens',[]);
        $(
'#success_message').html(data);
        $(
'#submit').attr("disabled", false);
        $(
'#submit').val('Submit');
        }
        }
        });
        setInterval(function(){
        $(
'#success_message').html('');
        },
5000);
        }
        });

        });

</script>

kemudian untuk kode PHP nya seperti dibawah:
<?php



// insert data

        if (isset($_POST["name"]))

        {

        $connect = new PDO("mysql:host=localhost;dbname=tag","root","");

        $query = "INSERT INTO programmer(name, skill) VALUES (:name, :skill)";

        $statement = $connect->prepare($query);

        $statement->execute(

        array(

        ':name'  => $_POST["name"],

        ':skill' => $_POST["skill"]

        )

        );

        $result = $statement->fetchAll();

        $output = '';

        if (isset($result))

        {

        $output = '

<div class="alert alert-success">

        Your data has been successfully saved to system

</div>

        ';

        }

        echo $output;

}

dan untuk tabel databasenya seperti ini:
-- phpMyAdmin SQL Dump

        -- version 4.5.1

        -- http://www.phpmyadmin.net

        --

        -- Host: 127.0.0.1

        -- Generation Time: 25 Sep 2017 pada 23.47

        -- Versi Server: 10.1.16-MariaDB

        -- PHP Version: 5.6.24



        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 utf8mb4 */;



        --

        -- Database: `tag`

        --



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



        --

        -- Struktur dari tabel `programmer`

        --



        CREATE TABLE `programmer` (

        `id` int(11) NOT NULL,

        `name` varchar(255) NOT NULL,

        `skill` text NOT NULL

        ) ENGINE=MyISAM DEFAULT CHARSET=latin1;



        --

        -- Dumping data untuk tabel `programmer`

        --



        INSERT INTO `programmer` (`id`, `name`, `skill`) VALUES

        (1, 'Jhon Smith', 'PHP, Ajax, JQuery, css'),

        (2, 'Marina', 'Phalcon, Bootstrap, mongo db, angular js');



        --

        -- Indexes for dumped tables

        --



        --

        -- Indexes for table `programmer`

        --

        ALTER TABLE `programmer`

        ADD PRIMARY KEY (`id`);



        --

        -- AUTO_INCREMENT for dumped tables

        --



        --

        -- AUTO_INCREMENT for table `programmer`

        --

        ALTER TABLE `programmer`

        MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

/*!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 */;


Silakan Jalankan Program anda, bila ada yang kurang jelas atau ada yang ditanyakan silakan tinggalkan komentar dibawah, terimakasih sudah berkunjung ke blog kami, jika artikel ini bermanfaat silakan di share

Membuat Animasi Text diisi Air di CSS

Hallo Selamat Sore, kali ini admin mau membuat tutorial cara membuat animasi text dengan efek seperti diisi air, menggunakan HTML dan CSS.


langkah pertama buat dulu htmlnya seperti berikut :

<!DOCTYPE html><html><head>    <title>Text Filling With water</title>    <link rel="stylesheet" href="style.css"></head><body>    <div class="loader">        <h1>water</h1>    </div></body></html>

kemudian buat CSS nya seperti berikut:
body {
margin: 0;
padding: 0;
background: #262626;
font-family: arial;
}
.loader {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.loader h1 {
margin: 0;
padding: 0;
text-transform: uppercase;
font-size: 10em;
color: rgba(255,255,255,.1);
background-image: url("water.png");
background-repeat: repeat-x;
background-clip: text;
-webkit-background-clip: text;
animation: animate 15s linear infinite;
}
@keyframes animate {
0% {
background-position: left 0px top 30px;
}
40% {
background-position: left 600px top -150px;
}
80% {
background-position: left 1200px top -150px;
}
100% {
background-position: left 1500px top 30px;
}
}

untuk background gambarnya silakan download disini, anda juga bisa membuat background airnya sendiri. jika membuat background air sendiri sesuaikan background positionnya pada keyframe animate diatas sesuai ukuran gambar kalian, ok. sekianlah tutorial kali ini selamat mencoba, jika tutorial ini bermanfaat silakan bagikan ke teman anda. terimakasih sudah berkunjung ke blog ini.

Menambahkan animasi Loading ketika halaman sedang di muat



pada kesempatan kali ini admin akan membahas cara membuat animasi loading, animasi loading dipakai untuk menunggu halaman kita ketika sedang dimuat, untuk membuatya

pertama buat dulu struktur htmlnya, tambahkan kode berikut di bagian body
<!-- Loading Page -->
<body onload="myFunction()" style="margin:0;">
<div
id="loader"></div>
<div
style="display:none;" id="myDiv" class="animate-bottom">

kemudian buat cssnya seperti berikut
/* Center the loader */

#loader {

position: absolute;

left: 50%;

top: 50%;

z-index: 1;

width: 150px;

height: 150px;

margin: -75px 0 0 -75px;

border: 16px solid #f3f3f3;

border-radius: 50%;

border-top: 16px solid #3498db;

width: 120px;

height: 120px;

-webkit-animation: spin 2s linear infinite;

animation: spin 2s linear infinite;

}



@-webkit-keyframes spin {

0% { -webkit-transform: rotate(0deg); }

100% { -webkit-transform: rotate(360deg); }

}



@keyframes spin {

0% { transform: rotate(0deg); }

100% { transform: rotate(360deg); }

}



/* Add animation to "page content" */

.animate-bottom {

position: relative;

-webkit-animation-name: animatebottom;

-webkit-animation-duration: 1s;

animation-name: animatebottom;

animation-duration: 1s

}



@-webkit-keyframes animatebottom {

from { bottom:-100px; opacity:0 }

to { bottom:0px; opacity:1 }

}



@keyframes animatebottom {

from{ bottom:-100px; opacity:0 }

to{ bottom:0; opacity:1 }

}



#myDiv {

display: none;

}

terakhir javascriptnya
<script>

// Loading Page

var myVar;



function myFunction() {

myVar = setTimeout(showPage, 500);

}



function showPage() {

document.getElementById("loader").style.display = "none";

document.getElementById("myDiv").style.display = "block";

}

</script>


silakan jalankan di browser jika loadingnya muncul berarti anda telah berhasil, selamat mencoba.

Cara Membuat Step Progress bar dengan HTML dan CSS

Selamat Siang teman-teman kali ini Saya mau membahas cara membuat step progress dengan html dan CSS.apa itu step progress? ketika anda mendaftar di facebook misalnya aka nada beberapa part, misalnya part pertama kita mengisi nama, email dll, kemudian part ke dua kita disuruh mengupload foto, dan part ke 3 di suruh menambahkan beberapa teman. nah di atasnya itu ada step  progress, ketika kita udah di part ke dua part ke satunya akan hijau karena telah terlewati dan part selanjutnya yang belum diisi akan berwarna abu-abu. untuk membuat itu kita siapkan dulu struktur htmlnya seperti di bawah:
<!DOCTYPE html>
<html>
<head>
    <title>
Step Progress Tutorial</title>
</head>
<body>
    <div
class="container">
        <ul
class="progressbar">
            <li
class="active">Step 1</li>
            <li>
Step 2</li>
            <li>
Step 3</li>
        </ul>
    </div>
</body>
</html>

kemudian untuk CSS nya seperti di bawah :
.container {

width: 100%;

}

.progressbar {

counter-reset: step;

}

.progressbar li {

list-style-type: none;

float: left;

width: 33.33%;

position: relative;

text-align: center;

}

.progressbar li:before {

content: counter(step);

counter-increment: step;

width: 30px;

height: 30px;

line-height: 30px;

border: 2px solid #ddd;

display: block;

text-align: center;

margin: 0 auto 10px auto;

border-radius: 50%;

background-color: white;

}

.progressbar li:after {

content: '';

position: absolute;

width: 100%;

height: 2px;

background-color: #ddd;

top: 15px;

left: -50%;

z-index: -1;

}

.progressbar li:first-child:after {

content: none;

}

.progressbar li.active {

color: green;

}

.progressbar li.active:before {

border-color: green;

}

.progressbar li.active + li:after {

background-color: green;

}



kemudian jalankan di browser, ok sekian dulu tutorial kali ini semoga bermanfaat.

Membuat Navbar Collapse ketika di scroll ke bawah ilang, ketika di scroll ke atas muncul



Iya Selamat malam kali ini admin akan berbagi tips membuat navbar collapse ketika kita scroll ke bawah navbarnya ilang, ketika di scroll ke atas navbarnya muncul kaya navbar twitter. langsung aja, pertama buat dulu kerangka htmlnya

<!DOCTYPE html>
<html>
<head>
    <meta
charset="utf-8">
    <title>
Navbar Scroll Effect</title>
    <link
rel="stylesheet" href="css/nav.css">
</head>
<body>
    <nav>
        <ul>
            <li><a
href="#">Home</a></li>
            <li><a
href="#">About</a></li>
            <li><a
href="#">Contact Us</a></li>
            <li><a
href="#">Gallery</a></li>
            <li><a
href="#">Profile</a></li>
            <li><a
href="#">Service</a></li>
        </ul>
    </nav>

    <div
class="content">

    </div>
    <script
src="js/jquery-2.2.0.min.js" charset="utf-8"></script>
    <script
type="text/javascript">
       
(function() {
        var documentElem = $(document),
        nav = $('nav'),
        lastScrollTop = 0;

        documentElem.on('scroll', function() {
        var currentScrollTop = $(this).scrollTop();

        // scroll down
        if(currentScrollTop > lastScrollTop) nav.addClass('hidden');
        // scrollTop
        else nav.removeClass('hidden');

        lastScrollTop = currentScrollTop;
        });

        })();
   
</script>
</body>
</html>

kemudian kita buat style nya di css
* {

 margin: 0;

 padding: 0;

 }



 nav {

 position: fixed;

 width: 100%;

 top: 0;

 background-color: #555;

 text-align: center;

 padding: 20px 0;

 transition: all 0.5s ease;

 -webkit-transition: all 0.5s ease;

 -o-transition: all 0.5s ease;

 -ms-transition: all 0.5s ease;

 -moz-transition: all 0.5s ease;

 }



 .hidden {

 transform: translate3d(0,-100%,0);

 -webkit-transform: translate3d(0,-100%,0);

 -o-transform: translate3d(0,-100%,0);

 -ms-transform: translate3d(0,-100%,0);

 -moz-transform: translate3d(0,-100%,0);

 }



 nav ul li {

 display: inline-block;

 margin-right: 60px;

 }



 nav ul li:last-child {

 margin-right: 0;

 }



 nav ul li a {

 text-decoration: none;

 text-transform: uppercase;

 color: #fff;

 font-family: Arial, sans-serif;

 }



 .content {

 height: 2000px;

 background-color: rgb(200,200,200);

 }


Silakan lihat hasilnya di browser, jika ada yang error bisa ditanyakan pada kolom komentar di bawah. Ok sekianlah tutorial kali ini semoga bermanfaat, jika berkenan mohon di share ke teman anda

Download Sitem Login PHP dengan MySQLi dilengkapi dengan google re-captcha dan terintegrasi dengan facebook OAuth 2

Selamat Siang Sobat kali ini admin akan membahas tentang aplikasi login-register sistem, aplikasi ini berguna untuk mengauthentikasi user yang masuk ke website / aplikasi kita, aplikasi ini dibuat dengan PHP dan databse MySQLi juga telah dilengkapi dengan Google re-Captcha, ada juga fitur login dengan facebook, untuk mengaktifkan  login dengan facebook buat dulu aplikasi anda di https://developers.facebook.com/apps/ kemudian setelah mendapatkan ID dan Kunci aplikasi masukan ke fbconfig.php dan cari baris dibawah

// init app with app id and secret
FacebookSession::setDefaultApplication( 'Masukan id aplikasi disini','masukan kunci aplikasi disini' );

Ini tampilannya



untuk databasenya sudah saya masukan dalam folder diatas, jika artikel ini bermanfaat silakan share ke teman anda

Pengalaman Ditilang dan Sidang di Bogor

Hi pemirsa kali ini saya mau sharing tentang pengalaman saya ketilang di daerah bogor, waktu itu pelanggaranya gara-gara bawa tas di taro di depan waktu saya mau mudik, mana jauh banget lagi sidangnya harus di cibinong bogor sedangkan kontrakan saya di jakarta, kemudian saya ditilang dan saya memilih sidang. karena tilangnya elektrik jadi harus transfer dulu ke bank BRI sebesar 500 ribu rupiah, tapi karena saya tidak percaya untuk transfer maka saya tunggu sampai tanggal sidang, untungnya di kejaksaan bisa bayar langsung di loket jadi ngak usah transfer dulu.

kejaksaan disana menerima pembayaran melalui transfer dan cash. anda kena tilang 250 ribu, 500ribu atau satu juta jangan khawatir karena setelah kita ikut sidang biaya denda  nya Cuma 50 ribu sampai seratus ribu saja dan bisa bayar di loket jadi nggak usah bolak balik ke bank ngambil sisa uang kembalian

karena saya baru pertama kali ketilang dan pertama kali juga mengikuti sidang tilang saya sempat ke pengadilan dulu ternyata kata orang pengadilanya sekarang sudah tidak ada sidang dan barang bukti serta pembayaran bisa diambil di kejaksaan. sesuai peraturan baru katanya. untungnya petugas pengadilanya baik ngunjukin saya “langsung aja ke kejaksaan karena berkasnya ama barang bukti mau dikirim kesana, sekarang lagi ditandangani ama hakimnya” katanya

setelah saya sampai ke kejaksaan saya langsung ngantri mengikuti orang-orang untuk mengambil nomor antrian, oh iya jika anda ingin mendapatkan nomor antrian yang pertama anda harus datang lebih awal karena banyak orang-orang yang ngantri juga semakin siang semakin banyak.

Untungnya disana saya nunggu tidak terlalu lama, katanya barang bukti (SIM / STNK) yang ditahan  baru dikirim dari pengadilan sekitar jam 9, jam Sembilan lewat loket sudah dibuka  dan langsung kita dipanggil sesuai nomor antrian, nomor antrian saya pun tidak terlalu tinggi saya mendapatkan nomor 36. lumayan cepat saya datang ke kejaksaan jam 8 kurang dan jam 9 lebih saya sudah selesai

di loket kita Cuma mengambil barang bukti kita yang ditahan dan sekalian bayar jika kita belum transfer, jika kita sudah transfer tinggal minta berkas untuk mengambil uang sisa kita, kemudian diambil lagi di bank

adapun biaya dendanya kalau yang ditahan SIM mau kena satu pasal atau dua pasal pun dendanya Cuma 50ribu tetapi kalu yang ditahan STNK dendanya 70-100ribu. untuk informasi lebih lengkapnya bisa anda buka situs kejaksaan bogor di pn-bogor.go.id/layanan/pid/tilang


tetapi jika anda kena di dareah Jakarta tetap harus di transfer dulu, baru kita ambil berkas ke kejaksaan untuk mengambil barang bukti yang ditahan dan uang kembalian

oke semoga bermanfaat dan bisa dijadikan refernsi jika anda mau mengikuti sidang, jika artikel ini bermanfaat silakan share ke teman anda

Cara mengakses kamera webcam dari web dengan javascript / jquery

Selamat malam kali ini admin akan memposting cara mengakses webcam sendiri di browser dengan javascript. disini saya menggunakan node.js, socket.io dan jquery

Pertama-tama buat file package.json dengan isi seperti berikut:
{
       
"name" : "Wcam-Live",
       
"version" : "0.0.1",
       
"dependencies" : {
       
"socket.io" : "*",
       
"express" : "*",
       
"log" : "*"
       
}
}

kemudian ketikan perintah npm install di command promt

selanjutnya buat file app.js dengan isi seperti dibawah:
var express = require("express");

var app = new express();

var http = require("http").Server(app);

var io = require("socket.io")(http);



    var Log = require('log'),

    log = new Log('debug')



    var port = process.env.PORT || 3000;



    app.use(express.static(__dirname + "/public"));



    app.get('/',function(req,res){

    res.redirect('index.html');

    });



    io.on('connection',function(socket){

    socket.on('stream',function(image){

    socket.broadcast.emit('stream',image);

    });

    });



    http.listen(port,function(){

    log.info('server di jalankan pada port %s',port);

    });

kemudian test di browser dengan dengan perintah node app.js

selanjunya buat folder dengan nama public, didalam folder public buat tiga file index.html, emitir.html dan visualizar.html
untuk isi index.html masukan kode dibawah:
<!DOCTYPE html>

<html>

<head>

<title>Webcam-Live</title>

</head>

<body>

<p><a href="emitir.html">Emitir Video</a></p>



<p><a href="visualizar.html">Visualizar web</a></p>

</body>

</html>

kemudian untuk isi emitir.html masukan kode berikut :
<!DOCTYPE html>

<html>

<head>

<title>Emitir Video</title>

<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.2.min.js"></script>

<script type="text/javascript" src="/socket.io/socket.io.js"></script>

</head>

<body>

<video src="" id="video" style="width: 680px;height:320px;" autoplay="true"></video>

<iframe src="visualizar.html" height="400px" width="40%" style="overflow-x: hidden;overflow-y: hidden;"></iframe>



<canvas style="display: none" id="preview"></canvas>

<div id="logger"></div>



<script type="text/javascript">

        var canvas = document.getElementById('preview');

        var context = canvas.getContext("2d");



        canvas.width = 800;

        canvas.height = 600;



        context.width = canvas.width;

        context.height = canvas.height;



        var video = document.getElementById("video");



        var socket = io();



        function logger(msg)

        {

        $("#logger").text(msg);

        }



        function loadCam(stream)

        {

        video.src = window.URL.createObjectURL(stream);

        logger('Camera connected [OK]');

        }



        function loadFail()

        {

        logger('Error! Camera not connected');

        }



        function viewVideo()

        {

        context.drawImage(video,0,0,context.width,context.height);

        socket.emit('stream',canvas.toDataURL('image/webp'));

        }



        $(function(){

        navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msgGetUserMedia);

        if(navigator.getUserMedia){

        navigator.getUserMedia({video: true},loadCam,loadFail);

        }else if(navigator.webkitGetUserMedia){

        navigator.webkitGetUserMedia({video: true},loadCam,loadFail);

        }else if(navigator.mozGetUserMedia){

        navigator.mozGetUserMedia({video: true},loadCam,loadFail);

        }else if(navigator.msgGetUserMedia){

        navigator.msgGetUserMedia({video: true},loadCam,loadFail);

        }



        setInterval(function(){

        viewVideo(video,context);

        }, 70);

        });

</script>

</body>

</html>

dan untuk isi visualizar.html masukan kode berikut:
<!DOCTYPE html>

<html>

<head>

<title>Visualizar Video</title>

<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.2.min.js"></script>

<script type="text/javascript" src="/socket.io/socket.io.js"></script>

</head>

<body>

<img id="play" width="100%">

<div id="logger"></div>



<script type="text/javascript">

        var socket = io();

        socket.on('stream', function(image){

        var img = document.getElementById("play");

        img.src = image;

        $("#logger").text(image);

        });

</script>

</body>

</html>


selanjutnya jalankan aplikasi anda dengan perintah node app.js, akan ada tulisan server dijalankan pada port 3000. selanjunya buka localhost:3000 jika webcam nya tampil di browser seperti pada gambar di bawah berarti anda telah berhasil,


 selanjunya kode ini bisa anda kembangkan untuk membuat aplikasi video call / confrence call. sekian tutorial kali ini semoga bermanfaat, jika artikel ini berguna silakan share ke teman anda, jika ada yang error bisa di tanyakan pada komentar dibawah