Setting Gammu

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.

Sumber:
 http://planetsphp.blogspot.com/2012/11/sms-gateway-php-mysql-tahap-demi-tahap.html
http://iqbalparabi.com/cara-membuat-sms-gateway-gratis-menggunakan-gammu-dan-aplikasi-kalkun-di-windows-7/
http://ikhwaniril.blogspot.com/2013/02/instal-manual-gammu-step-by-step.html

Cara Upload Gambar ke Database dengan PHP

Cara Upload Gambar ke Database dengan PHP
Biasanya kalau kita membuat aplikasi yang menampilkan data karyawan atau sejenisnya, ada foto yang ditampilkan, nah gimana sih cara buat upload gambar atau foto ke server dan memasukkannya ke database MySQL menggunakan kode PHP. Yuk kita lihat tutorialnya.

Kode Upload Foto ke Server

Pada tutorial kali ini kita akan mengetahui bagaimana mengupload gambar ke server. Setelah diupload kita simpan nama file foto tersebut ke database. Jadi sebenarnya gambar gak di simpan di database tapi di folder di server. Lalu kita juga belajar bagaimana kode untuk menampilkan gambar yang telah kita upload tersebut. Misal kita punya tabel di MySQL yang kita beri namatabel galeri dengan struktur sebagai berikut.
--
-- Table structure for table `galeri`
--

CREATE TABLE IF NOT EXISTS `galeri` (
  `id_foto` int(11) NOT NULL AUTO_INCREMENT,
  `deskripsi` varchar(200) NOT NULL,
  `file_gambar` varchar(200) NOT NULL,
  PRIMARY KEY (`id_foto`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Lalu kita buat kode HTML untuk form upload gambar.
<html>
<head>
<title>Upload Foto</title>
</head>
<body>

<form method="POST" enctype="multipart/form-data" action="upload.php">
Pilih File Foto:<br>
<input type="file" name="file_foto" size="20"><br>
<p>
Keterangan : <br><input type="text" name="keterangan" size="50"></p>
<p><input type="submit" value="Upload">
</form>
</body>
</html>

Lalu kita buat kode PHP untuk upload file ke server dan menyimpan nama filenya ke database MySQL. upload.php
<?php
//koneksi ke MySQL
$koneksi = mysqli_connect("localhost","root","");
mysqli_select_db($koneksi, "test");

$keterangan = $_POST['keterangan'];
$folder = "gambar";
$tmp_name = $_FILES["file_foto"]["tmp_name"];
$name = $folder."/".$_FILES["file_foto"]["name"];

//kode untuk upload ke folder gambar
move_uploaded_file($tmp_name, $name);

//masukkan datanya ke database
$input = mysqli_query($koneksi, "INSERT INTO galeri VALUES(null,'$keterangan','$name')");

if($input){
    //jika berhasil kita redirect ke halaman untuk menampilkan foto
    header("location: tampil.php");
}else{
    echo "gagal";
}
?>
Berikut kode untuk menampilkan foto yang kita upload ke server dan database tersebut.
<?php
//koneksi ke MySQL
$koneksi = mysqli_connect("localhost","root","");
mysqli_select_db($koneksi, "test");

$data = mysqli_query($koneksi,"SELECT * FROM galeri");
while($d = mysqli_fetch_array($data)){
    echo "<img src=\"".$d['file_gambar']."\"><br>";
    echo $d['deskripsi']."<p>\n";
}
?>
Silahkan download source code

Sumber : Web Development - drzpost.com

Pemrosesan CheckBox dengan PHP dan Javascript (Studi Kasus KRS Online)

Pada Aplikasi berbasis web seperti KRS online kita akan banyak bekerja dengan menggunakan checkbox. Di sini akan kita lihat bagaimana memproses checkbox baik disisi client/browser menggunakan javascript dan pengolahannya di sisi server menggunakan PHP. Data-data untuk checkbox kita ambil nilainya dari database MySQL, kemudian kita tampilkan di halaman web kita, kemudian apabila terjadi event onclick, kita melakukan perhitungan total sks yang telah diclick menggunakan javascript. Kemudian setelah diclick tombol submit data yang sudah diceklist akan kita simpan ke dalam database, dan kemudian kita lihat bagaimana menampilkannya kembali.

Pertama-pertama mari kita buat dua buah tabel di database, yaitu tabel matakuliah dan krs.

Sekarang mari kita buat halaman web untuk menampilkan mata kuliah tersebut

krsonline.php

Kemudian setelah itu kita buat kode PHP untuk input ke database dan bagaimana menampilkannya

inputkrs.php

Download Source Code

Sumber : Web Development - drzpost.com

Panduan Belajar PHP Bahasa Indonesia

Buat kalian-kalian yang baru pengen belajar PHP, sebenarnya sudah ada manual PHP di php.net, tetapi emang bahasa inggris. Buat yang bingung ama bahasa inggris, nih ada panduan dan tutorial belajar PHP bahasa Indonesia. cekidot...

PHP Manual Indonesia

  1. Pengenalan PHP

    1. Apa Itu PHP?
    2. Instalasi PHP
    3. Sintaks PHP
    4. Variabel di PHP
    5. Operator di PHP
    6. Kondisional di PHP
    7. Looping (Pengulangan) di PHP
       
  2. Pengenalan MySQL

    1. Apa Itu MySQL
    2. Koneksi ke MySQL Melalui PHP
    3. Cara Membuat Database di MySQL
    4. Cara Membuat Tabel
       
  3. Manipulasi Tabel MySQL

    1. Cara Insert ke Tabel MySQL
    2. Cara Menampilkan Rows Tabel MySQL
    3. Cara Delete Rows Tabel MySQL
    4. Cara Update Tabel MySQL
    5. mysql_num_rows - Menghitung jumlah baris dari query yang dihasilkan
    6. Contoh Buku Tamu
       
  4. Fungsi String

    1. addslashes — Memberi garis miring pada tanda kutip
    2. chr — Menghasilkan karakter yang spesifik berdasarkan kode ascii
    3. count_chars — Menghitung frekuensi munculnya karakter di suatu string
    4. explode — Membagi string menjadi array
    5. htmlspecialchars — Konversi karakter khusus ke HTML entities
    6. implode — Menggabungkan element array ke suatu string
    7. md5 — Menghasilkan enkripsi md5
    8. nl2br — Memasukan HTML <br> di setiap baris baru
    9. number_format — Format angka dengan dengan menggroupkan ribuan
    10. ord — Menghasilkan nilai ASCII suatu karakter
    11. parse_str — Mengubah string menjadi variabel
    12. print — Mencetak string, sama dengan echo
    13. str_pad — Menempatkan string ditempat yang panjangnya ditentukan
    14. str_repeat — Mengulang string
    15. str_replace — Mengganti string yang dicari dengan string pengganti
    16. str_shuffle — Mengacak string
    17. str_split — Mengubah string ke array
    18. str_word_count — Menghitung jumlah kata dalam string
    19. strip_tags — Menghilangkan tag HTML dan PHP
    20. stripslashes — Menghilangkan garis miring tanda kutip di string
    21. strlen — Mendapatkan panjang string
    22. strrev — Membalikkan string
    23. substr_replace — Mengganti teks pada bagian tertentu string
    24. substr — Menghasilkan bagian dari string
       
  5. Autentikasi dengan Session

    1. Pendahuluan
    2. Cara Membuat atau Register Session
    3. Cara Mengecek Session Telah Teregister
    4. Cara Un-Register Session (Log Out)
    5. Contoh Sederhana Session
       
  6. Fungsi Tanggal dan Waktu (Date/Time)

    1. date - Format tanggal dan waktu lokal
    2. getdate — Mendapatkan informasi tanggal/waktu
    3. mktime — Mendapatkan timestamp Unix untuk suatu tanggal
    4. strtotime — Mengubah string tanggal/waktu (bahasa inggris) ke timestamp Unix.
    5. time — Menghasilkan timestamp Unix saat ini
    6. Contoh : Mencari selisih hari antara 2 tanggal
       
  7. Upload File

    1. Upload Dengan Metode POST
    2. Multiple Upload File

  8. Fungsi Filesytem

    1. basename — Menghasilkan nama file dari suatu path
    2. chmod — Mengubah mode akses file
    3. chown — Mengubah pemilik file
    4. copy — Meng-copy file
    5. dirname — Menghasilkan nama direktori dari suatu path file
    6. disk_free_space — Menghasilkan sisa space disk suatu direktori
    7. disk_total_space — Menghasilkan total size direktori
    8. fclose — Menutup file yang dibuka
    9. fgetc — Mengambil karakter-karakter suatu file teks
    10. fgets — Mengambil baris-baris dari file
    11. file_exists — Cek apakah file atau direktori tersebut ada atau tidak
    12. file_get_contents — Membaca isi file keseluruhan ke string
    13. file_put_contents — Menulis teks ke file
    14. file — Membaca isi file ke dalam array
    15. fileatime — Mendapatkan waktu akses terakhir suatu file
    16. filesize — Mendapatkan ukuran file
    17. filetype — Mendapatkan tipe file
    18. fopen — Membuka file atau URL
    19. is_dir — Cek apakah filename adalah sebuah directori
    20. is_executable — Cek apakah filename bisa di eksekusi
    21. is_file — Cek apakah filename adalah sebuah file
    22. is_readable — Cek apakah filename bisa dibaca
    23. is_writable — Cek apakah filename bisa ditulis
    24. mkdir — Membuat direktori
    25. move_uploaded_file — Memindahkan file yang diupload ke lokasi baru
    26. rename — Rename file atau directori
    27. rmdir — Delete direktori
    28. unlink — Delete file
       
  9. Array

    1. Pendahuluan
    2. array_combine — Membuat array baru dengan menggunakan array sebagai key dan array lainnya sebagai nilai.
    3. array_diff_key — Mengurangi array dengan array lainnya dengan menggunakan key sebagai pembanding
    4. array_diff — Menghitung beda dari suatu array dengan menggunakan nilainya sebagai pembanding
    5. array_merge — Menyatukan array-array
    6. array_pop — Mendelete elemen terakhir suatu array
    7. array_push — Menambah satu atau lebih elemen baru di akhir array
    8. array_rand — Mengambil satu atau lebih secara random nilai suatu array
    9. array_reverse — Menghasilkan array dengan susuan elemen terbalik
    10. array_search — Mencari nilai pada nilai elemen-elemen array, jika sukses hasilnya berupa key
    11. array_shift — Mendelete elemen awal suatu array
    12. array_unique — Menghapus elemen array yang nilainya sama
    13. array_unshift — Menambah satu atau lebih elemen array di awal
    14. array — Membuat array
    15. count — Menghitung jumlah elemen suatu array
    16. each — Menghasilkan key dan nilai elemen saat ini dari suatu array
    17. in_array — Cek apakah suatu nilai ada atau tidak di elemen-elemen suatu array
    18. rsort — Menyusun array terbalik
    19. shuffle — Mengacak array
    20. sort — Menyusun/mengurutkan array
       
  10. Fungsi Direktori

    1. chdir  — Mengubah lokasi direktori dari lokasi saat ini dibuka
    2. closedir — Menutup direktori yang ditangani
    3. getcwd — Mendapatkan nama direktori saat ini dibuka
    4. opendir — Membuka direktori
    5. readdir — Membaca isi direktori
    6. scandir — Mendaftar file dan direktori dari path yang diberikan
       
  11. Fungsi Matematika

    1. abs — Nilai absolut
    2. acos — Arc cosine
    3. acosh — Kebalikan dari hyperbolic cosine
    4. asin — Arc sine
    5. asinh — Inverse hyperbolic sine
    6. atan2 — Arc tangent dari dua variabel
    7. atan — Arc tangent
    8. ceil — Round fractions up
    9. cos — Cosine
    10. cosh — Hyperbolic cosine
    11. deg2rad — Mengubah derajat ke radians
    12. exp — Menghitung exponent dari e
    13. floor — Pembulatan ke bawah
    14. log10 — Logaritma berbasis 10
    15. log — Natural logarithm
    16. max — Mencari nilai tertinggi dari suatu list atau array angka
    17. min — Mencari nilai terkecil dari suatu list atau array angka
    18. pi — Mendaparkan nilai pi
    19. pow — Menghasilkan pangkat atau eksponen
    20. rad2deg — Mengubah radian ke derajat
    21. rand — Menghasilkan angka random bertipe integer
    22. round — Membulatkan nilai float
    23. sin — Menghasilkan Sin
    24. sinh — Hyperbolic sine
    25. sqrt — Akar kuadrat
    26. tan — Tangent
    27. tanh — Hyperbolic tangent 

    Sumber : Web Development - drzpost.com - 

Membuat Login Multi User dengan PHP

Saat ini banyak CMS atau juga situs-situs komunitas memiliki multi user, yang mempunyai tingkatan level yang berbeda-beda juga. Misalnya ada level admin, ada level user, yang mempunyai hak akses yang berbeda-beda. Konsep untuk membuat login multi user adalah :
  1. Buat tabel user di database yang menyimpan data level masing-masing user
  2. Ketika login kita simpan level user yang login ke dalam variabel $_SESSION
  3. Ketika user masuk ke suatu halaman, cek apakah user sudah login dan cek level user tersebut
Sekarang mari kita lihat contoh tabel user di database dan kode PHPnya. Misal kita punya banyak halaman, di mana halaman-halaman tersebut mempunyai hak akses yang berbeda-beda. Contoh halaman-halaman web yang kita punya :
File / Halaman Web Yang Boleh Akses
homeadmin.php admin
homeuser.php user
halaman1.php admin
halaman2.php admin dan user
halaman3.php user
Berikut adah struktur tabeluser di database :
Pertama-tama mari kita buat halaman untuk login. index.php
Pada halaman login di atas terdapat action berupa file log.php
Pada kode log.php tersebut pertama-tama kita cek ke dalam tabeluser apakah ada userid dan password yang cocok. Jika ada maka kita set variabel $_SESSION['userid'] dan $_SESSION['level'], di mana nilai dari variabel session tersebut kita ambil dari database. Jika level user adalah admin maka langsung kita arahkan ke halaman homeadmin.php. Jika level user adalah user, maka kita arahlan ke halaman homeuser.php
Berikut adalah kode homeadmin.php
Pada kode di atas untuk mengecek apakah user sudah login atau belum adalah dengan menggunakan kode if(!isset($_SESSION['userid'])), artinya jika user belum login, yang ditandai dengan telah diset-nya variabel $_SESSION['userid']. Jika ternyata belum login maka kita stop sampai disitu dengan menggunakan fungsi die().
Jika user ternyata sudah login maka kita cek tingkatan level user. Kode $_SESSION['level']!="admin") berarti jika level tidak sama dengan admin, maka stop atau die().
Sekarang mari kita lihat kode homeuser.php
halaman1.php
halaman2.php
halaman3.php
Download Source Code

Sumber : Web Development - drzpost.com - 

Cara Insert Edit Delete di MySQL PHP

Setelah kita telah belajar bagaimana cara membuat database dan tabel di MySQL, saatnya kita melakukan manipulasi terhadap data di MySQL, seperti insert, edit, delete data yang ada di MySQL.

3. Manipulasi Tabel MySQL

  1. Cara Insert ke Tabel MySQL
  2. Cara Menampilkan Rows Tabel MySQL
  3. Cara Delete Rows Tabel MySQL
  4. Cara Update Tabel MySQL
  5. mysql_num_rows - Menghitung jumlah baris dari query yang dihasilkan
  6. Contoh Buku Tamu

1. Cara Insert ke Tabel MySQL

Pada tutorial sebelumnya kita telah belajar membuat tabel di MySQL. Sekarang mari kita belajar mengisi tabel tersebut, di mana inputan berasal dari form HTML.
forminput.html
<html>
<head>
<title>Input data</title>
</head>
<body>
<h2>Input Data Karyawan</h2>
<form action="inputdata.php" method="post">
Nama : <br>
<input type="text" name="nama"><p>
Tanggal Lahir :<br>
<input type="text" name="tgl">Format yyyy-mm-dd<p>
Jenis Kelamin :<br>
<select name="kelamin">
<option>Laki-laki</option>
<option>Perempuan</option>
</select>
<p>
Alamat :<br>
<textarea cols="30" rows="5" name="alamat"></textarea><p>
<input type="submit">
</form>
</body>
</html>
Kode di atas adalah kode HTML untuk membuat form inputan, yang nantinya akan kita masukkan ke database.
Pada tag  <form action="inputdata.php" method="post">, action berarti kode PHP yang akan memproses inputan jika diklik tombol submit. Methode yang digunakan adalah POST. Secara umum ada 2 metode pengiriman data ke server, yaitu POST dan GET. Bedanya jika metode GET, parameter akan ditampilkan di URL.

Query INSERT

Query INSERT adalah perintah SQL untuk memasukkan data ke tabel di database MySQL
Sintaks SQL :
INSERT INTO nama_tabel [(col_name,...)] VALUES(nilai1, nilai2,...)
Contoh :
INSERT INTO datakaryawan VALUES(null,'Desrizal','1981-12-13','Laki-laki','Jl. raya No. 12, Pekanbaru')
Kode di atas adalah SQL, cara menjalankannya melalui PHP adalah dengan menggunakan fungsi mysql_query(). Untuk lebih jelas kita lihat contoh di bawah :
inputdata.php
<?php
//lakukan koneksi ke MySQL
mysql_connect("localhost","root","");

//Pilih database tempat tabel akan dibuat
mysql_select_db("databaseku");

//ambil data dari form method POST
$nama = htmlspecialchars($_POST['nama']);
$tgl = htmlspecialchars($_POST['tgl']);
$kelamin = htmlspecialchars($_POST['kelamin']);
$alamat = htmlspecialchars($_POST['alamat']);


$masuk = mysql_query("INSERT INTO datakaryawan VALUES(null,
    '$nama','$tgl','$kelamin','$alamat')");

if($masuk){
    echo "Data berhasil diinput";
}else{
    echo "Gagal";
}
?>
  • Untuk mengambil data dari form HTML dengan metode POST adalah $_POST['namafield']
  • Untuk mengambil data dari form HTML dengan metode GET adalah $_GET['namafield']
  • htmlspecialchars() berguna untuk mengubah kode HTML < dan > menjadi &lt; dan &gt; gunanya untuk keamanan, jika ada user yang nakal mengetikkan kode HTML yang merusak penampilan web kita.
  • null artinya tidak ada nilai, karena pada saat kita buat create tabel datakaryawan, field karyawanid diset auto_incerement, artinya akan otomatis berisi nilai integer yang berurut

2. Cara Menampilkan Rows Tabel MySQL

Setelah kita belajar bagaimana menginput data dari form ke tabel di database mysql, sekarang kita belajar mengambil data dari tabel di MySQL. Langkah-langkahnya adalah sebagai berikut :
  1. Koneksi ke database MySQL, gunakan fungsi mysql_connect()
  2. Pilih database, gunakan fungsi mysql_select_db()
  3. Lakukan query SELECT, gunakan fungsi mysql_query() Sintaks SQL :
    SELECT nama_field FROM nama_tabel
    
    Contoh :
    SELECT nama, tgl_lahir FROM datakaryawan
    
    Atau, jika ingin memilih seluruh field, gunakan tanda bintang (*)
    SELECT * FROM datakaryawan
    
  4. Masukkan hasil query ke dalam array, gunakan fungsi mysql_fetch_array()
  5. Print data dari array, gunakan fungsi echo
Sekarang kita lihat contoh kodenya :
tampil.php
<?php
//lakukan koneksi ke MySQL
mysql_connect("localhost","root","");

//Pilih database tempat tabel akan dibuat
mysql_select_db("databaseku");

//lakukan query select

$ambildata = mysql_query("SELECT * FROM datakaryawan");
while($data = mysql_fetch_array($ambildata)){
    echo "<a href=detail.php?no=".$data['karyawanid'].">".$data['nama']."</a> | ";
    echo "<a href=delete.php?no=".$data['karyawanid'].">delete</a><br>";
}
?>

3. Cara Delete Rows Tabel MySQL

Untuk mendelete data yang ada di database adalah dengan cara melakukan query DELETE
Sintaks SQL:
DELETE FROM nama_tabel WHERE namafield=kondisi
Contoh :
DELETE FROM datakaryawan WHERE karyawanid=2
Pada contoh tampil di atas, jika anda jalankan akan ada link delete, yang kalau diklik akan mengarah file delete php, misal : delete.php?no=1
Sekarang mari kita buat kode PHPnya
delete.php
<?php
//lakukan koneksi ke MySQL
mysql_connect("localhost","root","");

//Pilih database tempat tabel akan dibuat
mysql_select_db("databaseku");

//ambil nilai variabel no yang diambil dari URL
$nomor = $_GET['no'];

//lakukan query DELETE
$del = mysql_query("DELETE FROM datakaryawan WHERE karyawanid=$nomor");
if($del){
    echo "Data berhasil di delete";
}else{
    echo "Gagal";
}
?>

4. Cara Update Tabel MySQL

Untuk melakukan update database mysql kita harus melakukan query UPDATE
Sintaks SQL :
UPDATE nama_tabel SET nama_field=nilai, nama_field2=nilai2,...
WHERE nama_field=kondisi
Contoh :
UPDATE datakarayawan SET nama='Desrizal', alamat='Tembagapura'
WHERE karyawanid=1
Oke mari sekarang kita buat program untuk update data karyawan. Pada contoh tampil.php, jika nama karyawan diklik akan menuju file detail.php
Buat form untuk Update, detail.php
<form action="update.php" method="post">

<?php
//lakukan koneksi ke MySQL
mysql_connect("localhost","root","");

//Pilih database tempat tabel akan dibuat
mysql_select_db("databaseku");

//ambil nilai variabel no yang diambil dari URL
$nomor = $_GET['no'];

//lakukan query SELECT
$data = mysql_query("SELECT * FROM datakaryawan WHERE karyawanid=$nomor");
while($d = mysql_fetch_array($data)){
    echo "Karyawan id : ".$d['karyawanid']."<p>";
    echo "<input type=\"hidden\" name=\"id\" value=\"".$d['karyawanid']."\">";
    echo "Nama :<br>";
    echo "<input type=\"text\" name=nama value=\"".$d['nama']."\"><p>";
    echo "Jenis Kelamin :<br>";
    echo "<select name=kelamin>";
    if($d['kelamin']=="Laki-laki"){
        echo "<option selected>Laki-laki</option>
            <option>Perempuan</option>\n";
    }else{
        echo "<option>Laki-laki</option>
            <option selected>Perempuan</option>\n";
    }
    echo "</select><p>";
    echo "Alamat :<br>";
    echo "<textarea name=alamat>".$d['alamat']."</textarea><p>";
}
?>
<input type=submit value=update>
</form>
Jika form pada kode diatas diklik, maka akan menjalankan file update.php
<?php
//lakukan koneksi ke MySQL
mysql_connect("localhost","root","");

//Pilih database tempat tabel akan dibuat
mysql_select_db("databaseku");

//ambil nilai variabel no yang diambil dari form POST
$id = htmlspecialchars($_POST['id']);
$nama = htmlspecialchars($_POST['nama']);
$kelamin = htmlspecialchars($_POST['kelamin']);
$alamat = htmlspecialchars($_POST['alamat']);

//lakukan query update

$update = mysql_query("UPDATE datakaryawan
    SET nama='$nama',
    kelamin='$kelamin',
    alamat='$kelamin'
    WHERE karyawanid=$id");
    
if($update){
    echo "Data berhasil diupdate";
}else{
    echo "gagal";
}
?>

mysql_num_rows

Fungsi : Menghitung jumlah baris dari query yang dihasilkan
Sintaks :
mysql_num_rows ( resource $result )
Parameter :
$result, hasil dari query yang sudah dijalankan.
Contoh :
<?php
//lakukan koneksi ke MySQL
mysql_connect("localhost","root","");

//Pilih database tempat tabel akan dibuat
mysql_select_db("databaseku");

$query = mysql_query("SELECT * FROM datakaryawan WHERE kelamin='Perempuan'");

$jumlah = mysql_num_rows($query);

echo "Jumlah karyawan Perempuan adalah : $jumlah orang";
?>

6. Contoh Buku Tamu

Sekarang mari kita lihat contoh lainnya, yaitu buku tamu.
Struktur tabel bukutamu di MySQL
CREATE TABLE `bukutamu` (
  `nomor` int(10) NOT NULL auto_increment,
  `nama` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `waktu` varchar(30) NOT NULL,
  `komentar` text NOT NULL,
  PRIMARY KEY  (`nomor`)
)
bukutamu.php
<html>
<head><title>Buku Tamu</title></head>
<body>
<font face=arial size=2>
<h2>Buku Tamu</h2>
<form action="isibukutamu.php" method="post">
Nama:<br>
<input type="text" name="nama"><p>
Email:<br>
<input type="text" name="email"><p>
Komentar:<br>
<textarea name="komentar" cols=40 rows=10></textarea>
<p><input type="submit" value="Kirim">
</form>
<hr>
<!---kode PHP untuk menampilkan bukutamu------->
<?php
//lakukan koneksi ke MySQL
mysql_connect("localhost","root","");

//Pilih database tempat tabel akan dibuat
mysql_select_db("databaseku");

$data = mysql_query("SELECT * FROM bukutamu ORDER BY nomor DESC");
$w = 1;
while($d=mysql_fetch_array($data)){
    //buat warna selang-seling
    if($w == 1){
        $warna = "#ffffff";
        $w = 0;
    }else{
        $warna = "#efefef";
        $w = 1;
    }
    echo "<div style=\"background-color:$warna;padding:5\">";
    echo "Nama : ".$d['nama']."<br>";
    echo "Email : ".$d['email']."<br>";
    echo "<font size=1>Waktu : ".$d['waktu']."</font><br>";
    echo "<b>Komentar :</b><br>".$d['komentar'];
    echo "</div><p>\n";
}
?>
</font>
</body>
</html>
isibukutamu.php
<?php
//lakukan koneksi ke MySQL
mysql_connect("localhost","root","");

//Pilih database tempat tabel akan dibuat
mysql_select_db("databaseku");

$nama = htmlspecialchars($_POST['nama']);
$email = htmlspecialchars($_POST['email']);
$komentar = htmlspecialchars($_POST['komentar']);
$waktu = date("H:i d M Y");
//jika user tekan enter atau barisbaru, kasih tag <br>
$komentar = nl2br($komentar);

$isi = mysql_query("INSERT INTO bukutamu VALUES(null,'$nama','$email','$waktu','$komentar')");
if($isi){
    header("location:bukutamu.php");
}else{
    echo "Gagal";
}
?> 
 
 
Sumber : Web Development - drzpost.com  

Belajar Dasar Database MySQL dan PHP

Database MySQL merupakan database gratis yang sangat terkenal. Biasanya banyak programmer menggunakan MySQL sebagai database. dan biasanya lagi MySQL disandingkan dengan PHP. Yuk kita pelajari dasar-dasar MySQL.

2. Pengenalan MySQL

  1. Apa Itu MySQL
  2. Koneksi ke MySQL Melalui PHP
  3. Cara Membuat Database di MySQL
  4. Cara Membuat Tabel

1. Apa Itu MySQL

MySQL adalah salah satu jenis database, tempat meletakkan data secara terstruktur berupa tabel-tabel dan kita bisa melakukan query atau mengolah data tersebut dengan SQL (Structured Query Languange)

2. Koneksi ke MySQL Melalui PHP

Untuk melakukan koneksi ke MySQL kita menggunakan fungsi mysql_connect()
Sintaks :
mysql_connect(host, username, password)
Contoh :
<?php
$koneksi = mysql_connect("localhost","root","");

if($koneksi){
    echo "Koneksi berhasil";
}else{
    echo "Gagal";
}
?>
Jika anda telah berhasil koneksi ke MySQL, anda bisa melakukan apapun terhadap database tersebut tergantung hak-hak anda, anda bisa buat database, buat tabel dan melakukan query

3. Cara Membuat Database di MySQL

Membuat Database Melalui phpmyadmin
Ketika anda menginstal paket Web Server + PHP + MySQL seperti XAMP atau WAMP anda akan di beri phpmyadmin, yaitu semacam aplikasi berbasis web untuk mengatur database MySQL
  1. Buka phpmyadmin di http://localhost/phpmyadmin, berikut tampilan phpmyadmin
  2. Ketik nama database yang anda inginkan di textfield Create new database, misal : databaseku
  3. Klik tombol create
  4. Database berhasil dibuat

4. Cara Membuat Tabel

Misal anda ingin membuat tabel : datakaryawan dengan struktur tabel sebagai berikut :
Field Type Length
karyawanid INTEGER 5
nama VARCHAR 30
tgl_lahir DATE  
kelamin VARCHAR 10
alamat TINYTEXT  
Membuat Tabel di phpmyadmin
  1. Buka phpmyadmin
  2. Pilih database yang anda buat tadi
  3. Pada bagian bawah Create new table on database, di textfield Name, masukkan nama tabel yang ingin dibuat, misal : datakaryawan
  4. Pada textfield Number of fields, masukkan jumlah field atau kolom yang ingin dibuat. misal : 5
  5. Klik tombol GO
  6. Akan muncul form untuk membuat tabel, seperti berikut :
  7. Isi field-field seperti di atas
  8. Klik Tombol Save
  9. Tabel datakaryawan berhasil dibuat

Membuat Tabel Melalui PHP dan Query

Selain melalui phpmyadmin, kita juga bisa membuat tabel langsung melalui PHP, dimana kita mengeksekusi query CREATE TABLE, contoh :
<?php
//lakukan koneksi ke MySQL
mysql_connect("localhost","root","");

//Pilih database tempat tabel akan dibuat
mysql_select_db("databaseku");

$query = "CREATE TABLE datakaryawan(
  karyawanid int(5) auto_increment primary key,
  nama varchar(30),
  tgl_lahir date,
  kelamin varchar(10),
  alamat tinytext
)";

//jalankan query
$buat = mysql_query($query);

if($buat){
    echo "Tabel datakaryawan berhasil dibuat";
}else{
    echo "Gagal";
}
?> 
 
 

Sumber : Web Development - drzpost.com -