UP
    Latest News
Showing posts with label PHP Mysql. Show all posts
Showing posts with label PHP Mysql. Show all posts

Apa Itu Session Pada PHP ? Ini Jawabannya dan Contoh Penggunaanya Pada PHP

Apa Itu Session Pada PHP ? Ini Jawabannya dan Contoh Penggunaanya Pada PHP
Halo semua sahabat blog Belajar Pintar PHP, pada awal februari ini saya ingin membagikan kepada anda sebuah ilmu yang sangat penting dan wajib anda kuasai jika anda ingin menjadi web developer, kali ini kita akan membahas cara membuat autentikasi dengan fungsi PHP yaitu Session. Apa itu session dan apa kegunaannya ? tentu anda yang belum paham akan berpikir demikian. Baiklah, secara garis besar dapat kita simpulkan bahwa session pada php pada umumnya digunakan dalam membuat halaman login dan logout, baik itu member maupun admin, dan untuk lebih jelasnya, mari kita bahas satu persatu.

1. Pendahuluan

Autentikasi adalah suatu mekanisme untuk mengatur hak akses suatu halaman web, biasanya diawali dengan adanya proses login. Dimana user diminta menginput user id dan password. Jika berhasil login anda atau user berhak masuk ke suatu halaman, dan jika tidak, anda atau user tidak akan bisa masuk ke halaman tersebut.

Session adalah sebuah varibel sementara yang diletakkan di server. Di mana PHP bisa mengambil nilai yang tersimpan di server walaupun kita membuka halaman baru. Biasanya session akan hilang jika anda menutup browser.
Contoh penggunaan session yang dapat kita lihat dan alami adalah pada proses login facebook, sebenarnya diwaktu anda mengetikkan email anda dan password anda ketika login pada facebook, pertama-tama alamat email dan password anda akan dicek atau dicocokkan oleh facebook dengan alamat email yang tersimpan dalam database facebook, dan jika alamat email dan password anda ditemukan dalam database facebook maka program facebook ini akan menyimpan alamat email dan password anda pada server atau agar anda lebih mengerti, sifacebook akan menyimpannya didalam browser yang anda gunakan baik itu Firefox maupun Google Chrome. Makanya diwaktu kita menutup atau meng-close browser kita dan kita menjalankan kembali browser tersebut akan muncul lagi halaman login. Kenap demikian ? padahal kita sebelumnya sudah melakukan proses login, mungkin dari antara anda semua bertanya demikan, jawabanya adalah karena fungsi yang digunakan pada halaman login facebook adalah fungsi Session tadi, dimana seperti yang saya katakan tadi jika browser ditutup atau diclose, maka session yang didaftarkan tadi akan hilang, dan oleh karena itu maka halaman login facebook tadi nongol lagi. Oke, untuk lebih jelasnya mari kita bahas dibawah ini.

2. Cara Membuat atau Register atau mendaftarkan Session

Cara membuat session adalah sebagai berikut :
  1. Deklarasi awal kalau kita menggunakan session, yaitu menggunakan fungsi session_start()
  2. Set suatu nilai ke variabel $_SESSION
Sebagai contoh, buat suatu halaman php dengan nama "halaman1.php" lalu ketik atau copy script php dibawah ini kedalamnya.

halaman1.php

<?php
session_start();
 
$_SESSION['namauser'] = "ivan";//session yang akan didaftarkan 
//atau disimpan pada server
 
echo $_SESSION['namauser'];
 
echo "<a href='halaman2.php'>Ke Halaman 2</a>";
?>

Catatan :




  • Script Session_start() harus diletakkan pada baris code nomor satu pada editor yang anda gunakan.
  • Kode session_start() harus diletakkan sebelum ada output apapun walaupun hanya spasi, jadi sebaikanya selalu letakkan di bagian paling atas

  • 3. Cara Mengecek Session Telah Teregister atau terdaftar

    Setelah kita me-registerkan variabel $_SESSION seperti yang kita lakukan pada "halaman1.php" tadi, maka untuk mengecek apakah session telah diregister adalah dengan menggunakan fungsi isset().
    Pada contoh di atas (halaman1.php), setelah kita me-register $_SESSION['namauser'], kita akan ke halaman2.php
    Di halaman2.php kita akan cek apakah variabel session telah di register, jika belum kita stop membuka isi halaman2.php

    Sekarang mari kita buat halaman php dengan nama "halaman2.php" lalu tempatkan script php dibawah ini kedalamnya :

    halaman2.php

    <?php
    session_start();
     
    if(!isset($_SESSION['namauser'])){
        //jika session belum di set/register
        die("Anda belum register atau mendaftarkan session");
    }
     
    //jika sudah register kita lanjut dengan mencetak tulisan
    ?>
    <h2>Selamat Datang</h2>
     
    <?php
    echo $_SESSION['namauser'];
    ?>
    Untuk melihat efeknya antara variabel $_SESSION sudah diregister atau belum, coba anda tutup browser, lalu buka lagi browsernya, langsung buka halaman halaman2.php. Tanpa membuka halaman1.php terlebih dahulu, lalu lihat hasilnya, jika sudah sekarang coba anda jalankan "halaman1.php" dan kemudian jalankan "halaman2.php" , maka lihat hasilnya dan perbedaanya. Saran saya, lakukan hal yang sama berulang-ulang seperti langkah yang saya sebutkan diatas dan rubah tulisan "ivan" pada "halaman1.php" tadi dengan nama anda atau nama apa saja, dan lihat hasilnya sekaligus perbedaanya hingga anda dapat mengerti apa itu session. Oke...!!

    4. Cara Un-Register Session (Log Out)

    Setelah kita belajar me-register session, maka cara un-register session adalah dengan menggunakan fungsi unset() , script ini sama halnya dengan membuat logout pada halaman website, namun ini masih contoh kecil dan masih bisa anda kembangkan sesuai dengan kebutuhan anda. Dan untuk membuatnya mari kita buat lagi halaman php dengan nama "logout.php" lalu copy kan script dibawah ini kedalamnya:

    logout.php

    <?php
    session_start();
     
    unset($_SESSION['namauser']);
    ?>
    Jika sudah, maka coba jalankan halaman yang anda buat tadi secara berurutan, pertama coba anda jalankan "halaman1.php" , jika sudah lalu jalankan "halaman2.php" dan lihat tulisan yang mucul pada halamn browser anda, jika anda sudah melihatnya lalu jalankan halaman "logout.php" dan jika semuanya sudah selesai anda jalankan sesuai urutan yang saya katakan, maka refresh atau reload "halaman2.php" tadi dan lihat perbedaannya.
    Saran saya sebagai admin blog ini, agar anda cepat dan dapat dengan mudah mengerti apa itu fungsi session pada php, coba anda ulangi langkah yang saya anjurkan tadi berulang-ulang hingga anda dapat mengerti apa sebenarnya session itu. Sekian untuk kali ini, jangan lupa share dan komentnya.

    MYSQL : Tipe - Tipe Data yang didukung oleh MySQL

    MYSQL : Tipe - Tipe Data yang didukung oleh MySQL
    Oke Sahabat setia Belajar Pintar PHP, Pada artikel ini kita akan membahas tipe - tipe data yang didukung oleh MySQL. Pemilihan tipe data merupakan suatu hal yang cukup penting dalam mengelola server. Salah satu sebabnya adalah berkaitan dengan ruang di harddisk dan memori yang akan “digunakan” oleh data-data tersebut. Terkadang kita mengabaikan hal ini dan hanya ingin mengetahui tipe data tertentu saja tanpa mau tahu tipe data yang lainnya.
    Berikut ini akan diberikan tipe-tipe data yang didukung oleh MySQL yang terambil dari dokumentasi MySQL. Tipe - tipe data ini diberikan dalam bentuk yang siap dituliskan pada sintaks-sintaks MySQL, misalnya Create Table. Pada tipe-tipe data tersebut terdapat beberapa atribut yang memiliki arti sebagai berikut:
    • M, menunjukkan lebar karakter maksimum. Nilai M maksimum adalah 255.
    • D,  menunjukkan jumlah angka di belakang koma. Nilai maksimum D adalah 30 tetapi dibatasi oleh nilai M, yaitu tidak boleh lebih besar daripada M-2.
    • Atribut yang diberi tanda [ dan ] berarti pemakaiannya adalah optional.
    • Jika atribut ZEROFILL disertakan, MySQL akan otomatis menambahkan atribut UNSIGNED.
    • UNSIGNED adalah bilangan tanpa tanda di depannya (misalnya tanda negatif).

    Inilah tipe-tipe data Mysql tersebut:

    • TINYINT[(M)] [UNSIGNED] [ZEROFILL]
    Integer yang sangat kecil jangkauan nilainya, yaitu -128 hingga 127. Jangkauan unsigned adalah 0 hingga 255.
    • SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
    Integer yang kecil jangkauan nilainya, yaitu -32768 hingga 32767. Jangkauan unsigned adalah 0 hinga 65535.
    • MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
    Integer tingkat menengah. Jangkauan nilainya adalah -8388608 hingga 8388607. Jangkauan unsigned adalah 0 hingga 16777215.
    • INT[(M)] [UNSIGNED] [ZEROFILL]
    Integer yang berukuran normal. Jangkauan nilainya adalah -2147483648 hingga 2147483647. Jangkauan unsigned adalah 0 hingga 4294967295.
    • INTEGER[(M)] [UNSIGNED] [ZEROFILL]
    Sama dengan INT.
    • BIGINT[(M)] [UNSIGNED] [ZEROFILL]
    Integer berukuran besar. Jangkauan nilainya adalah -9223372036854775808 hingga 9223372036854775807. Jangkauan unsigned adalah 0 hingga 18446744073709551615.
    • FLOAT(precision) [ZEROFILL]
    Bilangan floating-point. Tidak dapat bersifat unsigned. Nilai atribut precision adalah <=24 untuk bilangan floating-point presisi tunggal dan di antara 25 dan 53 untuk bilangan floating-point presisi ganda.
    • FLOAT[(M,D)] [ZEROFILL]
    Bilangan floating-point presisi tunggal. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -3.402823466E+38 hingga -1.175494351E-38 untuk nilai negatif, 0, and 1.175494351E-38 hingga 3.402823466E+38 untuk nilai positif.
    • DOUBLE[(M,D)] [ZEROFILL]
    Bilangan floating-point presisi ganda. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -1.7976931348623157E+308 hingga -2.2250738585072014E-308 untuk nilai negatif, 0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308 untuk nilai positif.
    • DOUBLE PRECISION[(M,D)] [ZEROFILL] dan REAL[(M,D)] [ZEROFILL]
    Keduanya sama dengan DOUBLE.
    • DECIMAL[(M[,D])] [ZEROFILL]
    Bilangan floating-point yang “unpacked”. Tidak dapat bersifat unsigned. Memiliki sifat mirit dengan CHAR.   Kata “unpacked'' berarti bilangan disimpan sebagai string, menggunakan satu karakter untuk setiap digitnya. Jangkauan nilai dari DECIMAL sama dengan DOUBLE, tetapi juga tergantung dai nilai atribut M dan D yang disertakan. Jika D tidak diisi akan dianggap 0. Jika M tidak diisi maka akan dianggap 10. Sejak MySQL 3.22 nilai M harus termasuk ruang yang ditempati oleh angka di belakang koma dan tanda + atau -.
    • NUMERIC(M,D) [ZEROFILL]
    Sama dengan DECIMAL.
    • DATE
    Sebuah tanggal. MySQL menampilkan tanggal dalam format 'YYYY-MM-DD'. Jangkauan nilainya adalah '1000-01-01' hingga '9999-12-31'.
    • DATETIME
    Sebuah kombinasi dari waktu (jam) dan tanggal. MySQL menampilkan waktu dan tanggal dalam format 'YYYY-MM-DD HH:MM:SS'. Jangkauan nilainya adalah '1000-01-01 00:00:00' hingga '9999-12-31 23:59:59'.
    • TIMESTAMP[(M)]
    Sebuah timestamp. Jangkauannya adalah dari '1970-01-01 00:00:00' hingga suatu waktu di tahun 2037. MySQL menampilkan tipe data TIMESTAMP dalam format YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, atau YYMMDD, tergantung dari nilai M, apakah 14 (atau tidak ditulis), 12, 8, atau 6.
    • TIME
    Tipe data waktu. Jangkauannya adalah '-838:59:59' hingga '838:59:59'. MySQL menampilkan TIME dalam format 'HH:MM:SS'.
    • YEAR[(2|4)]
    Angka tahun, dalam format 2- atau 4-digit (default adalah 4-digit). Nilai yang mungkin adalah 1901 hingga 2155, 0000 pada format 4-digit, dan 1970-2069 pada format 2-digit (70-69).
    • CHAR(M) [BINARY]
    String yang memiliki lebar tetap. Nilai M adalah dari 1 hingga 255 karakter. Jika ada sisa, maka sisa tersebut diisi dengan spasi (misalnya nilai M adalah 10, tapi data yang disimpan hanya memiliki 7 karakter, maka 3 karakter sisanya diisi dengan spasi). Spasi ini akan dihilangkan apabila data dipanggil. Nilai dari CHAR akan disortir dan diperbandingkan secara case-insensitive menurut default character set yang tersedia, kecuali bila atribut BINARY disertakan.
    • VARCHAR(M) [BINARY]
    String dengan lebar bervariasi. Nilai M adalah dari 1 hingga 255 karakter. Jika nilai M adalah 10 sedangkan   data yang disimpan hanya terdiri dari 5 karakter, maka lebar data tersebut hanya 5 karakter saja, tidak ada tambahan spasi.
    • TINYBLOB dan TINYTEXT
    Sebuah BLOB (semacam catatan) atau TEXT dengan lebar maksimum 255 (2^8 - 1) karakter.
    • BLOB dan TEXT
    Sebuah BLOB atau TEXT dengan lebar maksimum 65535 (2^16 - 1) karakter.
    • MEDIUMBLOB dan MEDIUMTEXT
    Sebuah BLOB atau TEXT dengan lebar maksimum 16777215 (2^24 - 1) karakter.
    • LONGBLOB dan LONGTEXT
    Sebuah BLOB atau TEXT dengan lebar maksimum 4294967295 (2^32 - 1) karakter.
    • ENUM('value1','value2',...)
    Sebuah enumerasi, yaitu objek string yang hanya dapat memiliki sebuah nilai, dipilih dari daftar nilai 'value1', 'value2', ..., NULL atau nilai special "" error. Sebuah ENUM maksimum dapat memiliki 65535 jenis nilai.
    • SET('value1','value2',...)
    Sebuah set, yaitu objek string yang dapat memiliki 0 nilai atau lebih, yang harus dipilih dari daftar nilai 'value1', 'value2', .... Sebuah SET maksimum dapat memiliki 64 anggota.
     Sekian Tutorial Mysql dari saya, semoga bermanfaat bagi kita semua.
    Thanks ...!!!

    (Source Code PHP ) Membuat Script Multiple Delete dengan Checkbox dan Konfirmasi Delete dengan Javascript dan PHP

    (Source Code PHP ) Membuat Script Multiple Delete dengan Checkbox dan Konfirmasi Delete dengan Javascript dan PHP
    Halo lagi buat semua pengunjung setia Belajar Pintar PHP, bulan january ini anda semua akan kebanjiran source code php yang sangat bermanfaat, kenapa saya katakan demikian ? tentunya ada hubungannya dengan judul kita saat ini, dimana kita akan membuat Script Multiple Delete dengan Checkbox dan Konfirmasi Delete dengan Javascript dan PHP.

    Pada contoh berikut kita akan membuat script multiple delete data dari database, di mana kita menggunakan checbox untuk memilih data-data yang akan didelete. Kita juga akan membuat feature untuk check uncheck semua checkbox yang ada. Selain itu kita juga akan menampilkan window konfirmasi apakah data akan didelete atau tidak.

    Membuat Multiple Delete dengan javascript dan php

    Oke sekarang mari kita ke TKP dan lakukan sesuai langkah yang saya berikan, Go ..!!!

    1. Buat Halaman dengan Nama Index.php , Lalu Copy-kan code ini kedalamnya :

    <?php
    include "koneksi.php";
    ?>
    <html>
    <head><title>Delete</title>
    <script>
    var jumlahnya;
    function ceksemua(){
        jumlahnya = document.getElementById("jumlahcek").value;
        if(document.getElementById("cekbox").checked==true){
            for(i=0;i<jumlahnya;i++){
                idcek = "bukuid"+i;
                idtr = "tr"+i;
                document.getElementById(idtr).style.backgroundColor = "#efefef";
                document.getElementById(idcek).checked = true;
            }
        }else{
            for(i=0;i<jumlahnya;i++){
                idcek = "bukuid"+i;
                idtr = "tr"+i;
                document.getElementById(idtr).style.backgroundColor = "#FFFF99";
                document.getElementById(idcek).checked = false;
            }
        }
    }
    function konfirmasicek(indeks){
        idcek = "bukuid"+indeks;
        bukuidnya = document.getElementById(idcek).value;
        tanya = confirm("Delete Buku dengan ID "+bukuidnya+"?");
        if(tanya == 1){
            window.location.href="delete.php?op=delsatu&id="+bukuidnya;
        }
    }
    function konfirmasicek2(){
        ada = 0;            //untuk mengecek apakah ada checkbox yang dicek
        semuanyakah = 1;    //untuk mengecek apakah semua checkbox tercek
       
        //untuk mengambil jumlah total checkbox yang ada
        jumlahnya = document.getElementById("jumlahcek").value;
       
        jumlahx = 0         //untuk mengetahui jumlah yang dicek
        for(i=0;i<jumlahnya;i++){
            idcek = "bukuid"+i;
            if(document.getElementById(idcek).checked == true){
                jumlahx++;
                ada = 1;
            }else{
                semuanyakah = 0;
            }
        }
        if(ada==1){
            if(semuanyakah == 1){
                tanya = confirm("Mau delete semuanyakah?");
                if(tanya == 1){
                    document.getElementById("formulirku").submit();
                }
            }else{
                tanya = confirm("Mau delete data "+jumlahx+" item ?");
                if(tanya == 1){
                    document.getElementById("formulirku").submit();
                }
            }
        }
    }
    function setwarna(indeks){
        idcek = "bukuid"+indeks;
        idtr = "tr"+indeks;
        if(document.getElementById(idcek).checked == true){
            document.getElementById(idtr).style.backgroundColor = "#efefef";
        }else{
            document.getElementById(idtr).style.backgroundColor = "#FFFF99";
        }
    }
    </script>
    </head>
    <body bgcolor="#FFFF99">
    <?php
    if($_GET['op']=="berhasildelete"){
        echo "<b><font color=red>Data berhasil didelete</font></b><br>";
    }
    ?>
    <form action=delete.php method=post id=formulirku>
    <table border="1" cellpadding="3" cellspacing="0" bgcolor="#FFFF99"
    style="border-collapse: collapse" bordercolor="#FFCC00">
      <tr>
        <td bgcolor="#FF9900"><input type="checkbox" onclick="ceksemua()" id="cekbox"></td>
        <td bgcolor="#FF9900"><b>ID Buku</b></td>
        <td bgcolor="#FF9900"><b>Judul Buku</b></td>
      </tr>
    <?php
    $databuku = mysql_query("SELECT * FROM buku");
    $indexcek = 0;
    while($d = mysql_fetch_array($databuku)){
        echo "<tr id='tr$indexcek'><td><input type='checkbox' name='bukuid[]'
        value='".$d['bukuid']."' id='bukuid$indexcek' onclick='setwarna($indexcek)'>
        <img src='delete.png' onclick=\"konfirmasicek('$indexcek')\"
        style='cursor:pointer'>\n";
        echo "<td>".$d['bukuid']."</td><td>".$d['judul']."</td></tr>\n";
        $indexcek++;
    }
    echo "<input type=hidden id='jumlahcek' value='$indexcek' name='jumlahcek'>";
    ?>
    </table>
    <input type="button" value="delete" onclick="konfirmasicek2()">
    </form>
    </body>
    </html>

    2. Buat lah halaman dengan nama Delete.php, lalu copy-kan code ini kedalamnya:

    <?php
    include "koneksi.php";
    $op = $_GET['op'];
    if($op){
        $id = $_GET['id'];
        $del = mysql_query("DELETE FROM buku WHERE bukuid='$id'");
    }else{
        foreach($_POST['bukuid'] as $value){
            $del = mysql_query("DELETE FROM buku WHERE bukuid='$value'");
        }
    }
    if($del){
        header("location:index.php?op=berhasildelete");
    }else{
        echo "error";
    }
    ?>

    Sekian Source Code PHP -nya, semoga bermanfaat dan selamat mencoba bagi sahabat Belajar Pintar PHP.

    (Tutorial PHP) Membuat Berita Dinding Auto Refresh Seperti Twitter dengan jQuery dan PHP

    (Tutorial PHP) Membuat Berita Dinding Auto Refresh Seperti Twitter dengan jQuery dan PHP
    Halo sahabat Belajar Pintar PHP, kali ini saya akan memberikan source code php yang tentunya bisa saya jamin anda akan sangat menyukainya. Pada kasus ini kita akan melibatkan bantuan dari Ajax Jquery. Penasaran ??? Oke langsung saja.
    Anda Tau kan Twitter ?? kalau kita masuk ke halaman depan twitter.com, maka akan kita lihat semacam berita dinding yang menampilkan status atau berita terbaru dari para twitter. Berita terbaru tersebut ditampilkan secara scrolling, kemudian menngunakan efek fade in. Pada artikel kali ini kita akan belajar membuat seperti itu, dimana pada program kita kali ini, kita akan menampilkan lima berita terbaru secara scolling dan fade in (dari pudar mejadi jelas). Kemudian program kita secara periodik akan mengecek ke database, jika ada berita terbaru, maka akan langsung kita update di berita dinding.

    Wall Twitter

    Sekarang mari kita lihat algoritma dan kode dari program ini.

    Algoritma :


    1. Membuat database user dan berita
    2. Mengambil 5 berita terbaru dari database
    3. Memasukkan 5 berita ke dalam suatu variabel array, supaya gampang melakukan proses scrolling
    4. Melakukan scrolling 5 berita terbaru tersebut
    5. Mengecek berita terbaru setiap 4 detik, jika ada yang terbaru, tambahkan ke dalam variabel array untuk scrolling tersebut.
    Berikut Kode Lengkapnya
    Berikut adalah struktur tabel_user dan tabel_berita
    CREATE TABLE `tabel_user` (
      `nomor` int(5) NOT NULL auto_increment,
      `userid` varchar(30) NOT NULL,
      `password` varchar(30) NOT NULL,
      `nama` varchar(30) NOT NULL,
      `email` varchar(30) NOT NULL,
      `photo` varchar(50) NOT NULL,
      PRIMARY KEY  (`nomor`)
    );
    CREATE TABLE `tabel_berita` (
      `nomor` int(5) NOT NULL auto_increment,
      `user_nomor` int(5) NOT NULL,
      `waktu` datetime NOT NULL,
      `berita` tinytext NOT NULL,
      PRIMARY KEY  (`nomor`)
    );

    1. Pada halaman index.php, Copy-kan kode php di bawah ini :

    <html>
    <head>
    <title>Berita dinding seperti twitter</title>
    <style>
    body{background-color:#93C9FF;font-family:verdana;font-size:10pt}
    #papan{width:600;height:300;border:#efefef 1px solid;
    background-color:white;overflow:hidden}
    .p{background-color:white;height:70;text-align:left;
    border-bottom:#cdcdcd 1px solid;padding:5}
    .x{background-color:white;height:70;text-align:left;
    border-bottom:#cdcdcd 1px solid;display:none;padding:5}
    a{color:#306DA3;text-decoration:none}
    </style>
    <script type="text/javascript" src="jquery-1.4.3.min.js"></script>
    <script>
    var i = 5;
    var jumlah;
    var brt = new Array();
    var rotasi = 5;
    var nomorakhir;
    var posisiar;
    $(document).ready(function(){
        jumlah = $("#jumlahberita").html();
        jumlah = parseInt(jumlah);
        nomorakhir = $("#nomorakhir").html();
        for(x=1;x<=jumlah;x++){
            brt[x] = $("#drz"+x).html(); //mengambil berita ,menjadi array brt[]
        }
        cek();
        putar();
    });
    function cek(){
        $.ajax({
            url: "cekdata.php",
            data: "akhir="+nomorakhir,
            cache: false,
            success: function(msg){
                if(msg!=""){
                    data = msg.split("||");
                    nomorakhir = data[0];
                    brt.push(data[1]); //tambahkan berita baru ke array brt[] di posisi akhir
                    jumlah++;
                    rotasi = jumlah;
                }
            }
        });
        var waktucek = setTimeout("cek()",4000);
    }
    function putar(){
        if(jumlah>4){                   //kita putar atau scroll jika jumlah berita lebih dari 4
            $("#papan").prepend("<div id=drz"+i+" class=x><span id=s"+i+">"+brt[rotasi]+"<br></span></div>");
            $("#s"+i).hide();
            $("#drz"+i).slideDown(400); //fungsi untuk melakuan scrolldown
            $("#s"+i).fadeIn(3000);     //fungdi untuk menampilkan berita secara fade in
            rotasi--;
            i++;
            if(rotasi<=(jumlah - 5)){
                rotasi = jumlah;
            }
        }
        var waktuputar = setTimeout("putar()",4000);
    }
    </script>
    </head>
    <body>
    <center>
    <br>
    <div id=papan>
    <?php
    include "koneksi.php";
    $i = 1;
    //mengambil 5 berita terbaru dari database
    $berita = mysql_query("SELECT * FROM tabel_berita,tabel_user
    WHERE tabel_user.nomor=tabel_berita.user_nomor
    ORDER by tabel_berita.nomor DESC LIMIT 5");
    while($b = mysql_fetch_array($berita)){
        echo "<div class=p id=drz$i>";
        echo "<img src='".$b['photo']."' align=left><b><a href=#>".$b['nama']."</a></b> ";
        echo "<font size=1>".$b['waktu']."</font><br>".$b['berita']."<br>";
        echo "</div>\n";
        $i++;
    }
    //mengambil nomor terakhir, yang nanti berguna untuk pengecekan
    $akhir = mysql_query("SELECT nomor FROM tabel_berita ORDER BY nomor DESC LIMIT 1");
    $a = mysql_fetch_array($akhir);
    $akhirnya = $a['nomor'];
    ?>
    </div>
    <?php
    $j = $i - 1;
    echo "<span id=jumlahberita style='display:none'>$j</span>";
    echo "<span id=nomorakhir style='display:none'>$akhirnya</span>";
    ?>
    <p>
    <script>
    function buka(id,no){
        window.open("formberita.php?userid="+id+"&no="+no,"","width=500,height=400,toolbar=0");
    }
    </script>
    Tes kirim pesan dari :<p>
    <ul>
    <li><a href="javascript:buka('alex',1)">Alex</a>
    <li><a href="javascript:buka('budi',2)">Budi</a>
    <li><a href="javascript:buka('Mitha',3)">Mitha</a>
    <li><a href="javascript:buka('bagas',4)">Bagas</a>
    <li><a href="javascript:buka('Luthor',5)">Luthor</a>
    </ul>
    </body>
    </html>

    2. Pada Halaman cekdata.php, untuk mengecek berita terbaru di database copy-kan code dibawah ini kedalam halaman cekdata.php :

    <?php
    include "koneksi.php";
    $a = $_GET['akhir'];
    $berita = mysql_query("SELECT * FROM tabel_berita,tabel_user
    WHERE tabel_user.nomor=tabel_berita.user_nomor
    AND tabel_berita.nomor>$a");
    while($b = mysql_fetch_array($berita)){
        echo $b[0]."||";
        echo "<img src='".$b['photo']."' align=left><b><a href=#>".$b['nama']."</a></b> ";
        echo "<font size=1>".$b['waktu']."</font><br>".$b['berita']."<br>\n";
    }
    ?>

    Sekian dari saya dan selamat mencoba.

    Download Source Code Lengkapnya pada link dibawah ini :

    Download

    (Tutorial PHP) Membuat Dynamic Title dengan PHP

    (Tutorial PHP) Membuat Dynamic Title dengan PHP
    Hai semua sahabat Belajar Pintar PHP, kali ini saya ingin membagikan suatu tutorial php yang tidak kalah menariknya dengan postingan saya sebelumnya. Kali ini kita ingin membuat Dynamic Title, dan tentu anda akan bertanya apa itu dynamic title pada php. Ini semua kita bahas karena berhubungan dengan SEO.
    SEO atau Search Engine Optimization, yaitu sebuah cara yang mempermudah sebuah website dikenali dan direcord dalam database search engine. Bagi anda seorang web master banyak hal yang tentunya telah anda lakukan guna mempromosikan website anda dengan mengikuti syarat-syarat SEO tersebut. Seperti penggunaan CSS, submit web ke penyedia jasa search engine, membuat url yang friendly dengan mod_rewrite, membuat dynamic title, dan segudang syarat lainnya.
    Sesuai dengan judul yang akan kita bahas, disini saya akan menjelaskan secara sederhana bagaimana membuat Dynamic Title. Sederhananya untuk membuat Dynamic Title yaitu dengan memanfaatkan tag title pada html, kemudian variable global $_REQUEST[], dan tentunya database MySQLnya. Oke, langsung saja, langsung saja ke TKP ...!!!

    Hal pertama yang akan kita lakukan adalah membuat databasenya terlebih dahulu.


    //database.sql
    create database cms_db;
    use cms_db;
    create table tablenyah(id int(5) auto_increment primary key,
    judul_artikel varchar(100), penulis_artikel varchar(50), isi_artikel text);
    insert into tablenyah values("","Membuat Dynamic Title dengan PHP","alfan munandar ",
    "Ivan itu baik dan pandai ");
    insert into tablenyah values("","Belajar Pintar PHP ","Vans",
    "Buanglah sampah pada tempatnya ");
    Berikut ini adalah source code php lengkap-nya :
    File konfigurasi, koneksi antara mysql dan php.
    // config.php

    <?php
    $host = "localhost";
    $username = "root";
    $password = "";
    $databasename = "cms_db";
    $connect = mysql_connect($host, $username, $password) or die("Koneksi Gagal!!!");
    $database = mysql_select_db($databasename, $connect);
    ?>

    Berikut script halaman utama yaitu index.php

    // index.php
    <html>
    <head>
    <title>
    <?php
    // Dynamic Title
    // Created by: alfan munandar
    // http://15desember2011.blogspot.com
    include "config.php";
    $id = $_REQUEST['id'];
    $query1 = "select judul_artikel from tablenyah where id='$id' ";
    $runquery1 = mysql_query($query1);
    $judul = mysql_fetch_array($runquery1);
    if($_REQUEST['mode'] == "tutorial_php")
    {
    print "Tutorial PHP";
    if (!ISSET($_REQUEST['id']))
    {
    print " | Belajar Pintar PHP ";
    }
    else
    {
    print " | ". $judul['judul_artikel'];
    }
    }
    else
    {
    print "Belajar Pintar PHP ";
    }
    ?>
    </title>
    </head>
    <body>
    <?php
    $query2 = "select id, judul_artikel, penulis_artikel, isi_artikel from tablenyah";
    $runquery2 = mysql_query($query2);
    $query3 = "select judul_artikel, penulis_artikel, isi_artikel from tablenyah where id='$id'";
    $runquery3 = mysql_query($query3);
    if (ISSET($_REQUEST['mode']))
    {
    if (!ISSET($_REQUEST['id']))
    {
    while ($result = mysql_fetch_array($runquery2))
    {
    print "<a href=index.php?mode=tutorial_php&id=$result[id]>
    $result[judul_artikel]</a><br>";
    }
    print "<br><a href=index.php>Kembali</a>";
    }
    else
    {
    $content = mysql_fetch_array($runquery3);
    $judul = $content['judul_artikel'];
    $penulis = $content['penulis_artikel'];
    $isi = $content['isi_artikel'];
    print "<b><u>$judul</u></b><br>";
    print "Penulis : $penulis<br><br>";
    print "$isi";
    print "<br><br><a href=index.php?mode=$_REQUEST[mode]>Kembali</a>";
    }
    }
    else
    {
    print "<a href=index.php?mode=tutorial_php>Tutorial PHP</a><br>";
    }
    ?>
    </body>
    </html>
    Oke sahabat sekalian , kita akan membahas source code php diatas.
    Yang kita bahas pada file config.php diatas adalah :

    $connect = mysql_connect($host, $username, $password) or die("Gagal Koneksi !!!");
    $database = mysql_select_db($databasename, $connect);
    variable variable $connect berfungsi mengkoneksikan Server PHP dengan database MySQL,
    sedangkan variable $database melakukan seleksi database apa yang akan digunakan nantinya.


    Padahalaman utama atau file index.php, saya hanya menjelaskan bagian intinya saja, yakni :

    <?php
    include "config.php";
    $id = $_REQUEST['id'];
    $query1 = "select judul_artikel from tablenyah where id='$id' ";
    $runquery1 = mysql_query($query1);
    $judul = mysql_fetch_array($runquery1);
    if($_REQUEST['mode'] == "tutorial_php")
    {
    print "Tutorial PHP";
    if (!ISSET($_REQUEST['id']))
    {
    print " | Belajar Pintar PHP ";
    }
    else
    {
    print " | ". $judul['judul_artikel'];
    }
    }
    else
    {
    print "Belajar Pintar PHP ";
    }
    ?>
    Oke saudara-saudara sekalian Logikanya kira-kira seperti ini :
    Ketika user masuk pada halaman index.php kemudian
    melakukan klik pada link, dalam hal ini misalnya Tutorial PHP yang kemudian menghasilkan
    variable global $_REQUEST['mode']-nya berisi "tutorial_php" maka yang terjadi adalah tag
    title akan berisi Tutorial PHP, diambil dari ekspresi :

    if($_REQUEST['mode'] == "tutorial_php")
    {
    print "Tutorial PHP";

    Dan dan tag title pun akan berubah pada kondisi ketika user melakukan klik pada salah satu
    sub link dengan memanfaatkan variable global $_REQUEST['id'].
    Sederhananya seperti itu.
    Sekian dulu tutorial php dari saya, selamat mencoba !

    Cara Membuat laporan jumlah karyawan laki-laki , perempuan dan total karyawan dengan PHP MYSQL

    Cara Membuat laporan jumlah karyawan laki-laki , perempuan dan total karyawan dengan PHP MYSQL
    Halo sahabat Belajar Pintar PHP , sebelumnya saya mengucapkan selamat tahun baru 2013 buat semua sahabat setia blog ini, dan tentunya saya akan memberikan postingan-postingan terbaru dan berkualitas pada anda semua.
    Pada postingan kali ini, saya akan memberikan sebuah tips php mysql , mengenai cara menampilkan jumlah karyawan yang berjenis kelamin Perempuan dan Laki-laki serta total seluruh jumlah karyawan dalam sebuah tabel laporan yang di rangkai dalam sebuah halaman website. Postingan ini juga saya buat sehubungan dengan pertanyaan sahabat kita pada blog ini kemarin.
    Oke tanpa banyak basa-basi, langsung saja ke TKP ...!

    Buat sebuah halaman dengan nama report.php

    lalu copy-paste kan program di bawah ini ke dalam halaman tadi :


    <?php
    //code by: belajar pintar php
    //lakukan koneksi ke MySQL
    mysql_connect("localhost","root","");

    //Pilih database tempat tabel akan dibuat
    mysql_select_db("databaseku"); // sesuai dengan nama database anda, pada kasus ini saya menggunakan //nama database "databaseku"

    $query = mysql_query("SELECT * FROM datakaryawan WHERE kelamin='Perempuan'"); // pada bagian //ini juga tergantung nama tabel anda dan field tabel anda

    $jumlah = mysql_num_rows($query);

    $query2 = mysql_query("SELECT * FROM datakaryawan WHERE kelamin='Laki-laki'");

    $jumlah2 = mysql_num_rows($query2);


    $query3 = mysql_query("SELECT * FROM datakaryawan");

    $jumlah3 = mysql_num_rows($query3);

    ?>
    <table width="100%" cellpadding="5">
    <tr>
    <td>Jumlah Laki-laki</td>
    <td>Jumlah Perempuan</td>
    </tr>
    <tr>
    <td><?php echo "$jumlah2 orang"; ?></td> 
    <td><?php echo "$jumlah orang"; ?></td> 
    </tr>
    <tr>
    <td collspan="2" align="right">Jumlah Total = <?php echo " $jumlah3 orang"; ?></td>
    </tr>
    </table>

    jika sudah , coba anda jalankan di browser anda , dalam kasus ini saya berasumsi bahwa anda sudah mengetahui cara menjalankannya. jika belum ,, dapat anda pelajari pada postingan saya sebelumnya. Oke teman-teman ...!!!

    selamat mencoba bagi para calon programer ...!!!

    Source Code PHP Aplikasi Sistem Pakar

    Source Code PHP Aplikasi Sistem Pakar

    Halo sahabat Belajar Pintar PHP, masih di akhir tahun 2012 nih. Kali ini saya ingin membagikan kepada anda sebuah aplikasi PHP, yaitu aplikasi sistem pakar. Sahabat sekalian sudah tahu apa itu sistem pakar ?


    Sistem Pakar adalah sebuah sistem atau aplikasi buatan yang dimana kita bisa melakukan konsultasi terhadap pakar suatu bidang melalui pertanyaan-pertanyaan pendek yang terdapat dalam sebuah program yang akhirnya dari pertanyaan-pertanyaan yang kita jawab akan menghasilkan sebuah kesimpulan dan solusi yang bisa memecahkan masalah kita. Hampir sama seperti kita konsultasi kepada Dokter, si Dokter akan menanyakan kepada kita apa saja keluhan kita dan apa yang kita rasakan lalu dia akan memberitahu kita apa penyakit kita dan apa obatnya. Nah demikian juga Aplikasi Sistem Pakar ini.
    Contoh Sistem Pakar adalah Aplikasi Sistem Pakar Dokter Online. Dimana kita akan mendapatkan beberapa pertanyaan seputar kondisi kita dan akhirnya kita bisa mengetahui penyakit apa yang sedang berada di dalam tubuh kita. Aplikasi ini tampilannya hampir mirip dengan tampilan aplikasi poling.

    Pada postingan ini saya memberikan Source Code sistem pakar Konsultasi Komputer dengan PHP. Yaitu sebuah website dimana Anda bisa melakukan konsultasi seputar keadaan komputer dan pada akhirnya Anda akan menemukan solusi untuk memecahkan suatu masalah komputer.

    Source Code Aplikasi Sistem Pakar ini masih sangat sederhana dan data yang ada di dalamnya masih sedikit. Hal itu bertujuan agar Anda tertantang untuk mengembangkan lebih jauh lagi source code ini.


    Download disini




    Jika anda menemukan kesulitan, silahkan ketikkan komentar dibawah ini. Selamat Berkreasi .

    (Aplikasi PHP) Membuat Aplikasi Chat Dengan PHP MySQL

    (Aplikasi PHP) Membuat Aplikasi Chat Dengan PHP MySQL
    Halo sahabat setia Belajar Pintar PHP, akhir tahun 2012 ini saya ingin membagikan kepada anda semua sebuah aplikasi php yang sangat dibutuhkan dalam sebuah website, apakah itu ? yaitu aplikasi chating sederhana dengan php mysql. Saya asumsikan bahwa anda semua sudah tahu apa itu aplikasi chating, yaitu merupakan sarana bagi pengunjung website ataupun admin untuk berinteraksi secara langsung dengan cara mengetikkan pesan atau komentar yang sifatnya Real-Time. 



    Oke tanpa basa-basi ,, langsung aja yuk download di link dibawah ini

    Download Disini 



    Jika anda menemukan kendala dalam pemakaiannya, silahkan koment dibawah ini.

    Source Code PHP : Upload dan Hapus File Gambar

    Source Code PHP : Upload dan Hapus File Gambar
    Bagi sahabat belajar pintar php, perlua anda ketahui bahwa untuk meng-upload file gambar (jpg, jpeg, pjpeg, png, gif) kita harus menggunakan fungsi php yang satu ini yaitu, move_uploaded_file (string path, string new_path), dan untuk menghapus file gambar yang telah di-upload tersebut digunakan fungsi unlink (string filename).  Dimana file gambar akan disimpan di direktori/folder ‘images’ dan data gambar (file_name, ukuran, direktori dan deskripsi gambar) akan disimpan di tabel ‘file_gambar’. 

    Untuk membuat tabel tempat menyimpan informasi gambar yang akan di upload, copy dan paste sintak SQL berikut di phpMyAdmin Run SQL query/queries on database database_ku.
    CREATE TABLE `database_ku`.`file_gambar` (
    `file_id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `file_name` VARCHAR( 50 ) NOT NULL ,
    `ukuran` INT( 10 ) NOT NULL ,
    `direktori` VARCHAR( 50 ) NOT NULL ,
    `deskripsi` TEXT NOT NULL
    ) ENGINE = MYISAM
    Ini sedikit potongan skripnya :

    Form upload gambar:

    <form action="upload-hapus.php?act=upload" method="post" enctype="multipart/form-data">
    <p><input name="fgambar" type="file" id="fgambar" /></p>
    <p>Tipe file yang diperbolehkan jpg, jpeg, pjpeg, png atau gif.</p>
    <p>Deskripsi:</p>
    <p><textarea name="deskripsi" cols="38" rows="5" id="deskripsi">
    </textarea></p>
    <input type="hidden" name="direktori" id="direktori" value="images" />
    <p><input name="upload" type="submit" value="Upload" id="upload" /></p>
    </form>
    Untuk menampilkan gambar yang telah di upload:
    <?php
    //tampilkan gambar tersedia
    $SQL ="SELECT * FROM file_gambar";
    $qryGambar =@mysql_query($SQL);
    $no=0;
    while($row =@mysql_fetch_array($qryGambar)):
    $no++;
    $conf ="Anda yakin akan menghapus gambar ".$row['file_name'];
    echo '<p>No : '.$no.'</p>';
    echo '<p>Nama : '.$row['file_name'].' | <a href="upload-hapus.php?act=hapus&id='.$row['file_id'].'" onclick="return confirm(\'Anda yakin akan menghapus gambar '.$row['file_name'].'\');">Hapus</a></p>';
    echo '<p>Ukuran : '.$row['ukuran'].' bytes</p>';
    echo '<p><img src="'.$row['direktori'].'/'.$row['file_name'].'" /></p>';
    echo '<p>Deskripsi : '.$row['deskripsi'].'</p><hr />';
    endwhile;
    if($no==0){
    echo "<p>Gambar belum tersedia.</p>";
    }
    ?>
    Skrip untuk meng-upload gambar:
    <?php
    include "koneksi.php"; //koneksi dengan database
    if($_GET['act']=='upload'):
    $tipe =$_FILES['fgambar']['type'];
    if( $tipe != "image/jpg" AND
    $tipe != "image/jpeg" AND
    $tipe != "image/pjpeg" AND
    $tipe != "image/png" AND
    $tipe != "image/gif"){
    echo '<p><b>Upload Gagal</b></p>';
    echo '<p>Tipe file yang diperbolehkan jpg, jpeg, pjpeg, png atau gif.</p>';
    echo '<p><a href="index.php">ULANGI</p></p>';
    }else{
    $file_name =$_FILES['fgambar']['name'];
    $ukuran =$_FILES['fgambar']['size'];
    $direktori =$_POST['direktori'];
    $deskripsi =$_POST['deskripsi'];
    //Cek gambar
    $SQL ="SELECT file_name FROM file_gambar WHERE file_name='$file_name'";
    $qGambar =@mysql_query($SQL);
    if(count(@mysql_fetch_array($qGambar)) > 1){
    echo '<p><b>Upload Gagal</b></p>';
    echo '<p>Gambar telah tersedia</p>';
    echo '<p><a href="index.php">KEMBALI</p></p>';
    }else{
    //upload gambar
    move_uploaded_file($_FILES['fgambar']['tmp_name'],$direktori.'/'.$file_name);
    //simpan data gambar
    @mysql_query("INSERT INTO file_gambar"
    SET file_name ='$file_name',
    ukuran ='$ukuran',
    direktori ='$direktori',
    deskripsi ='$deskripsi'");"
    header('location:index.php');
    }
    }
    endif;
    ?>
    Skrip untuk meng-hapus gambar:
    <?php
    if($_GET['act']=='hapus'):
    //pilih gambar
    $id =$_GET['id'];
    $SQL ="SELECT * FROM file_gambar WHERE file_id='$id'";
    $qGambar =@mysql_query($SQL);
    $row =@mysql_fetch_array($qGambar);
    //hapus gambar
    if(file_exists($row['direktori'].'/'.$row['file_name']))
    unlink($row['direktori'].'/'.$row['file_name']);
    //hapus data gambar
    @mysql_query("DELETE FROM file_gambar WHERE file_id='$id'");
    header('location:index.php');
    endif;
    ?>
    Belajar pintar php

    Jika gambar di hapus akan muncul pesan konfirmasi seperti ini:
    konfirmasi-hapus

    untuk skrip lengkapnya dapat anda download di  sini.

    Sekian source code upload hapus gambar php nya , selamat mencoba buat sahabat belajar pintar php yang cukup setia sampai saat ini.

    Source Code Membuat Upload File Tanpa Reload Halaman dengan PHP jQuery

    Source Code Membuat Upload File Tanpa Reload Halaman dengan PHP jQuery

    Halo sahabat belajar pintar php, pada malam yang istimewa ini tepat pada tanggal 12 bulan 12 tahun 2012 dan jam 12 malam juga, saya ingin membagikan kepada sahabat sekalian postingan yang istimewa juga yaitu skrip php untuk upload file tanpa reload halaman, dan tentunya disini kita harus menggunakan bantuan jquery. Kenapa harus bantuan jquery ? tentu ada salah satu dari sahabat sekalian yang bertanya demikian, jawabannya sih simpel aja, jquery itu bekerja di balik server, sebagai contoh seperti siaran televisi, kita bisa menonton siaran non stop 24 jam tanpa henti, benarkan, tapi anda tahu gak dibalik itu semua kan ada para karyawan atau pekerja yang bekerja dibalik itu semua pada instansi penyiaran itu, hal ini agak mirip dengan jquery, seperti sama halnya dengan twiter, berita terbarunya atau twit orang2 yang anda follow kan otomatis bertambah atau bermunculan satu demi satu tanpa kita harus me reload browser kita, itu lah kerjaan atau tugas si jquery kita ini, dialah bekerja dibalik ini semua hingga kita tidak perlu mereload halaman browser kita. Sampai disini sahabat setia belajar pintar php sudah paham kan. Oke kalau gitu mari kita ke TKP ..!!!

    Sahabat semua demi keamanan web jQuery tidak mengizinkan men-submit form yang memiliki enctype multipart/form-data secara langsung dengan menggunakan Ajax Post nantinya, $_FILES tidak akan  dikenali.  Sebagai penggantinya jQuery menyediakan plugin jquery.iframe-post-form.js

    Berikut saya berikan contoh aplikasi sederhana dari pluginiframe-post-form yang akan digunakan untuk meng-upload file gambar (*gif, *jpg, *png atau *jpeg). Proses upload dapat berlangsung tanpa harus me-reload halaman browser anda . karena pada skrip dilengkapi dengan simple modal jquery.simplemodal.js untuk menampilkan animasi uploading sebagai tanda bahwa proses upload sedang berlangsung. mirip seperti kita mengupload foto di facebook. Form upload dan hasil upload akan ditampilkan seperti gambar dibawah ini:
    upload-tanpa-reload
    Upload akan berlangsung saat nilai fupload (Pilih File yang akan di upload) berubah.

    berikut saya tampilkan potongan skripnya.

    <script src=”js/jquery-1.3.2.js”></script>
    <script src=”js/jquery.iframe-post-form.js”></script>
    <script src=”js/jquery.simplemodal.js”></script>
    <script src=”js/mgupload.js”></script>

    $(’#fupload’).change(function(){
    $(’#form-upload’).submit();
    });
    $(’#form-upload’).iframePostForm ({
    post : function (){
    $(’#uploading’).modal();
    },
    complete : function (result){
    $.modal.close();
    $(”#up-result”).html(result);
    }
    });
    Sahabat Belajar Pintar PHP dapat mendownload skrip lengkapnya  di sini

    Jika anda sudah selesai mendownload skripnya, anda yang pengen berkreasi sendiri dapat merombak atau memodifikasi skripnya pada tanda yang diberikan di dalam kodingnya.

    Untuk memodifiksi skrip dapat anda lihat  kode ‘<!–MODIFIKASI SKRIP MULAI DISINI’ pada skrip halaman index.php

    Sekian tutorial membuat aplikasi upload file tanpa reload dari saya, selamat mencoba.

    Tips PHP : (SMS GATEWAY PHP MYSQL) Masalah-Masalah di Gammu dan cara Mengatasinya

    Tips PHP : (SMS GATEWAY PHP MYSQL) Masalah-Masalah di Gammu dan cara Mengatasinya
    Halo sahabat setia Belajar Pintar PHP, lama tidak posting lagi nih, oke ,,, kali ini saya ingin membagikan kepada anda cara mengatasi masalah yang muncul dalam sms gateway. ini juga karena sudah banyaknya yang pengujung yang mengalami masalah dalam pembuatan sms gateway.
    oke tanpa banyak basa-basi, langsung saja kita bahas satu-persatu sekarang.

    1. Pesan “Missing msvcr71.dll”

    Pesan ini muncul dalam bentuk pop up window. Pesan ini seringkali muncul ketika cek koneksi Gammu dengan modem atau ketika mengetikkan command: gammu identify. Apa penyebab munculnya error tersebut? Penyebabnya adalah tidak adanya file library msvcr71.dll pada windows anda, atau bisa juga file tersebut corrupt atau diserang virus. Penyebab hilang atau corruptnya file tersebut bisa jadi karena virus atau terhapus secara tidak sengaja.
    Solusinya :
    Solusinya adalah menaruh kembali file msvcr71.dll ke dalam direktori C:/WINDOWS/SYSTEM32 (Jika Anda menggunakan Windows XP atau 7 32 bit), atau C:/WINDOWS/SYSWOW64 jika Anda menggunakan Win 7 64 bit. Anda bisa mendownload file msvcr71.dll tersebut di http://www.4shared.com/file/W94ZJ9vr/msvcr71.html.

    2. Pesan “Error installing gammu service”

    Pesan error ini muncul pada waktu proses pembuatan atau instalasi service gammunya, atau setelah mengetikkan command: gammu-smsd -c smsdrc -i. Penyebab dari error tersebut adalah pengaruh dari sistem keamanan Windows yang tidak mengijinkan untuk membuat service. Biasanya hal ini terjadi di Windows 7.
    Solusinya :
    Solusinya adalah, sebelum menginstall service pastikan Anda sudah menurunkan level UAC (User Account Control) sampai ke level paling bawah. Di manakah pengaturan UAC nya? Untuk mengubah level UAC, silakan masuk ke control panel windows, kemudian pada kotak pencarian ketikkan saja: uac. Kemudian klik pada bagian ‘Change User Account Control Setting’. Setelah itu drag saja panel levelnya sampai pada level paling bawah (never notify). Kemudian restart PC atau Laptop anda. Selanjutnya ulangi lagi proses pembuatan servicenya.

    3. Pesan “The drive cannot find the sector requested.”

    Pesan di atas muncul ketika akan menjalankan service gammu yang telah dibuat. Apa penyebab dari error tersebut? berikut beberapa kemungkinan penyebabnya :
    • Ada beberapa struktur tabel database Gammu yang tidak lengkap (belum dibuat), atau ada tabel database yang corrupt atau rusak. Solusi dari penyebab ini adalah melakukan repair tabel dari yang corrupt tersebut (bisa melalui phpMyAdmin), atau jika ternyata ada tabel dari database Gammu yang belum diinstall, maka segera buat tabel yang kurang tersebut.
    • Adanya ketidaksesuaian nama database yang disetting di file SMSDRC nya dengan nama database MySQL atau database lain yang sudah dibuat. Solusinya pastikan nama database di file SMSDRC sama dengan database yang sudah Anda buat tempat Anda membuat tabel-tabel Gammu nya. Jika ternyata memang nama database yang di SMSDRC salah, maka hapus terlebih dahulu service Gammu yang sudah dibuat, kemudian buat lagi servicenya.
    • Username dan password koneksi ke database Gammu yang sudah disetting di file SMSDRC tidak sesuai atau salah. Solusinya pastikan username dan password koneksi ke database Gammunya benar. Jika ternyata username dan password di SMSDRC ini salah, maka hapus dahulu service gammu nya dan lakukan instalasi service ulang.
    • Struktur tabel database Gammu yang sudah dibuat berasal dari versi Gammu yang berbeda dengan Gammu yang sedang digunakan. Sebagai contoh misalkan Anda menggunakan Gammu versi X, tapi struktur tabel databasenya mengambil dari Gammu versi Y. Solusinya, pastikan struktur tabel database Gammu yang akan Anda buat berasal dari versi Gammu yang Anda gunakan.
    Sekian tutorial SMS Gateway nya, saya harap dengan tutorial yang cukup singkat ini, dapat membantu anda para sahabat setia Belajar Pintar PHP dalam pembuatan SMS Gateway PHP MYSQL menjadi sempurna.
    Terimakasih,

    ( SMS GATEWAY PHP MYSQL ) Tahap Demi Tahap Membangun SMS Gateway Dengan PHP MYSQL

    ( SMS GATEWAY PHP MYSQL ) Tahap Demi Tahap Membangun SMS Gateway Dengan PHP MYSQL
    Halo sahabat setia Belajar Pintar PHP, sebelumnya saya minta maaf karena saya absen dari hadapan anda beberapa hari ini. Dari komentar dan jumlah visit terhadap postingan SMS Gateway Gammu semakin meningkat, jadi saya akan memberikan tutorial SMS Gateway dengan lengkap kepada anda semua, guna melengkapi kekurangan-kekurangan posting saya sebelumnya mengenai SMS Gateway. Oke tanpa panjang lebar, kita langsung saja ke TKP ...!!!

    Disini kita akan membahas tuntas bagaimana cara membuat sebuah SMS gateway dengan Gammu dan cara menghubungkannya dengan web yang sudah anda buat.  Kebetulan setelah saya analisa web sms online.web.id menggunakan Gammu sebagai SMS Gatewaynya sehingga semua orangpun bisa membuatnya dengan hanya mengikuti petunjuk dari saya. Untuk bisa menghubungkan SMS Gateway yang sudah kita bangun dengan web yang sudah anda buat anda diharuskan mengerti konsep dasar jaringan dan routing dengan mikrotik Baik kita langsung mulai saja membahasnya.

    A. MEMBANGUN SEBUAH SERVER SMS GATEWAY



    What is Gammu ? ( Apa itu Gammu? ), Gammu merupakan sebuah aplikasi/daemon yang dikhususkan untuk membangun sebuah SMS Gateway yang menghubungkan antara operator seluler ke internet dan sebaliknya. Aplikasi ini bersifat open source dibawah lisensi GPL. Sebenarnya Gammu tidak hanya berfungsi sebagai SMS Gateway saja tetap bisa juga untuk melakukan voice call. Untuk mengetahui fitur lengkap dari Gammu silahkan buka websitenya di http://wammu.eu/gammu/. Aplikasi ini tersedia dalam versi Linux dan Windows. Untuk memudahkan manajemen SMS yang ada di INBOX Gammu mempunyai sebuah aplikasi web-based yang dibangun menggunakan PHP oleh anak bangsa dari ITB yang diberi nama  Kalkun. Aplikasi ini menyediakan fitur yang lumayan lengkap untuk memanajemen Gammu. Sebenarnya setelah kita sukses membangun Gammu, maka kita bisa membangun aplikasi SMS Gateway dengan bahasa program atau platform apapun, baik itu web based dengan PHP maupun ASP atau apapun, dan juga desktop dengan menggunakan Delphi, VB atau lainnya.


    Saat ini Gammu sudah support HP/Modem GSM terbaru sehingga anda tidak perlu kawatir dengan masalah kompatibilitasnya. Yang akan saya bahas kali ini adalah Gammu versi windows karena Windows sudah banyak digunakan oleh banyak user dan juga lebih familiar. Dalam artikel ini pembahasan akan sampai dengan cara instalasi service dan menjalankannya.

    Langkah Pertama (Download File)

    Silakan mendownload Gammu nya terlebih dahulu di
    http://www.mwiacek.com/zips/gsm/gammu/gammu_win32.zip


    Langkah Kedua (Install Gammu)

    Secara default setelah file setup di atas diinstal, file gammu terletak di direktori C:\GAMMU.

    Langkah Ketiga (Setting Konfigurasi Gammu)

    Setelah file Gammu diinstall, langkah berikutnya adalah setting konfigurasi. Setting ini diperlukan guna keperluan penyesuaian jenis HP dan nomor port yang akan digunakan. Bagaimana cara settingnya? Caranya adalah silakan edit file ‘GAMMURC‘ yang ada di dalam direktori ‘C:\gammu‘. Editlah file GAMMURC tersebut menggunakan Notepad atau sejenisnya kemudian anda rubah bagian berikut :

    1.[gammu]
    2.port =
    3.connection =

    parameter port itu nanti diisi dengan nomor port sesuai lokasi colokan HP Anda. Untuk mengetahui nomor port dimana Anda colokkan HP Anda di komputer, silakan masuk ke  Control PanelPhone and Modem OptionsModem. Nah… bila HP Anda sudah tercolok di PC dan drivernya sudah terinstal dengan baik maka pastinya pada bagian tersebut akan muncul nomor portnya.


    Tips Buat Sahabat Belajar Pintar PHP :

    Sebaiknya setiap kali HP Anda dicolokkan ke PC, gunakan lokasi port USB yang sama alias jangan pindah pindah colokan, karena setiap ganti colokan maka nomor portnya akan berubah-ubah. Akibatnya Anda musti ubah setting GAMMURC nya berkali-kali pula karena harus menyesuaikan nomor portnya.

    Berikut ini contoh konfigurasi GAMMURC bila saya menggunakan modem Wavecom


    M1206B yang terhubung ke port com5 USB.

    1.[gammu]
    2.port = com5:
    3.connection = at115200

    (Penting: jangan lupa tanda : di belakang port)

    Bila Anda gunakan lebih dari satu HP yang tercolok ke PC, maka Anda bisa menambah atau mengubah konfigurasinya pada bagian :

    01.[gammu1]
    02..
    03..
    04.
    05.[gammu2]
    06..
    07..
    08.
    09.dst..


    Langkah Keempat (Uji Koneksi)


    Langkah terakhir untuk proses setting GAMMU ini adalah melakukan uji koneksi antara Gammu dengan HP/modem Anda. Langkah ini dilakukan setelah proses setting konfigurasi dilakukan. Caranya adalah dengan masuk folder ‘C:\gammu‘ pada direktori Gammu Anda via DOS PROMPT. Lalu ketikkan perintah ini pada command promptnya.

    1.gammu identify

    Apabila setelah perintah tersebut dienter lalu muncul informasi mengenai HP Anda, maka koneksi antara Gammu dengan HP Anda sukses. Bila responnya tidak seperti yang diharapkan, maka cek kembali nomor portnya atau jenis connectionnya. Berikut ini contoh tampilan yang keluar apabila proses setting berhasil dilakukan :

    SMS Gateway Gammu


    Langkah Kelima (Membuat Database MySQL untuk Gammu)

    Langkah ini bertujuan untuk menyiapkan database MySQL untuk menampung data-data SMS yang diperlukan Gammu untuk SMS Gateway. Sebenarnya tidak hanya MySQL yang bisa digunakan, namun bisa juga SQL Lite atau Posgre SQL. Namun… dalam artikel ini hanya untuk MySQL saja deh, karena saya tidak familiar dengan yang lainnya.

    Caranya adalah buat database dengan nama ‘sms‘ atau yang lain (terserah) menggunakan phpMyAdmin Anda. Lalu buatlah tabel-tabel yang diperlukan oleh Gammu. Waduh.. tabelnya apa aja ya? Don’t worry karena Gammu sudah menyiapkan file dumpnya untuk create tabel. Letak file dumpnya ada di folder ‘C:\gammu\mysql-tabel.sql‘. Nah.. silakan gunakan file dump tersebut untuk membuat tabel-tabelnya menggunakan phpMyAdmin.

    Pada Gammu sebenarnya SMS tidak hanya bisa disimpan dalam database, namun juga bisa sebagai file teks yang disimpan di PC Anda. Namun untuk keperluan SMS gateway sepertinya lebih enak menggunakan database sebagai storagenya.

    Langkah Keenam (Setting Konfigurasi Untuk SMS Daemon)

    Langkah ini dilakukan setelah setting database untuk Gammu. SMS daemon pada Gammu digunakan untuk proses pembacaan otomatis SMS yang diterima lalu disimpan ke database. SMS daemon juga diperlukan untuk keperluan pengiriman SMS. Untuk melakukan setting SMS daemon, bukalah file ‘SMSDRC‘ yang terletak di direktori ‘C:\gammu‘. Bukalah dengan Notepad atau sejenisnya. Bagian yang diubah adalah:

    port = diisi nomor port sesuai yang ada di file GAMMURC
    connection = diisi jenis connection sesuai yang ada di GAMMURC
    service = mysql (diisi dengan ‘mysql’ karena kita akan menggunakan mysql sebagai storage
    data SMSnya)
    user = diisi user database koneksi ke mysql Anda
    password = diisi password koneksi ke mysql Anda
    pc = diisi nama host mysql (biasanya localhost)
    database = sms (atau sesuai nama database yang tadi kita buat)


    Contoh konfigurasi yang ditulis :

    1.port = com5:
    2.connection = at115200
    3.service = mysql

    4.user = root
    5.password = passwordroot
    6.pc = localhost
    7.database = sms
    Catatan: hilangkan tanda # di depan parameter-parameter di atas bila ada.


    Langkah Ketujuh (Membuat Gammu Service)

    Langkah ini bertujuan untuk membuat service Gammu di Windows. Dengan dibuatnya service di Windows ini kita bisa lebih mudah menjalankannya tanpa menggunakan perintah tertentu di command prompt. Untuk membuat Gammu service di Windows, ketikkan perintah ini di DOS PROMPT setelah Anda masuk ke folder ‘C:\gammu‘.

    1.gammu-smsd -c smsdrc -i

    Nah.. bila ada konfirmasi bahwa proses pembuatan service sukses, maka Anda akan melihatservice Gammu muncul pada daftar service yang berjalan di Windows. Service ini bisa dilihat melalui ‘CONTROL PANEL > Administrative Tools > Services’. Nah.. untuk menjalankan service Gammu ini tinggal klik START pada service Gammu tersebut.

    Namun bila proses pembuatan service ini gagal, maka silakan cek kembali konfigurasi SMSDRC nya atau mungkin nama databasenya salah, atau bisa juga command yang dituliskan salah.




    B. MENGHUBUNGKAN SMS GATEWAY DENGAN WEB ANDA



    Langkah Pertama (Persiapan)

    Untuk menghubungkan SMS Gateway dengan web anda ada 2 metode yang bisa dilakukan yaitu dengan metode direct connection (IP Publik) ataupun web service (SOAP). Kali ini yang akan kita bahas adalah metode direct connection yang membutuhkan persiapan sebagai berikut :
    1. Koneksi internet stabil dan unlimited, bisa menggunakan speedy

    2. IP Publik statik dari ISP (untuk hal ini IP publik harus masuk ke router supaya bisa diakses dari internet, untuk lebih jelasnya silahkan baca artikel Membuat server hosting sendiri dengan speedy dan mikrotik dan Setting Mikrotik PPPoE sebagai gateway speedy

    3. Mikrotik Router (PC Router/RouterBoard)

    Langkah Kedua (Membuat script PHP untuk mengirim SMS)

    OK.. sekarang kita akan mencoba membuat script PHP sederhana untuk mengirim pesan SMS yang terintegrasi dengan Gammu ini.


    Langkah pertama kita buat form untuk mengirim pesan SMS nya terlebih dahulu.

    form_sms.php


    1.<form method="post" action="send.php">
    2.No. HP Tujuan : <input type="text" name="nohp" value="+62"><br>
    3.Pesan : <textarea name="msg"></textarea><br>
    4.<input type="submit" name="submit" value="Kirim SMS">
    5.</form>

    Langkah kedua, kita buat script php untuk mengirim pesannya. send.php
    1.<?php
    2.$noTujuan = $_POST['nohp'];
    3.$message = $_POST['msg'];
    4.
    5.exec('c:\gammu\gammu-smsd-inject.exe -c c:\gammu\smsdrc EMS '.$noTujuan.' -text
    "'.$message.'"');
    6.
    7.?>

    Perintah exec() dalam PHP digunakan untuk menjalankan perintah command DOS dalam hal ini adalah perintah command inject nya Gammu.

    Karena command inject Gammu pada script di atas menggunakan format EMS maka memungkinkan kita mengirim SMS dengan jumlah karakter lebih dari 160 buah. Oya… sebelum Anda menjalankan script di atas, pastikan bahwa service Gammu nya telah Anda jalankan, dan HP Anda tercolok ke PC Sekarang… bagaimana bila pengiriman SMS dari script di atas menggunakan query INSERT? Ini dia scriptnya.

    send.php

    01.<?php
    02.mysql_connect("dbhost", "dbuser", "dbpass");
    03.mysql_select_db("sms");
    04.
    05.$noTujuan = $_POST['nohp'];
    06.$message = $_POST['msg'];
    07.
    08.$query = "INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID)
    VALUES ('$noTujuan', '$message', 'Gammu')";
    09.$hasil = mysql_query($query);

    10.if ($hasil) echo "SMS berhasil dikirim";
    11.else echo "SMS gagal dikirim";
    12.
    13.?>


    Langkah Ketiga (Mengakses script PHP diatas via internet)

    Setelah anda membaca dan mempraktekkan langkah kedua di tahap persiapan anda sudah bisa mengakses form pengiriman SMS anda dari internet, contoh  : bila script PHP diatas pada waktu anda mengaksesnya lewat localhost menggunakan URL  http://localhost/form_sms.php maka untuk mengaksesnya dari internet URL berubah menjadi http://IP_Publik_ISP/form_sms.php. Bila anda ingin URL menggunakan subdomain anda misal http://sms.domainanda.com/form_sms.php, anda tinggal menambahkan A Record di DNS Record hosting anda yang mengarah ke IP Publik dari ISP anda.

    Demikianlah Tutorial SMS Gateway  yang saya sampaikan, semoga bermanfaat bagi yang membacanya. Jika ada pertanyaan tentang artikel ini silahkan tinggalkan komentar anda.