Kamis, 22 Maret 2012

Mencari Tingkat Text Similarity dengan PHP

Untuk mengetahui tingkat kemiripan suatu teks, kita tidak perlu repot-repot membuat procedure atau functionnya karena di PHP sudah tersedia yaitu menggunakan function similar_text() yang sintaksnya sbb:
similar_text(teks1, teks2, percent)
Perintah di atas digunakan untuk mengetahui prosentase kemiripan (float) dari dua buah teks yaitu teks1 dan teks2.
Berikut ini adalah contoh penggunaannya:
<?php $teks1 = 'Blog.RosihanAri.Net'; $teks2 = 'Blog.RosihanAri.Net adalah blog berisi tutorial gratis'; similar_text($teks1, $teks2, $persen); echo 'Tingkat kemiripan teksnya adalah '.$persen.' %';
?>
Apabila script di atas dijalankan, maka akan muncul tampilan seperti ini
Tingkat kemiripan teksnya adalah 52.054794520548 %
atau coba kita test akurasinya dengan memberikan teks yang sama persis sehingga menghasilkan tingkat kemiripan 100%
<?php
$teks1 = 'Blog.RosihanAri.Net';
$teks2 = 'Blog.RosihanAri.Net';
similar_text($teks1, $teks2, $persen);
echo 'Tingkat kemiripan teksnya adalah '.$persen.' %';
?>
Script di atas menghasilkan output sbb:
Tingkat kemiripan teksnya adalah 100 %
Namun, string yang dicek kemiripannya oleh similar_text() ini bersifat case sensitive atau besar kecilnya huruf dibedakan. Perhatikan contoh berikut ini
<?php
$teks1 = 'Blog.RosihanAri.Net';
$teks2 = 'BLOG.ROSIHANARI.NET';
similar_text($teks1, $teks2, $persen);
echo 'Tingkat kemiripan teksnya adalah '.$persen.' %';
?>
Secara sekilas, apabila kedua teks di atas dibaca maka sama, namun penulisannya berbeda dalam besar kecilnya huruf. Apabila script di atas dijalankan, maka akan didapatkan output sbb:
Tingkat kemiripan teksnya adalah 31.578947368421 %
Nah… untuk mengurangi tingkat akurasi kemiripan yang disebabkan faktor case sensitivitas ini dalam implementasi, ada baiknya nanti semua string yang akan dibandingkan dibuat kapital semua (upper case) atau huruf kecil semua (lower case).
Meskipun function similar_text() ini mudah digunakan untuk mengetahui tingkat kemiripan teks, namun punya kelemahan yaitu memiliki tingkat kompleksitas yang lumayan tinggi yaitu O(N^3), di mana N adalah panjang string dari teks yang akan dicek. Artinya, semakin panjang teks yang akan dicek akan semakin besar pula kompleksitasnya sehingga berpengaruh pada kecepatan prosesnya secara eksponensial.
OK.. itu sedikit penjelasanya tentang cara mengetahui tingkat kemiripan teks atau text similarity dengan PHP. Semoga di artikel berikutnya, kita bisa implementasikan function similar_text() ini untuk menampilkan artikel terkait.

web dinamik

sumber : blog.rosihanari.net

Jumat, 16 Maret 2012

Memaksimalkan dan mengguanakan scrapebox

Mungkin ini baru pertama sy menulis blog di forum ini
Semoga apa yang saya tulis bisa bermanfaat bagi semuanya (maaf kalo repost ya)

Saya lihat tidak sedikit yang menjual scrapeboxnya
Tentu ini semua ada alasannya masing - masing
Ada yang gak bisa pake
Kurang maksimal pemakaiannya
Atau mungkin sudah banyak scrapeboxnya jadi sisa mending dijual aja

Oya sedikit pendahuluan apa itu scrape box
Umumnya scrapebox memang digunakan untuk comment poster, padahal scrape box bisa digunakan lbh dari itu

Langsung saja deh...
Beberapa point yang mempengaruhi kesuksesan / kegagalan dalam menjalankan software ini :

1. koneksi internet
2. blog commenting
3. pemakaian proxy
4. settingan scrapeboxnya

Bagaimana mengatasinya ?

1. Belilah vps untuk menjalankan scrapebox anda, dengan menggunakan Remote Dekstop Connection
2. Harvest atau beli blog commenting di forum luar atau penyedia blog commenting
3. Beli proxy di tempat yang sudah terpercaya
4. Setting scrapebox anda dengan benar
5. Untuk menghemat waktu anda, jalankan scrape box anda di VPS sekaligus minimal 2 scrapebox ( tergantung RAM anda )

Sebenarnya point ke lima ini yang mau saya tulis, menjalankan scrapebox sekaligus 2 atau 3 scrapebox !
- Hal ini sangat menghemat waktu dan tenaga...(tapi ingat ram anda,hehehe)
- Lebih cepat selesai pekerjaan kita
- Pekerjaan kita lebih ringan
- Mencari backlink ke blog kita lebih semangat
- Apalagi ya? Ada yang mau nambahin?

Itulah beberapa di antara untuk pemakaian scrapebox yang lebih maksimal,

Rabu, 14 Maret 2012

Cara install Wammu untuk/for ubuntu

Saya tahu semua orang sedang mencari manajer ponsel untuk Linux. berbasis teks gammu ada, tapi itu tidak user friendly. wammu adalah front end grafis untuk gammu.

Menggunakan wammu Anda dapat membaca / mengedit / menghapus / menyalin kontak, agenda, kalender Anda dapat membaca / membuat / menyimpan / mengirim sms dan cadangan Anda. beberapa jenis ponsel mendukung pengiriman file, menampilkan pesan termasuk gambar dan playback nada dering. Dukungan untuk backup dan impor dalam berbagai format (vCard, vCalendar, iCalendar, gammu cadangan sendiri, ...). Ekspor pesan ke mail (IMAP4, maildir dan kotak penyimpanan yang didukung). Mencari ponsel, diterjemahkan ke dalam beberapa bahasa, dinilai sebagai yang terbaik pada server banyak perangkat lunak
wammu adalah dalam tahap pengembangan, Mendukung Sony Ericsson, Motorola Phones, beberapa model dari Nokia, Siemens, Alcatel.



Howto install wammu di ubuntu / debian

$ sudo apt-get install wammu (or use synaptic package manager )

Jumat, 09 Maret 2012

Membuat GIS Google Map Marker Multi Icon dengan jQuery, PHP dan MySQL

Membuat aplikasi GIS dengan Google Map API, di mana aplikasi GIS ini, kita bisa membuat marker pada map, marker yang dibuat bisa macam-macam gambar iconnya, tergantung jenis lokasinya, apakah bandara, mesjid, restoran, dan lainnya. Setelah memberi tanda atau marker, kita bisa memberi nama lokasi tersebut dan juga deskripsinya, kemudian kita simpan ke database.
GIS Maps
GIS Maps


Pada aplikasi GIS ini juga, kita bisa menampilkan keseluruhan marker yang telah disimpan di database MySQL tersebut dengan bantuan PHP dan JSON jQuery. Mari kita lihat.
Algoritma membuat aplikasi GIS ini hampir sama dengan tutorial sebelumnya, Membuat GIS Google Map Seperti Wikimapia dengan jQuery dan Membuat Geographic Information System (GIS) Sederhana dengan Google Map dan Ajax jQuery, silahkan dibaca-baca di situ tutorial dengan google map. Untuk icon-icon yang digunakan bisa buat sendiri atau anda download di http://code.google.com/p/google-maps-icons/

Membangun SMS Gateway dengan Gammu dan MySql

sms gateway
Aplikasi SMS gateway sebenarnya bisa di download dan di cari di internet dan anda akan sangat banyak sekali menemukan aplikasi untuk sms gateway ini dari berbagai platform.
salah satu yang akan dibahas dalam artikel ini adalah Gammu, pemilihan gammu sebagai aplikasi untuk sms gateway ini karena selain bisa kita download dengan gratis juga lebih mudah dalam mengkonfigurasikannya karena bisa digunakan baik di windows maupun dilinux.. dan bisa menggunakan database mySQL.
Handphone yang telah berhasil saya coba adalah Nokia 3310 dan Siemens C35i. Distro linux yang saya gunakan untuk
membangun SMS Gateway ini adalah Trustix 3.0. Sebelum installasi kita lakukan silahkan anda baca-baca info tentang Gammu di
http://www.mwiacek.com/gsm/soft/gammu.html
Gimana!! udah selesai bacanya?? Oke..lansung saja dan tidak banyak basa-basi, mari kita mulai saja mengumpulkan kebutuhan untuk
membangun SMS Gateway menggunakan Gammu ini.

1. Gammu.tar.gz
Dapat anda download di : http://www.mwiacek.com/zips/gsm/gammu/gammu.tar.gz
atau # wget http://www.mwiacek.com/zips/gsm/gammu/gammu.tar.gz

2. Web Server (Jika anda sudah punya webserver, abaikan saja no 2 ini, kalau belum terpaksa anda harus install dulu apache,myslq,php)
3. Handphone Nokia 3310 atau Siemens C35i, untuk support handphone lainnya silahkan baca lagi
http://www.mwiacek.com/gsm/soft/gammu.html

Gammu support dengan berbagai merek handphone kok lihat ini :
Gammu currently supports:
majority of Nokia phones from DCT3 generation with Nokia operating system – for example Nokia 3210, 3310, 3315, 3410, 5110, 5130, 6110,


6130, 6150, 6210, 7110, 8210
majority of Nokia phones from DCT4 generation with Nokia operating system – for example Nokia 3100, 3510, 3510i, 6220, 6230, 6310, 6310i,


6510, 6610, 7210, 8310
many AT devices – for example many Siemens, Sony Ericsson, Nokia, Alcatel models
Alcatel from BE5/BF5/BH4 generation – for example 501, 511, 512
some functions with OBEX and Symbian devices

4. Kabel Serial untuk handphone

Jika anda sudah berhasil mendonwload gammu.tar.gz, silahkan di extract
#tar xvfz gammu.tar.gz

Setelah anda extract secara otomatis anda akan mendapati folder gammu-1.05.00, sekarang masuklah ke folder tersebut
#cd gammu-1.05.00

Sebelum anda menginstall biasakan membaca README, INSTALL, etc.
#./configure
#make
Disini perlu anda perhatikan apakah ada yang error atau tidak jika ada error!, berarti library mysql anda masih kurang lengkap, biasanya


error yang ditemui adalah “lssl” sering tidak ditemukan ketika melakukan “make” atau database mysql tidak support dengan gammu-nya.
(Solusi-nya coba install ulang mysql-nya atau lengkapi library yang dibutuhkan)
#make shared
#make install
#make installshared


Selanjutnya anda perlu meng-upgrade “library”
# vi /etc/ld.so.conf
Tambahkan link library dengan mengetik /usr/local/lib pada file ld.so.conf, selanjutnya lakukan upgrade library dengan mengetik
#/sbin/ldconfig

Note : Jika anda tidak menemukan error apa2 sampai tahap ini berarti anda sudah berhasil mengintall Gammu SMS Gateway
Sekarang coba masuk lagi ke folder dimana anda meng-extract gammu.tar.gz dan copy-lah file yang ada pada folder
/docs/example/config/ disitu anda akan menemukan 3 buah file dengan nama gammurc, mysql.sql, smsdrc lalu file gammurc dan
smsdrc anda copy-kan ke folder /etc
#cp gammurc smsdrc /etc/
Selanjutnya cari editlah file tersebut seperti ini :

[gammu]
port = /dev/ttyS0 #Jika anda memakai COM2 ganti dengan ttyS1
#model = 6110 #model handphone-nya anda abaikan saja, karena kalau diaktifin sering timbul masalah
connection = fbus #Kalau anda pakai hp Nokia connection-nya “fbus” jika anda memakai hp Siemens ganti “fbus” menjadi “at19200″
#synchronizetime = yes
#logfile = gammulog
#logformat = textall
#use_locking = yes
#gammuloc = locfile
#startinfo = yes
#gammucoding = utf8
#rsslevel = teststable #usephonedb = yes


Jika anda masih bingung, didalam file gammurc tersebut sudah ada petunjuk pemakaian lihat bagian bawah-nya.
Jika anda malas untuk mengedit file-nya, anda juga bisa mendapatkan file-nya di www.posmetropadang.com/gammu/gammurc

Sekarang pastikan kabel data dan handphone anda sudah tersambung ke port COM1 pada komputer anda, selanjutnya anda tinggal ketik
#gammu –identify
Saya harap anda dapat melihat keluaran seperti dibawah ini :

Manufacturer : Nokia
Model : 3310 (NHM-5)
Firmware : 06.33 F (28-11-03)
Hardware : 1012
IMEI : 350835608671298
Original IMEI : 350835608671298
Manufactured : 0802
Product code : 0505201
Simlock 1 : MCC+MNC 00101, opened, user , counter 0
Simlock 2 : GID1 0000, opened, factory, counter 0
Simlock 3 : GID2 0000, opened, factory, counter 0
Simlock 4 : MSIN 0000000001, opened, factory, counter 0
MSID : 830d50880846870ebedd126096
MCU checksum : 9C79
DSP ROM : 6

Jika sudah ada koneksi seperti diatas berarti gammu sudah bisa mengenali handphone anda dan kita sudah bisa melanjutkan ke step yang
lainnya.
Nah sekarang kita tinggal membuat, bagaimana semua sms yang masuk lansung tersimpan ke database mysql dan dapat ditampilkan ke
website dengan memakai php scripts.
Oke lanjut bro… kerjaan kita sudah hampir selesai, mungkin ada kopi atau rokok yang bisa disruputt dulu hehe…??
Sekarang coba anda buka file smsdrc yang telah anda copy-kan ke folder /etc tadi

#vi /etc/smsdrc
bagian dibawah ini biarkan saja apa adanya
[smsd]
PIN = 1234
logfile = smsdlog
commtimeout = 1
sendtimeout = 10

carilah dan edit bagian dibawah ini sesuai dengan keadaan mysql anda


# ————————- SETTINGS FOR –smsd MYSQL —————————
user = root
password = password_mysql_anda
pc = localhost
database = nama_database

Note : Selain bagian yang saya sebutkan diatas mohon anda kasih tanda “#” karena yang kita butuhkan disini hanya bagian seperti yang
saya sebutkan diatas saja, guna untuk koneksi ke database mysql-nya.
Sekarang anda masuk ke directory /docs/example/config/ terdapat file ‘mysql.sql’ , yang adalah structure table yang digunakan, anda
tinggal memasukkannya di MySQL database anda.

Buat database sms
#mysqladmin –u root –p create sms


Buat table gammu dari file ‘mysql.sql’
#mysql –u root –p < mysql.sql

Atau dengan cara yang lebih mudah, anda dapat membuat database dan membuat table gammu melalui phpmyadmin
http://localhost/phpmyadmin

Setelah selesai anda sudah bisa menjalankan daemon smsd-nya
#gammu –smsd MYSQL /etc/smsdrc
Log filename is “smsdlog”
Press Ctrl+C to stop the program …

Jika keluar seperti yang diatas berarti SMS Gateway anda sudah berjalan dengan baik dan anda bisa menggunakan sesuai kebutuhan anda,
dan semua sms yang ada di handphone anda akan lansung masuk kedalam database mysql.
Untuk tahap selanjutnya anda tinggal menampilkan sms anda ke web menggunakan php scripts, php scripts-nya bisa anda download di
http://posmetropadang.com/gammu/sms.zip
Anda perlu sedikit mengedit sms.php-nya sesuai dengan keadaan server database anda.
Sekarang anda bisa membuka sms lewat browser kesayangan anda dengan mengetik http://localhost/sms.php
Nah sekarang apa yang harus anda lakukan?? yang perlu anda lakukan adalah menjalan service daemon smsd secara otomatis ketika
komputer di restart.

Buatlah file dengan nama gammu.sh dan simpanlah dalam direktori /usr/local/bin/
#cd /usr/local/bin/
#vi gammu.sh

Isinya sebagai berikut :

#!/bin/sh
export LANG=da_DK
/usr/local/bin/gammu –smsd MYSQL /etc/smsdrc


Setelah itu editlah file /etc/inittab anda
#vi /etc/inittab

Tambahkan baris dibawah ini pada inittab anda
GA:345:respawn:/usr/local/bin/gammu.sh
Wah… cukup panjang juga, hmmm mudah-mudahan tidak ada masalah ya… sekarang habiskan kopi anda, sampai disini anda sudah
selesai membangun SMS Gateway menggunakan Gammu. Jika ada kritikan dan pertanyaan jangan sungkan kontak saya.

Kamis, 08 Maret 2012

Contoh Relasi SQL antar tabel

aku ingin nambahin sedikit cara untuk melakukan relasi antar tabel, kita ambil contoh seperti dibawah
buat biar ngak ribet – ribet  silahkan copikan script dibawah ke sql editor

Membuat table ambilmk
CREATE TABLE `ambilmk` (
  `nim` VARCHAR(5),
  `kodemk` VARCHAR(4),
  `nilai` FLOAT,
  `smt` VARCHAR(10),
  `thajar` VARCHAR(10),
  PRIMARY KEY (`nim`,`kodemk`)
);
Membuat table mhs 
CREATE TABLE `mhs` (
  `nim` VARCHAR(5),
  `namamhs` VARCHAR(20),
  `alamat` text,
  `tgllhr` DATE,
  PRIMARY KEY (`nim`)
);
 
Membuat table mk
CREATE TABLE `mk` (
  `kodemk` VARCHAR(4),
  `namamk` VARCHAR(20),
  `sks` INT(11),
  `smt` VARCHAR(10),
  PRIMARY KEY (`kodemk`)
);
Mengisi table 
 
INSERT INTO `ambilmk` VALUES ('M001', 'MK01', '3', 'GANJIL', '2001-2002');
INSERT INTO `ambilmk` VALUES ('M001', 'MK02', '2', 'GANJIL', '2001-2002');
INSERT INTO `ambilmk` VALUES ('M002', 'MK01', '4', 'GANJIL', '2001-2002');
INSERT INTO `ambilmk` VALUES ('M003', 'MK03', '4', 'GENAP', '2001-2002');
 
INSERT INTO `mhs` VALUES ('M001', 'XXX', 'SOLO', '1990-10-01');
INSERT INTO `mhs` VALUES ('M002', 'YYY', 'SEMARANG', '1992-08-11');
INSERT INTO `mhs` VALUES ('M003', 'ZZZ', 'SOLO', '1991-04-15');
 
INSERT INTO `mk` VALUES ('MK01', 'KALKULUS I', '3', 'GANJIL');
INSERT INTO `mk` VALUES ('MK02', 'GEOMETRI', '2', 'GANJIL');
INSERT INTO `mk` VALUES ('MK03', 'KALKULUS II', '3', 'GENAP');
 
Menapilkan data  dengan nama mk kalkulus 1
SELECT mhs.nim, mhs.namamhs, ambilmk.nilai
FROM mhs, ambilmk, mk
WHERE mhs.nim = ambilmk.nim AND mk.kodemk = ambilmk.kodemk AND mk.namamk = 'KALKULUS I';
 
Menapilkan data dengan relasi
 
SELECT a.nim,a.namamhs,b.nilai
FROM mhs a
LEFT JOIN ambilmk b ON a.nim = b.nim
LEFT JOIN mk c ON c.kodemk = b.kodemk
WHERE c.namamk = 'KALKULUS I'; 
Dalam struktur aku lebih suka gunain JOIN mau itu left, right, inner, outer dsb
banyak jalan untuk menuju keroma, apapun makanannya minumnya tetep tehbotol sosro :D, apa hubunganya ya...


sekian contoh simple relasi pada SQL semoga dapat sebagai dasar relasi  SQL lanjutnya....

Rabu, 07 Maret 2012

Problem Warning/Error Timezone di PHP

Pernahkah menjumpai script buatan Anda sendiri atau hasil copy paste tampilan Warning seperti di bawah ini sewaktu dijalankan di browser?

Warning: date_default_timezone_get() [function.date-default-timezone-get]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ...

Apa sih penyebabnya? dan bagaimana solusi untuk menghilangkan Warning tersebut?

Peringatan di atas muncul karena diaktifkannya E_STRICT dan E_NOTICE dalam konfigurasi php.ini Anda, khususnya bagi Anda yang menggunakan PHP 5.X. Pesan di atas sekedar peringatan dari PHP bahwa Anda belum mensetting TimeZone dalam script PHP nya, sehingga default TimeZone akan menyesuaikan apa yang ada di TimeZone dalam php.ini. Dengan kata lain, setiap Anda membuat script PHP yang di dalamnya menggunakan function date(), Anda harus menyertakan perintah date_default_timezone_set() dalam script tersebut sebelum function date() dipanggil seperti yang telah saya jelaskan pada artikel yang lain supaya Warning tersebut tidak muncul. Sesuai apa yang ditampilkan pada pesan Warning tersebut, bahwa tidak aman jika setting TimeZone nya menyesuaikan TimeZone setting yang ada di sistem atau OS nya.
Lalu… bagaimana jika kita sudah telanjur membuat banyak script, misalkan ratusan, dalam sebuah folder di mana kesemuanya menggunakan perintah date() di dalamnya? apakah kita juga harus mengedit semua script tersebut untuk menambahkan perintah date_default_timezone_set() ? Repot dong kalau begini???
Tidak usah khawatir, cukup hanya dengan membuat sebuah file .htaccess yang berisi perintah berikut ini

php_value date.timezone Asia/Jakarta


maka hilanglah semua Warning tersebut.

File .htaccess tersebut cukup diletakkan di dalam folder script PHP anda atau di root direktory web.
Bagaimana cara membuat file .htaccess? Anda bisa menggunakan Notepad atau Notepad++ atau Text Editor lain, lalu tulis perintah di atas. Terakhir, Anda simpan file tersebut dengan nama .htaccess (jangan lupa titik di depannya ya)..

OK selamat mencoba, dan semoga bermanfaat..

Membuat Login Alternatif (Open ID) dengan Php

Pernahkah Anda mengunjungi situs berbagi file 4shared? Jika Anda perhatikan di form loginnya, situs tersebut menawarkan login menggunakan akun Google yang sudah dimiliki usernya :

Dengan begitu, si user bisa melakukan login dengan 2 cara yaitu melalui username dan password ketika registrasi di 4shared, atau menggunakan akun Google jika si user tersebut memiliki.
Pada artikel kali ini pembahasan akan dimulai dari cara pembuatan script registrasinya, script login, sampai dengan script untuk logout.
OK, pertama kita perlu rancang untuk tabel databasenya di MySQL terlebih dahulu. Tabel ini nanti digunakan untuk menyimpan data user yang sudah teregistrasi. Di sini kita buat simpel saja ya, karena sekedar contoh.
 
CREATE TABLE `login` (
  `email` varchar(100),
  `passwd` varchar(100),
  `nama` varchar(100),
  PRIMARY KEY (`email`)
);

Dalam contoh ini, email nantinya akan digunakan sebagai username loginnya. Karena nama email digunakan sebagai user login, maka jangan lupa membuatnya sebagai primary key supaya unik.
Untuk keperluan koneksi ke MySQL, kita buat dahulu script koneksinya
koneksi.php

<?php

$dbuser = "...";
$dbpass = "...";
$dbhost = "localhost";
$dbname = "...";

mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);

?>
Script di atas nantinya akan kita sisipkan ke script lain setiap kali membutuhkan koneksi ke databasenya.
Selanjutnya, kita buat form untuk proses registrasi usernya
register.php
<h1>Register</h1>

<form method="post" action="registerproses.php">
<table>
  <tr><td>Email</td><td>:</td><td><input type="text" name="email"></td></tr>
  <tr><td>Nama Lengkap</td><td>:</td><td><input type="text" name="nama"></td></tr>
  <tr><td>Password</td><td>:</td><td><input type="password" name="pass1"></td></tr>
  <tr><td>Ulangi Password</td><td>:</td><td><input type="password" name="pass2"></td></tr>
</table>
<input type="submit" name="name" value="Register">
</form>

Setelah form registrasi user dibuat, jangan lupa buat juga script untuk memproses registrasinya
registrasiproses.php
<?php

// koneksi ke MySQL
include "koneksi.php";

// baca data email
$email = $_POST['email'];
// baca data nama user
$nama = $_POST['nama'];
// baca data password1
$pass1 = $_POST['pass1'];
// baca data password2
$pass2 = $_POST['pass2'];

// query untuk mencari email yg sdh ada di database
$query = "SELECT * FROM login WHERE email = '$email'";
$hasil = mysql_query($query);
if (mysql_num_rows($hasil) == 0)
{
        // jika belum ada, simpan data user ke database
 if ($pass1 == $pass2)
 {
  $query2= "INSERT INTO login (email, nama, passwd) VALUES ('$email', '$nama', '$pass1')";
  $hasil2 = mysql_query($query2);
  if ($hasil2) echo "<p>Registrasi sukses</p>";
  else echo "<p>Registrasi gagal</p>";
 }
 else echo "<p>Password tidak sama</p>";
}
else echo "<p>Email '".$email."' sudah pernah diregistrasikan sebelumnya</p>";

?>



Script registrasi sudah dibuat, selanjutnya kita buat script untuk proses loginnya.
login.php
<?php
session_start();

include "koneksi.php";

// untuk proses login biasa
if ($_GET['op'] == "submit")
{
    $email = $_POST['email'];
    $pass = $_POST['pass'];
    $query = "SELECT * FROM login WHERE email = '$email'";
    $hasil = mysql_query($query);
    $data  = mysql_fetch_array($hasil);
    // proses pencocokan password login dengan yg tersimpan di db
    if ($data['passwd'] == $pass)
    {
        // redirect ke main.php
        header("location: main.php");
        // simpan nama ke session
        $_SESSION['nama'] = $data['nama'];
    }
    else echo "<p>Login Gagal</p>";
}
// untuk proses login dg akun Google
else if ($_GET['op'] == "google")
{
    include 'openid.php';
    // membuat obyek open id
    $openid = new LightOpenID;
    if(!$openid->mode)
    {
        // proses authentication dengan Open ID Google
        $openid->identity = 'https://www.google.com/accounts/o8/id';
        $openid->required = array('contact/email');
        header('Location: ' . $openid->authUrl());
    }
    else
    {
        // baca data email Google
        $ambildata = $openid->getAttributes();
        $email = $ambildata['contact/email'];
        // cari data user yang memiliki email Google
        $query = "SELECT * FROM login WHERE email = '$email'";
        $hasil = mysql_query($query);
        if (mysql_num_rows($hasil) > 0)
        {
           // jika data user ada, baca nama user dan simpan ke session
           $data  = mysql_fetch_array($hasil);
           $_SESSION['nama'] = $data['nama'];
           // redirect ke main.php
           header("location: main.php");
        }
        else
        {
           // jika data user tidak terdaftar/tidak ada, munculkan form registrasi
           echo "<p>Username/email tidak terdaftar.</p><p>Silakan register dahulu </p>";
           // munculkan form registrasi user
?>
<h1>Register</h1>

<form method="post" action="registerproses.php">
<table>
  <tr><td>Email</td><td>:</td><td><input type="text" name="email" value="<?php echo $email; ?>"></td></tr>
  <tr><td>Nama Lengkap</td><td>:</td><td><input type="text" name="nama"></td></tr>
  <tr><td>Password</td><td>:</td><td><input type="password" name="pass1"></td></tr>
  <tr><td>Ulangi Password</td><td>:</td><td><input type="password" name="pass2"></td></tr>
</table>
<input type="submit" name="name" value="Register">
</form>

<?php
        }
    }
}
else
{
// munculkan form login
?>

<h1>Login</h1>

<form method="post" action="login.php?op=submit">
<table>
  <tr><td>Email</td><td>:</td><td><input type="text" name="email"></td></tr>
  <tr><td>Password</td><td>:</td><td><input type="password" name="pass"></td></tr>
</table>
<input type="submit" name="submit" value="Login"><br><br>
<small><a href="login.php?op=google">Login with Google Account</a></small>
</form>

<?php
}
?>


Dalam script login di atas, terdapat 2 skenario login yaitu login biasa melalui pengisian username/email dan password melalui form login sesuai yang pernah diisi sewaktu registrasi, serta login melalui open ID Google. Untuk proses melalui form login biasa, saya kira tidak perlu saya jelaskan karena simpel. Sedangkan proses login dengan open ID Google agak sedikit kompleks. Di sini, kita menggunakan class LightOpenID yang sudah pernah di buat orang. Dengan class ini, kita nantinya akan terhubung ke server Google untuk proses authentication. Anda dapat mendownload file berisi class LightOpenID di sini.
Setelah proses authentication melalui Open ID Google berhasil, selanjutnya kita ambil data email dari hasil authentication tersebut untuk kita lookup ke dalam database user login yang kita buat sebelumnya. Jika email ini ada, maka proses login berhasil. Namun jika belum ada, maka si user belum terdaftar dan nantinya akan muncul form registrasi user baru.
Lantas, bagaimana dengan script main.php yang merupakan hasil redirect jika proses login berhasil? Script main.php ini merupakan landing page berisi konten-konten yang bersifat restricted, hanya bisa diakses oleh user yang loginnya berhasil. Misalkan main.php ini kita buat simpel saja sbb:
main.php
Dalam script login di atas, terdapat 2 skenario login yaitu login biasa melalui pengisian username/email dan password melalui form login sesuai yang pernah diisi sewaktu registrasi, serta login melalui open ID Google. Untuk proses melalui form login biasa, saya kira tidak perlu saya jelaskan karena simpel. Sedangkan proses login dengan open ID Google agak sedikit kompleks. Di sini, kita menggunakan class LightOpenID yang sudah pernah di buat orang. Dengan class ini, kita nantinya akan terhubung ke server Google untuk proses authentication. Anda dapat mendownload file berisi class LightOpenID di sini.
Setelah proses authentication melalui Open ID Google berhasil, selanjutnya kita ambil data email dari hasil authentication tersebut untuk kita lookup ke dalam database user login yang kita buat sebelumnya. Jika email ini ada, maka proses login berhasil. Namun jika belum ada, maka si user belum terdaftar dan nantinya akan muncul form registrasi user baru.
Lantas, bagaimana dengan script main.php yang merupakan hasil redirect jika proses login berhasil? Script main.php ini merupakan landing page berisi konten-konten yang bersifat restricted, hanya bisa diakses oleh user yang loginnya berhasil. Misalkan main.php ini kita buat simpel saja sbb:
main.php
<?php

session_start();

if (isset($_SESSION['nama']))
{
       // tampilkan nama user
       echo "<p>Hallo ".$_SESSION['nama'].", Anda sudah login</p>";
       echo "<a href='logout.php'>Logout</a>";
}
else echo "<p>Anda belum login (<a href='login.php'>Login</a>)</p>";

?>

Sedangkan script untuk logoutnya, kita buat seperti berikut
logout.php

<?php
session_start();
session_destroy();
echo "<p>Anda sudah logout</p>";
echo "<p><a href='login.php'>Login</a></p>";
?> 
 
Jika kita perhatikan script logout di atas, maka untuk proses logout hanyalah menghapus variabel sessionnya saja. Dengan demikian, jika sebelumnya si user melakukan login melalui Open ID Google maka masih tetap bisa masuk ke sistem melalui link ‘Login with Google Account’.


 
 OK deh.. selamat mencoba ya…


Sumber : rosihan ari


Senin, 05 Maret 2012

Plugin Auto Forward SMS Inbox (Sms Gateway)

Anda ingin agar semua SMS yang masuk ke INBOX secara otomatis diforward ke nomor HP Anda atau yang lain, sehingga Anda dapat dengan cepat mengetahui SMS yang baru saja diterima oleh SMS Center GampSMS tanpa berhadapan langsung dengan PC SMS Centernya?
Kini hal ini dapat terwujud dengan adanya Plugin Auto Forward SMS Inbox. Fungsi utama dari plugin ini adalah memforward secara otomatis semua SMS yang masuk ke INBOX ke sebuah atau beberapa nomor handphone lain. Plugin ini hanya tersedia dalam GampSMS Full Version saja.
Bagaimana cara mengaktifkan fitur ini?
Pastikan Anda telah mengupgrade GampSMS ke update 15. Setelah proses upgrade selesai, Anda akan menjumpai icon plugin sebagai berikut di menu PLUGIN.

Silakan klik icon tersebut. Untuk mengaktifkannya, cukup pilih option ON pada Status Aktif, kemudian isikan beberapa nomor HP tujuan forward (gunakan koma sebagai pemisah nomor handphone tujuan forwardnya).



That’s All… Cukup simpel bukan? Di dalam isi SMS yang diforward ke nomor tujuan, terdapat nomor handphone pengirimnya sebagai informasi bagi si penerima SMS forward.
Selamat mencoba dan mudah-mudahan bermanfaat.

Sumber : http://gampsms.rosihanari.net/plugin/plugin-cara-menggunakan-plugin-auto-forward-sms-inbox.sms

Membuat barcode dengan php (Script)

Apa sih barcode itu? Barcode adalah suatu simbol berbentuk garis-garis yang menyatakan suatu kode atau string karakter. Simbol ini dapat dibaca oleh suatu barcode scanner. Salah satu contoh barcode adalah simbol yang ada di produk di toko atau supermarket yang sering kita lihat.
Ternyata… di dunia ini ada banyak sekali tipe barcode. Diantara sekian banyak tipe barcode, terdapat 6 kategori barcode berdasarkan kegunaannya, yaitu: barcode untuk keperluan retail, barcode untuk keperluan packaging, barcode untuk penerbitan, barcode untuk keperluan farmasi, barcode untuk keperluan non retail, serta barcode untuk keperluan lain.
Barcode untuk keperluan retail, salah satu contohnya adalah UPC (Universal Price Codes), biasanya digunakan untuk keperluan produk yang dijual di supermarket. Barcode untuk packaging biasanya digunakan untuk pengiriman barang, dan salah satunya adalah barcode tipe ITF. Barcode untuk keperluan penerbitan, sering digunakan pada penerbitan suatu produk, misalkan barcode yang menunjukkan ISSN suatu buku. Sedangkan barcode untuk keperluan farmasi biasanya digunakan untuk identifikasi suatu produk obat-obatan. Salah satu barcode farmasi adalah barcode jenis HIBC. Sedangkan barcode untuk kepentingan non retail, misalkan barcode untuk pelabelan buku-buku yang ada di perpustakaan. Salah satu tipe barcode untuk keperluan non retail ini adalah Code 39.
Nah… pada pada artikel ini, saya hanya akan memfokuskan saja pada barcode Code 39. Barcode ini diperkenalkan oleh ANSI (American National Standards Institute). Karakter yang bisa dinyatakan ke dalam Code 39 meliputi digit angka 0-9, huruf kapital A-Z, karakter spasi, karakter ‘-’, ‘+’, ‘.’, ‘$’ dan ‘/’. Berikut ini adalah salah satu contoh tampilah barcode Code 39 untuk mensimbolkan suatu string ‘ROSIHAN ARI 1979′.


Untuk menyatakan suatu karakter atau string ke dalam bentuk barcode Code 39, caranya adalah mengapit string tersebut dengan tanda asterisk (*). Sehingga pada contoh di atas, string ‘ROSIHAN ARI 1979′ ini harus diapit dengan tanda asterisk menjadi ‘*ROSIHAN ARI 1979*’. Apa akibatnya jika tidak diapit dengan asterisk? Simbol yang muncul nantinya tidak akan bisa dibaca oleh barcode scanner.
OK… saya kira cukup pembahasan mengenai barcode, khususnya jenis Code 39 ini. Nah… kembali pada cara pembuatan barcode. Pembuatan barcode yang akan dibahas hanya akan difokuskan pada Code 39 yang diterapkan pada studi kasus pelabelan buku di perpustakaan.
Pertanyaan pertama yang mungkin ada dalam benak Anda adalah bagaimana menciptakan simbol barcode, khususnya untuk Code 39. Ya… good question.
Untuk membuat barcode Code 39, Anda bisa membeli suatu software untuk mengeneratenya. Beli??? Wah… gak ada uang tuh… So… gimana donk?? He..3x, jangan khawatir karena meskipun Anda tidak punya uang, Anda tetap bisa membuatnya yaitu dengan mendownload True Type Font (TTF) khusus untuk barcode Code 39 ini. Free kah font ini? Ya… 100% free buat Anda. Dimanakah downloadnya? OK.. akan saya bocorkan kepada Anda link untuk downloadnya yaitu di bawah ini
Setelah Anda download, selanjutnya installah ke direktori font pada sistem operasi Anda. Jika Anda menggunakan Windows, installah ke direktori C:\WINDOWS\FONTS. OK… hanya itu caranya. Trus… bagaimana cara menggunakannya?
OK… sekarang kita terapkan ke studi kasus untuk membuat label barcode yang menyatakan kode-kode buku yang ada di perpustakaan. Diharapkan nantinya kode barcode ini akan ditempelkan pada setiap buku dan dimanfaatkan untuk mempermudah transaksi di perpustakaan. Ketika proses peminjaman atau pengembalian buku, petugas perpustakaan tidak perlu mengetikkan kode buku secara manual di komputer namun hanya
melakukan scanning pada label barcode ini.
Nah… kita mulai membuatnya. Pertama-tama kita siapkan database dan tabel untuk keperluan penyimpanan data buku perpustakaan. Ini salah satu contoh query untuk membuat tabel dan datanya:

 CREATE TABLE buku ( 
kodeBuku varchar(5),
judulBuku text,
author varchar(20),
jenis varchar(10),
PRIMARY KEY (kodeBuku));

INSERT INTO `buku` VALUES ('A0001', 'Pemrograman Pascal', 'Rosihan Ari Yuana', 'Referensi');
INSERT INTO `buku` VALUES ('A0002', 'Pemrograman PHP', 'Dwi Amalia Fitriani', 'Referensi');
INSERT INTO `buku` VALUES ('A0003', 'Pengantar Jaringan Komputer', 'Faza Fauzan Kh.', 'Referensi');
INSERT INTO `buku` VALUES ('A0004', 'Teknologi Digital', 'Nada Hasanah', 'Referensi');
INSERT INTO `buku` VALUES ('A0005', 'Pemrograman ASP .NET', 'Muh. Ahsani Taqwim', 'Referensi');

OK… dari SQL di atas dapat Anda lihat terdapat sampel buku sejumlah 5 buah. He.. 3x semua anggota keluarga saya ternyata para pengarang buku 
Nah… bagaimana cara membuat script PHP untuk mengenerate label barcode dari kode semua buku di atas? Bentar… sabar… sebelum kita mulai buat, kita hendaknya pikirkan desain tampilan outputnya.
Misalkan kita ingin nantinya muncul label barcode kode buku yang disusun seperti halnya tabel yang memiliki 2 kolom. Trus… untuk setiap barcode, bagian bawahnya akan terdapat kode buku yang dapat dibaca oleh kita. Mengapa kode buku ini ikut tercantum di bawah barcodenya? Ya… siapa tahu suatu saat barcode scannernya rusak. Bila label barcode ini tidak ada kode buku yang bisa kita baca, bisa-bisa kesulitan untuk mendatanya ketika transaksi di perpustakaan berlangsung.
OK… itu desain tampilannya. Now… let’s start to create the script!

<?php

// koneksi ke database
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

$query = "SELECT * FROM buku";
$hasil = mysql_query($query);

// setting banyaknya kolom
$kolom = 2;

// membuat tabel berisi label barcode
echo "<table border='1'>";

$counter = 1;
while ($data = mysql_fetch_array($hasil))
{
 if (($counter-1) % $kolom == 0) echo "<tr>";
 echo "<td align='center' style='padding: 5px'><font face='Free 3 of 9' size='20'>*".$data['kodeBuku']."*</font><br />".$data['kodeBuku']."</td>";
 if ($counter % $kolom == 0) echo "</tr>";
 $counter++;
}

echo "</table>";
?>

Konsep membuat label berisi barcode ke dalam bentuk tabel 2 kolom ini adalah sebagai berikut
Secara umum, apabila kita membuat tabel dengan n buah kolom maka struktur htmlnya adalah seperti di bawah ini:
<table>
  <tr><td>...</td><td>...</td><td>...</td>... (akan diulang n kali)</tr>
  <tr><td>...</td><td>...</td><td>...</td>... (akan diulang n kali)</tr>
  .
  .
  .
</table>

Nah… dari struktur di atas tampak bahwa untuk setiap baris tabel terdapat n kali tag <td>…</td> yang diulang. Begitu sudah terdapat n kali, maka akan membentuk baris baru dan langkah yang sama akan diulangi lagi.
Dalam pemrograman, untuk mengimplementasikan ide di atas, kita bisa menggunakan bantuan suatu counter. Counter ini akan berjalan mulai dari 1, 2, 3, … hingga sejumlah data yang diinginkan. Bila counter telah mencapai bilangan yang merupakan kelipatan n, maka baris tabel akan diakhiri (cetak </tr>) dan selanjutnya membuat baris tabel baru (cetak <tr>), lihat baris 19 dan 21 pada script PHP di atas.
Oya… untuk mengenerate suatu string menjadi kode barcode Code 39 menggunakan TTF yang telah kita download di atas caranya adalah gunakan tag
<font face="Free 3 of 9" size="...">...</font>

dengan atribut ‘size’ nantinya akan diisi dengan value yang menyatakan ukuran simbol barcode. Pada contoh script di atas menggunakan size=”20″.
Oya… jangan lupa mengaapit string yang akan dibuat barcodenya dengan tanda asterisk (*).
Hasil output dari script di atas adalah seperti di bawah ini:


So… tinggal print saja output di atas, bisa juga langsung diprint di atas stiker label, namun terlebih dahulu Anda atur posisinya dan sesuaikan panjang lebarnya dengan stiker label.
Fiuh… jadi juga akhirnya script dan artikel ini. Panjang sekali yah artikelnya…. but anyway… mudah-mudahan ada manfaatnya buat Anda semuanya...