Mungkin tutorial yang aku tulis cupu bgt bagi yang sudah mahir bagi yang master jgn diledekin ya…. Coz aku masih muda bgt neh…heheh,,,,,,
Yup kebanyakan dari kita pengguna php, apache dan mysql hanya menggunakan server instant seperti phptriad, appserve dan server instant lain. Alasannya sederhana, biar lebih praktis aja….
Heheh, emang seh betul tapi mengingat ini software adalah produk open source dan kita tau open source itu perkembangannya pesat bgt coz dikerjain oleh byk org. Maka jika ngandalin server instant maka mesin kita akan terbatas dari orang yang buat(config ni sbnrnya) server instant tsb. Yah kalau kayak gitu ketinggalan trus dunx… misalnya ada php versi baru trus apache baru atau mysql baru, pengguna server instant mesti nungguin team pembuat server instantnya. Lama dunx…. Nah lo, sekarang kenapa kita nda gunain server yang manual aja.. Alasan susah sebenarnya seh masuk akal karena aku juga merasa kesusahan dalam mengconfig ketiga software ini. Tutorial yang aku baca cuma sampai menghubungkan apache dan php aja giliran menghubungkan php dan mysql gagal. Bingung juga awalnya tapi dengan tekad dan kerja keras(heheh….) akhirnya bisa deh,heheh….
Yup kita mulai aja ya…Yang pertama kita mesti dapatin ketiga software ini(php,apache dan mysql) di official website mereka.
Untuk php : www.php.net
Untuk apache : www.apache.org
Untuk MySQL : www.mysql.com
(solusi lain: kopi aja dari teman kamu jika ada,heheh… lebih gampang loh).
Nah setelah dapat ketiganya sekarang extract php yang kamu download dan letakin di direktori yang kamu inginkan. Misalnya negh : C:\php5\
Kemudian install apache (installnya mudah kok karena udah ada installshield wizard, tinggal ikutin aja). Untuk ngetes apakah servis apache udah jalan kamu tinggal panggil http://localhost/ . Jika ada tulisannya maka kamu sukses jika nda install apachenya lagi aja,heheh….
Kemudian install MySQL. Install nya juga mudah karena udah ada installshield wizard, ikutin aja petunjuknya. Oia dibagian MySQL.com sign up kamu skip aja, biar cepat. Nah kemudian dibagian akhir kamu pilih ‘configure the Mysql server now’ trus kamu pilih standard configuration aja trus centang semua pilihan yang ada disitu seperti ‘Install as windows service’ , ‘Launch The MySQL server automatically’ dan Include Bin directory In windows path’. Oia supaya MySQL kamu lebih secure kamu jangan centang pilihan ‘Create an anymous account’ coz dengan jika kamu centang all user bisa masuk ke MySQL kamu. Cukup pilih ‘modify security settings’ dan isikan password kamu. Access remote machine itu terserah kamu(tergantung kebutuhan) Klik next. Dan kemudian klik execute. Jika semuanya sukses maka di windows kamu sudah ada apache, php dan MySQL.
Tambahan dikit
jika kamu mau login ke MySQL kamu dengan settingan diatas, cukup panggil/ketikkan mysql –u root –p di command prompt kamu dan kamu akan dimintai password. Jika mysql belum kamu atur sebagai environment variable, kamu masuk ke path mysql kamu misalnya cd C:\Program Files\MySQL\MySQL Server 5.1\bin di command prompt kemudian lakukan hal yang sama sprti diatas. Kamu akan dimintai password root kamu. Tinggal masukkan aja passwordnya. Jika kamu mencentang ‘Create an anymous account’ pada configure MySQL maka cukup ketikkan mysql aja nda perlu options lain dibelakangnya. Tapi ini akan membuat orang lain dengan mudah mendapat akses root.
Apakah cukup sampai disini??belum…
Sekarang giliran kita konfigurasi php, apache dan MySQL biar bisa saling berhubungan.
Yang pertama kita konfig dulu apache nya biar bias me-load module php 5 kamu. Buka directory tempat kamu nginstall apache(missal C:\Program Files\Apache Software Foundation) kemudian cari directory conf dan cari file ‘httpd.conf’. Nah inlah file konfigurasi untuk apache nya. Buka dg text editor kamu(misalnya notepad atau yg lainnya) dan cari baris dimana apache me-load module yang digunakan. Kalau tidak salah baris load module dimulai dari 67 sampai banyaknya module yang ada di apache(Note:: tidak semua module mesti di-load apache, semua tergantung kebutuhan tapi untuk konfigurasi pertama biarkan saja apa adanya). Jika udah dapat, di baris load-module itu tambahin directory tempat kamu nyimpan file ‘php5apache2_2.dll’. file ini adalah library dimana apache dapat dihubungkan dg php sesuai dengan versi apache dan php nya. Di file php yang kamu extract disitu ada file ‘php5apache2_2.dll’ tinggal kamu simpan pathnya dan tambahin di konfig apache
Misalnya : LoadModule php5_module C:/php5/php5apache2_2.dll.
Kemudian pada bagian ‘DefaultType text/plain’ kamu tambahin type file yang kamu load modulenya yaitu file dengan extension *.php alias file php kamu. Pada bagian ‘AddType’ tambahin aja ‘AddType application/x-httpd-php .php’ seperti gambar.
Kemudian kopikan file php5ts.dll ke direktori C:\WINDOWS\system32\ . file php5ts.dll sudah ada sewaktu kamu mengextract php kamu.
Nah setelah selesai kamu tinggal cari baris dimana kita mengkonfig document root. Document root adalah tempat dimana kamu meletakkan script php. Kalau tidak salah konfig document root dimulai dari baris 150.
Ubah document root sesuai dengan yang kamu inginkan misalnya DocumentRoot "C:/websiteku"
Jangan lupa jika kamu sudah mengubah path document root kamu jg mesti mengubah pada baris 178 seperti digambar
Setelah itu untuk mengetes apakah apache dan phpnya telah terhubung letakkan file php di path document root kamu misalnya : phpinfo.php
Tulis di file phpnya
phpinfo();
?>
Restart apache kamu Kemudian buka browser kamu dan ketikkan http://localhost/ dan jika kamu ada lihat file phpinfo.php kamu, tinggal klik aja file nya dan jika ada muncul info ttg php kamu maka kamu sukses menghubungkan apache dan php kamu.
Oia jgn lupa copikan file php.ini-dist di direktori php kamu ke C:\WINDOWS\ dan ubah nama filenya menjadi php.ini . file ini akan mengatur behaviour dari php kamu. Di file ini kamu bisa mengatur behaviour dari php kamu seperti meng-on kan register global dan yang tidak kalah pentingnya mengatur(me-manage) extension dari php kamu.
Manage extension dimulai dari baris 476 kamu bisa lihat banyak sekali keterangan disini yang bisa kamu baca. Yang tak kalah penting set path extension kamu ke tempat kamu meletakkan extension kamu. Cek path php kamu dan cari kumpulan file dengan extension *.dll dan awalan php_ itulah extension php kamu. Simpan pathnya dan tulis ke php.ini kamu(kira2 baris 476 yang ada tulisan ; Directory in which the loadable extensions (modules) reside.
Dibawahnya kamu bisa set extension_dir misalnya menjadi "C:/php5\ext\" . ini contoh aja kamu bs sesuaikan dengan directory kamu. Pada bagian Dynamic Extensions kira kira baris 568 kamu bisa hidupkan(aktifkan) extension kamu caranya hapus tanda ; didepan nama file extension kamu(misalnya ; extension=php_mysql.dll menjadi extension=php_mysql.dll). Extension ini merupakan extension untuk MySQL kamu. Konfigurasi lain di file php.ini bisa disesuaikan dengan kebutuhn kamu.
Mungkin byk yang nulis ttg konfigurasi apache 2 dan php 5. Tapi yang tidak kalah penting(menurut aku) yaitu sewaktu kita mencoba menghubungkan php dan MySQL nya.
Yup kita sekarang akan coba mengkonfig php dan MySQL. Yang pertama kita mesti pastikan path untuk extension php kamu benar. Sebelumnya kita sudah mengkonfig extension_dir jadi sekarang tinggal mengaktifkan file php_mysql.dll kamu caranya hapus tanda ; didepan nama filenya. Diatas sudah kita bahas cara mengaktifkan file extension(contoh filenya juga untuk MySQL!!!heheh…). sekarang copy file libmysql.dll yang ada di direktori php kamu. File ini sudah include sewaktu kamu mendowload php. File ini merupakan library untuk windows supaya bisa terhubung ke MySQL. Copikan ke path C:\windows\system32\ . bagian ini kadang kadang terlupakan sewaktu kita mencoba menghubungkan php dan mysql. Tanpa file ini segala fungsi mysql diphp akan tidak dikenal akan muncul pesan error seperti kita membuat fungsi baru(bahasa kerennya user defined function) tapi path file kita atau fungsinya belum dideklarasikan kira kira seperti :
Nah setelah file kita kopikan sekarang restart apache kamu dan buat file untuk mengetes koneksi ke MySQL kira kira contoh file nya bernama connect.php dan isi filenya
$user_db = "root";
$user_password = "very";
$host = "127.0.0.1";
$sambung = mysql_connect($host,$user_db,$user_password) or die('Invalid Query!!'.mysql_error());
if($sambung)
{
echo("sukses menyambungkan mysql dan php");
}
?>
Sekarang panggil file yang kita buat untuk mengetes php dan mysql jika muncul pesan maka kamu sukses menghubungkan(misal kalau file contoh akan muncul pesan ‘sukses menyambungkan mysql dan php’) maka php kamu sukses terhubung ke MySQL.
Tambahan dikit:
Jika kamu sudah pernah mengkonfig php dan mysql menggunakan file libmysql.dll sebelumnya maka library libmysql.dll akan terload secara permanent di windows dan kamu tidak perlu mencopy file ini lagi. Tapi jika terjadi error maka copy aja lagi file ini. Biasanya MySQL 5 membutuhkan file libmysql.dll .
Thanx ya udah mau baca tulisan ku yang cupu bgt,hehhe….. Mudah mudahan IT Indonesia berkembang pesat dan makin byk orang orang yang expert di bidang IT dan jgn lupa untuk terus mengasah kemampuan kita cOz itu dalam bgt,heheh…(hati hati loh kelelep…).
Cayo Indonesia IT….
Senin, 28 April 2008
Beberapa fungsi date/time di MySQL…
Sorry sebelumnya kalau ada yang salah dalam penulisan artikel ini maklum baru newbie dalam membuat artikel..hehhee…. yup kita mulai aja yach!!!
MySQL memang cocok banget waktu dipasangin dengan php apalagi sekarang fungsi didalam php untuk MySQL sudah built in. Entah mulai versi berapa yang pasti seh di php5 tidak memerlukan extensions lagi untuk MySQL. Saking cocoknya php dengan MySQL beberapa programmer php melupakan bahwa MySQL memiliki fungsi yang sudah built in yang memberikan kita kemudahan dalam melakukan beberapa pengolahan data. Yup…. data adalah hal yang paling penting dalam database. Tanpa data tidak akan ada informasi. Betul nda??huehuehe… Bahasanya nyantai aja yach… jangan yang terlalu formal. Bayangin kalau kita bisa menggunakan fungsi yang ada dalam MySQL tentunya kita bisa membuat distribusi pekerjaan antara database server dan webserver kita dan tentunya web yang kita buat juga semakin powerful…. Betul nda??? Yakin aja dech!!! Heheeh…….. penulis menyadari hal ini sewaktu melihat senior yang juga suhu penulis yang lagi nyusun skripsinya… makacih banget uda buka mataku tentang MySQL. Yup katanya makaci juga,heheheh……
Hal yang paling krusial dan yang mau saya bahas adalah yang menyangkut masalah waktu… yup waktu… kenapa waktu karena kebanyakan beberapa table dibuat kolom untuk waktu dengan tipe data string(varchar). Kalau waktu tidak menjadi data masukan penting dalam pengolahan data, is ok lah!!! Tapi bagaimana jika waktu menjadi data masukan penting bagi pengolahan data… bisa repot kita kalau menggunakan tipe data varchar untuk kolom waktu…. Repot?? Yup repot jika kita mengandalkan php sebagai pemroses utama karena kita akan berhadapan dengan algoritma lagi untuk memprosesnya…. Padahal MySQL uda nyiapin fungsinya sendiri.
Kalau mau nampilkan tanggal dalam php kita gunakan fungsi $waktu = date("d-m-Y H:i:s") dan akan tercipta waktu(misalnya) : 01-10-2007 21:30:20 dan setelah decompile oleh php data yang udah ada ini kita masukin ke MySQL misalnya dengan query INSERT INTO table(kolom1,kolom2,….) VALUES(‘$waktu’,…….) dan data telah dimasukkan ke MySQL dengan data waktu yang dibuat oleh php. Hmmm……. cara ini emang benar tapi gmn kalau data ini akan kita proses, misalnya kita ambil tanggalnya maka kita harus gunakan fungsi diphp misalnya kita ambil data di dalam table dan kita masukkan ke $waktu_proses maka kita akan gunain fungsi string substr ( string string, int start [, int length] ). Misalnya scriptnya menjadi : $tanggal = substr($waktu,0,2) dan akan tercipta output 01. Yup sekilas emang seh nda rumit, karena data yang diperlukan masih kecil bayangin kalau kita mau nampilin nama harinya… nah loh bingung kan!!!!
Oke penulis punya suatu cara yang simple, kenapa simple??karena kita akan gabungin fungsi diphp dengan fungsi di MySQL. Yup prosesnya terpisah ada dua server yang mengerjakannya yaitu web server dan database server. Dan penulis yakin ini akan lebih cepat.
Oke langsung aja yach…..
Yang pertama yang perlu diperhatikan adalah settingan waktu antara webserver dan database server kita jika waktu webserver dan database server kita sesuai dengan (misalnya GMT+07) yang kita inginkan yach emang kondisinya paling ideal. Dan waktunya mesti sama, waktu webserver mesti sama dengan waktu database server kita… knpa?? Karena jika beda output yang kita inginkan akan miss atau meleset.. knp??karena output waktu antara database server dan web server akan beda sehingga nda konsisten. Nah loh diulang lagi!!!heheh……..
Oke kita anggap aja kondisinya sudah ideal,webserver dan databaseserver memiliki zona waktu yang anda inginkan dan keduanya memiliki waktu yang sama.
Kita lanjut ke bagian pemasukkan data. Hal yang paling penting di database yaitu pemilihan tipe data karena kita mau masukkin data dengan waktu yang lengkap yaitu dari tanggal sampai ke detiknya maka pilihan data yang tepat yaitu datetime. Yup datetime akan merekam waktu dengan lengkap dari tanggal sampai detik. Waktu yang direkam yaitu waktu di database server anda. Ok jika tipe data nya uda benar maka untuk kita harus memperhatikan format waktu yang digunakan dalam MySQL anda. Jika anda menggunakan PHPMYADMIN sebagai interface MySQL anda maka anda bisa melihat opsi • Show MySQL system variables dihalaaman utama PHPMYADMIN dan anda bisa melihat system variable dari MySQL anda mulai dari date format,datetime format,time format dll. Nah misalnya datetime format dari MySQL anda adalah %Y-%m-%d %H:%i:%s maka anda akan mendapat waktu,misalnya 2007-06-22 21:44:00. Sudah sampai disini, ada pertanyaan???hehehe…. yang sudah master jangan nanya dunx penulis masih cupu negh coding php nya….. udah sekarang kita lanjutin aja..
Setelah tipe data uda genah maka kita akan lanjut ke memasukkan data ke MySQL nya. Jika diawal kita perlu banyak proses diphp mulai dari penggunaan fungsi date() dan formatnya dilanjutkan querynya lagi maka jika kita manfaatin fungsi built in di MySQL maka kita hanya butuh query. Yup query…. Kenapa query??karena didalam query kita bisa memasukkan fungsi MySQL. Misalnya kita akan memasukkan data waktu sekarang mulai dari tanggal sampai detik maka kita hanya perlu query INSERT INTO table(kolom1,kolom2,….) VALUES(now(),…….) yup hanya dengan query ini maka kita udah memasukkan data waktu mulai dari tahun sampai detik sesuai dengan format datetime MySQL anda. So easy and simple, yang anda butuhkan hanya query, anda tidak perlu fungsi tambahan di php seperti date() dan yang lainnya. Sekarang jika kita mau menampilkan data dari table, misalnya mau menampilkan tanggalnya, maka caranya juga gampang seperti tadi. Yah cuma butuh query, kita tidak perlu repot repot mengambil data dari table kemudian menampungnya di variable dan mengambil substring dari variable,,,kebanyakan tau!!! Yang kita butuhkan hanya query!!! Yup Cuma query!!! Nda percaya??? Penulis buktikan yach!!! Data yang uda kita masukin tadi, misalnya di nama tabelnya tabel1 dan nama kolomnya kolom1 maka kita hanya butuh query SELECT dayofmonth(kolom1) FROM tabel1. dan boom… data yang diberikan oleh MySQL sudah berupa tanggal dalam 1 bulan jika datanya 2007-06-22 21:44:00 maka MySQL akan memberikan data 22. mudah kan??? Kita nda perlu repot repot mengambil data dari table kemudian menampungnya di variable dan mengambil substring dari variable…. Dgn cara begini aplikasi kita akan semakin powerful…percaya kan??
Ok beberapa fungsi date/time MySQL yang dapat anda gunakan seperti :
1. dayofweek() fungsi ini akan mengembalikan nilai int yang merupakan hari dalam satu minggu.
2. dayofmonth() fungsi ini akan mengembalikan nilai int yang merupakan hari dalam satu bulan.
3. dayofyear() fungsi ini akan mengembalikan nilai int yang merupakan hari dalam satu tahu dengan range 1-366.
Sekarang bagaimana jika kita mau nampilkan nama hari dari data 2007-06-22 21:44:00??? Kalau kita ngandalin php saja maka kita akan repot banget karena penelusuran saya di manual php di generate pada tanggal 03 00:56:38 2007 saya tidak mendapatkan fungsi built in nya dan jika kita ngandalain php saja maka kita akan direpotkan dengan algoritma yang harus kita buat untuk mendapatkannya. Yup, algoritma kita buat dan kita sudah meghabiskan waktu yang lumayan banyak, belum lagi pekerjaan lain yang menunggu kita. Pekerjaan lain seperti makan, minum, mandi, tidur, ngerjain tugas kuliah dan lain lain,heheh…. Nda kok canda!!!
Uda ah candanya balik lagi ke masalah menampilkan nama hari… Melihat kerepotan yang akan ditimbulkan oleh masalah ini maka penulis menyarankan menggunakan fungsi yang sudah MySQL buat yaitu fungsi dayname() . Yup dayname(), dengan fungsi ini kita nda perlu repot repot buat algoritma yang panjang, kita hanya butuh query dengan fungsi dayname()… penulis contohin nih , misalnya di nama tabelnya tabel1 dan nama kolomnya kolom1 maka kita hanya butuh query SELECT dayname(kolom1) FROM tabel1 dan boommmm lagi…. Kita dapatin nama harinya… yup nama harinya dalam bahasa inggris(tau bhs inggris kan???heheh!!!) maka kita cukup direpotkan saja dengan konversi dari nama hari dalam bahasa inggris ke bahasa yang akan kita tampilkan(mau bhs jawa,bhs melayu,dan bhs lain).. yah tentunya code untuk konversinya ditulis dalam php dung….. mudah bukan??
Oh iya satu tips lagi dari penulis… sewaktu semester 3 penulis dan teamnya mengerkjakan tugas suatu mt kuliah yang asyik bgt yaitu Rekayasa Perangkat Lunak(RPL) yang dosennya asyik bgt juga!!! Heheh…. Maaf nih pak ada dimasukin!!! Di sini kami buat modul untuk SI Hotel yaitu cek in dan cek out nya.. masalahnya kami kebingungan untuk menghitung banyak hari tamu menginap… setelah mencari (sampai tugas tu dikumpulin team kami belum berhasil juga nemukan caranya,hehehe….) dan akhirnya mendapatkannya penulis mendapatkan algoritma didalam ebook PHP 5 in Practice By Elliot White III, Jonathan Eisenhamer yang diterbitkan oleh Sams disini ditulis caranya yang panjang, mau lihat codenya?? Dibawah ni :
Listing 3.1.1. Number of Days Between Two Dates
// Set the default timezone to US/Eastern
date_default_timezone_set('US/Eastern');
// Will return the number of days between the two dates passed in
function count_days($a, $b) {
// First we need to break these dates into their constituent parts:
$a_parts = getdate($a);
$b_parts = getdate($b);
// Now recreate these timestamps, based upon noon on each day
// The specific time doesn't matter but it must be the same each day
$a_new = mktime(12, 0, 0, $a_dt['mon'], $a_dt['mday'], $a_dt['year']);
$b_new = mktime(12, 0, 0, $b_dt['mon'], $b_dt['mday'], $b_dt['year']);
// Subtract these two numbers and divide by the number of seconds in a
// day. Round the result since crossing over a daylight savings time
// barrier will cause this time to be off by an hour or two.
return round(abs($a_new - $b_new) / 86400);
}
// Prepare a few dates
$date1 = strtotime('12/3/1973 8:13am');
$date2 = strtotime('1/15/1974 10:15pm');
$date3 = strtotime('2/14/2005 1:32pm');
// Calculate the differences, they should be 43 & 11353
echo "
echo "
?>
Banyakkan??? Nah setelah coba coba mengoprek MySQL penulis mendapatkan cara yang mudah yang memanfaatkan fungsi di MySQL. Fungsi yang digunakan yaitu dayofyear(). Kenapa fungsi ini??karena tanggal untuk 1 tahun akan terus bertambah dan tidak akan berulang dengan range 1-366 dan hal ini berarti kita cukup mengambil dayofyear() dari kolom cek in dan dayofyear() dari kolom cek out dan kalkulasikan tanggalnya dengan cara menguranginya….. mudah bukan??? Emang sich cara ini punya kelemahan. Kelemahannya jika tamu menginap di akhir tahun maka tanggal dalam tahun akan berulang kembali… tapi cara ini cukup mempermudah jika asumsi penginapan tidak berbeda dalam 1 tahun(kalau bhs kerennya cross year!!betul nda ya??pasti semua mikir penulis sok tahu!!!heheheh… maklum masih muda).
Yup masih banyak fungsi date/time function di MySQL yang dapat digunakan… untuk lebih jelasnya lihat manual dari MySQL…
Sekian dari penulis jika ada kekurangan dimaafin, jika ada saran, kritik atau sanggahan silahkan hubungi penulis di email vry_27@yahoo.co.id
Very
Wassalam….
Sumber : MySQL/PHP Database Applications, Jay Greenspan and Brad Bulger Published by M&T Books
Always expand your skill and beware of euphoria because it will kill you guys!!!
MySQL memang cocok banget waktu dipasangin dengan php apalagi sekarang fungsi didalam php untuk MySQL sudah built in. Entah mulai versi berapa yang pasti seh di php5 tidak memerlukan extensions lagi untuk MySQL. Saking cocoknya php dengan MySQL beberapa programmer php melupakan bahwa MySQL memiliki fungsi yang sudah built in yang memberikan kita kemudahan dalam melakukan beberapa pengolahan data. Yup…. data adalah hal yang paling penting dalam database. Tanpa data tidak akan ada informasi. Betul nda??huehuehe… Bahasanya nyantai aja yach… jangan yang terlalu formal. Bayangin kalau kita bisa menggunakan fungsi yang ada dalam MySQL tentunya kita bisa membuat distribusi pekerjaan antara database server dan webserver kita dan tentunya web yang kita buat juga semakin powerful…. Betul nda??? Yakin aja dech!!! Heheeh…….. penulis menyadari hal ini sewaktu melihat senior yang juga suhu penulis yang lagi nyusun skripsinya… makacih banget uda buka mataku tentang MySQL. Yup katanya makaci juga,heheheh……
Hal yang paling krusial dan yang mau saya bahas adalah yang menyangkut masalah waktu… yup waktu… kenapa waktu karena kebanyakan beberapa table dibuat kolom untuk waktu dengan tipe data string(varchar). Kalau waktu tidak menjadi data masukan penting dalam pengolahan data, is ok lah!!! Tapi bagaimana jika waktu menjadi data masukan penting bagi pengolahan data… bisa repot kita kalau menggunakan tipe data varchar untuk kolom waktu…. Repot?? Yup repot jika kita mengandalkan php sebagai pemroses utama karena kita akan berhadapan dengan algoritma lagi untuk memprosesnya…. Padahal MySQL uda nyiapin fungsinya sendiri.
Kalau mau nampilkan tanggal dalam php kita gunakan fungsi $waktu = date("d-m-Y H:i:s") dan akan tercipta waktu(misalnya) : 01-10-2007 21:30:20 dan setelah decompile oleh php data yang udah ada ini kita masukin ke MySQL misalnya dengan query INSERT INTO table(kolom1,kolom2,….) VALUES(‘$waktu’,…….) dan data telah dimasukkan ke MySQL dengan data waktu yang dibuat oleh php. Hmmm……. cara ini emang benar tapi gmn kalau data ini akan kita proses, misalnya kita ambil tanggalnya maka kita harus gunakan fungsi diphp misalnya kita ambil data di dalam table dan kita masukkan ke $waktu_proses maka kita akan gunain fungsi string substr ( string string, int start [, int length] ). Misalnya scriptnya menjadi : $tanggal = substr($waktu,0,2) dan akan tercipta output 01. Yup sekilas emang seh nda rumit, karena data yang diperlukan masih kecil bayangin kalau kita mau nampilin nama harinya… nah loh bingung kan!!!!
Oke penulis punya suatu cara yang simple, kenapa simple??karena kita akan gabungin fungsi diphp dengan fungsi di MySQL. Yup prosesnya terpisah ada dua server yang mengerjakannya yaitu web server dan database server. Dan penulis yakin ini akan lebih cepat.
Oke langsung aja yach…..
Yang pertama yang perlu diperhatikan adalah settingan waktu antara webserver dan database server kita jika waktu webserver dan database server kita sesuai dengan (misalnya GMT+07) yang kita inginkan yach emang kondisinya paling ideal. Dan waktunya mesti sama, waktu webserver mesti sama dengan waktu database server kita… knpa?? Karena jika beda output yang kita inginkan akan miss atau meleset.. knp??karena output waktu antara database server dan web server akan beda sehingga nda konsisten. Nah loh diulang lagi!!!heheh……..
Oke kita anggap aja kondisinya sudah ideal,webserver dan databaseserver memiliki zona waktu yang anda inginkan dan keduanya memiliki waktu yang sama.
Kita lanjut ke bagian pemasukkan data. Hal yang paling penting di database yaitu pemilihan tipe data karena kita mau masukkin data dengan waktu yang lengkap yaitu dari tanggal sampai ke detiknya maka pilihan data yang tepat yaitu datetime. Yup datetime akan merekam waktu dengan lengkap dari tanggal sampai detik. Waktu yang direkam yaitu waktu di database server anda. Ok jika tipe data nya uda benar maka untuk kita harus memperhatikan format waktu yang digunakan dalam MySQL anda. Jika anda menggunakan PHPMYADMIN sebagai interface MySQL anda maka anda bisa melihat opsi • Show MySQL system variables dihalaaman utama PHPMYADMIN dan anda bisa melihat system variable dari MySQL anda mulai dari date format,datetime format,time format dll. Nah misalnya datetime format dari MySQL anda adalah %Y-%m-%d %H:%i:%s maka anda akan mendapat waktu,misalnya 2007-06-22 21:44:00. Sudah sampai disini, ada pertanyaan???hehehe…. yang sudah master jangan nanya dunx penulis masih cupu negh coding php nya….. udah sekarang kita lanjutin aja..
Setelah tipe data uda genah maka kita akan lanjut ke memasukkan data ke MySQL nya. Jika diawal kita perlu banyak proses diphp mulai dari penggunaan fungsi date() dan formatnya dilanjutkan querynya lagi maka jika kita manfaatin fungsi built in di MySQL maka kita hanya butuh query. Yup query…. Kenapa query??karena didalam query kita bisa memasukkan fungsi MySQL. Misalnya kita akan memasukkan data waktu sekarang mulai dari tanggal sampai detik maka kita hanya perlu query INSERT INTO table(kolom1,kolom2,….) VALUES(now(),…….) yup hanya dengan query ini maka kita udah memasukkan data waktu mulai dari tahun sampai detik sesuai dengan format datetime MySQL anda. So easy and simple, yang anda butuhkan hanya query, anda tidak perlu fungsi tambahan di php seperti date() dan yang lainnya. Sekarang jika kita mau menampilkan data dari table, misalnya mau menampilkan tanggalnya, maka caranya juga gampang seperti tadi. Yah cuma butuh query, kita tidak perlu repot repot mengambil data dari table kemudian menampungnya di variable dan mengambil substring dari variable,,,kebanyakan tau!!! Yang kita butuhkan hanya query!!! Yup Cuma query!!! Nda percaya??? Penulis buktikan yach!!! Data yang uda kita masukin tadi, misalnya di nama tabelnya tabel1 dan nama kolomnya kolom1 maka kita hanya butuh query SELECT dayofmonth(kolom1) FROM tabel1. dan boom… data yang diberikan oleh MySQL sudah berupa tanggal dalam 1 bulan jika datanya 2007-06-22 21:44:00 maka MySQL akan memberikan data 22. mudah kan??? Kita nda perlu repot repot mengambil data dari table kemudian menampungnya di variable dan mengambil substring dari variable…. Dgn cara begini aplikasi kita akan semakin powerful…percaya kan??
Ok beberapa fungsi date/time MySQL yang dapat anda gunakan seperti :
1. dayofweek() fungsi ini akan mengembalikan nilai int yang merupakan hari dalam satu minggu.
2. dayofmonth() fungsi ini akan mengembalikan nilai int yang merupakan hari dalam satu bulan.
3. dayofyear() fungsi ini akan mengembalikan nilai int yang merupakan hari dalam satu tahu dengan range 1-366.
Sekarang bagaimana jika kita mau nampilkan nama hari dari data 2007-06-22 21:44:00??? Kalau kita ngandalin php saja maka kita akan repot banget karena penelusuran saya di manual php di generate pada tanggal 03 00:56:38 2007 saya tidak mendapatkan fungsi built in nya dan jika kita ngandalain php saja maka kita akan direpotkan dengan algoritma yang harus kita buat untuk mendapatkannya. Yup, algoritma kita buat dan kita sudah meghabiskan waktu yang lumayan banyak, belum lagi pekerjaan lain yang menunggu kita. Pekerjaan lain seperti makan, minum, mandi, tidur, ngerjain tugas kuliah dan lain lain,heheh…. Nda kok canda!!!
Uda ah candanya balik lagi ke masalah menampilkan nama hari… Melihat kerepotan yang akan ditimbulkan oleh masalah ini maka penulis menyarankan menggunakan fungsi yang sudah MySQL buat yaitu fungsi dayname() . Yup dayname(), dengan fungsi ini kita nda perlu repot repot buat algoritma yang panjang, kita hanya butuh query dengan fungsi dayname()… penulis contohin nih , misalnya di nama tabelnya tabel1 dan nama kolomnya kolom1 maka kita hanya butuh query SELECT dayname(kolom1) FROM tabel1 dan boommmm lagi…. Kita dapatin nama harinya… yup nama harinya dalam bahasa inggris(tau bhs inggris kan???heheh!!!) maka kita cukup direpotkan saja dengan konversi dari nama hari dalam bahasa inggris ke bahasa yang akan kita tampilkan(mau bhs jawa,bhs melayu,dan bhs lain).. yah tentunya code untuk konversinya ditulis dalam php dung….. mudah bukan??
Oh iya satu tips lagi dari penulis… sewaktu semester 3 penulis dan teamnya mengerkjakan tugas suatu mt kuliah yang asyik bgt yaitu Rekayasa Perangkat Lunak(RPL) yang dosennya asyik bgt juga!!! Heheh…. Maaf nih pak ada dimasukin!!! Di sini kami buat modul untuk SI Hotel yaitu cek in dan cek out nya.. masalahnya kami kebingungan untuk menghitung banyak hari tamu menginap… setelah mencari (sampai tugas tu dikumpulin team kami belum berhasil juga nemukan caranya,hehehe….) dan akhirnya mendapatkannya penulis mendapatkan algoritma didalam ebook PHP 5 in Practice By Elliot White III, Jonathan Eisenhamer yang diterbitkan oleh Sams disini ditulis caranya yang panjang, mau lihat codenya?? Dibawah ni :
Listing 3.1.1. Number of Days Between Two Dates
// Set the default timezone to US/Eastern
date_default_timezone_set('US/Eastern');
// Will return the number of days between the two dates passed in
function count_days($a, $b) {
// First we need to break these dates into their constituent parts:
$a_parts = getdate($a);
$b_parts = getdate($b);
// Now recreate these timestamps, based upon noon on each day
// The specific time doesn't matter but it must be the same each day
$a_new = mktime(12, 0, 0, $a_dt['mon'], $a_dt['mday'], $a_dt['year']);
$b_new = mktime(12, 0, 0, $b_dt['mon'], $b_dt['mday'], $b_dt['year']);
// Subtract these two numbers and divide by the number of seconds in a
// day. Round the result since crossing over a daylight savings time
// barrier will cause this time to be off by an hour or two.
return round(abs($a_new - $b_new) / 86400);
}
// Prepare a few dates
$date1 = strtotime('12/3/1973 8:13am');
$date2 = strtotime('1/15/1974 10:15pm');
$date3 = strtotime('2/14/2005 1:32pm');
// Calculate the differences, they should be 43 & 11353
echo "
There are ", count_days($date1, $date2), " days.
";echo "
There are ", count_days($date2, $date3), " days.
";?>
Banyakkan??? Nah setelah coba coba mengoprek MySQL penulis mendapatkan cara yang mudah yang memanfaatkan fungsi di MySQL. Fungsi yang digunakan yaitu dayofyear(). Kenapa fungsi ini??karena tanggal untuk 1 tahun akan terus bertambah dan tidak akan berulang dengan range 1-366 dan hal ini berarti kita cukup mengambil dayofyear() dari kolom cek in dan dayofyear() dari kolom cek out dan kalkulasikan tanggalnya dengan cara menguranginya….. mudah bukan??? Emang sich cara ini punya kelemahan. Kelemahannya jika tamu menginap di akhir tahun maka tanggal dalam tahun akan berulang kembali… tapi cara ini cukup mempermudah jika asumsi penginapan tidak berbeda dalam 1 tahun(kalau bhs kerennya cross year!!betul nda ya??pasti semua mikir penulis sok tahu!!!heheheh… maklum masih muda).
Yup masih banyak fungsi date/time function di MySQL yang dapat digunakan… untuk lebih jelasnya lihat manual dari MySQL…
Sekian dari penulis jika ada kekurangan dimaafin, jika ada saran, kritik atau sanggahan silahkan hubungi penulis di email vry_27@yahoo.co.id
Very
Wassalam….
Sumber : MySQL/PHP Database Applications, Jay Greenspan and Brad Bulger Published by M&T Books
Always expand your skill and beware of euphoria because it will kill you guys!!!
Selasa, 15 April 2008
huah..... ngantuk!!!
today is hari selasa..
bahasanya campur negh... hari ini aku ngerjain web pesanan izenca sebuah perusahaan produk kesehatan. Udah seminggu aku ngerjainnya,kerja tim. Ternyata kerja tim lebih enak daripada kerja sendirian. Kerjanya lebih cepat,akhirnya aku dapat keguanaan antara memisahkan konten dengan layer presentation,udah lama make tapi nda terasa benar kegunaannya. Sekarang aku merasa gunanya coz kerja tim,jadi dalam tim akan lebih cepat jika masing2 ngerjain tugasnya. Nah dengan teknik memisahkan antara konten dengan isinya maka masing2 anggota tim bisa fokus ke pengerjaan kontennya masing2...
ni struktur direktorinya

yah ternyata menggunakan direktori yang banyak dengan template lebih enak ketimbang coding satu halaman penuh
bahasanya campur negh... hari ini aku ngerjain web pesanan izenca sebuah perusahaan produk kesehatan. Udah seminggu aku ngerjainnya,kerja tim. Ternyata kerja tim lebih enak daripada kerja sendirian. Kerjanya lebih cepat,akhirnya aku dapat keguanaan antara memisahkan konten dengan layer presentation,udah lama make tapi nda terasa benar kegunaannya. Sekarang aku merasa gunanya coz kerja tim,jadi dalam tim akan lebih cepat jika masing2 ngerjain tugasnya. Nah dengan teknik memisahkan antara konten dengan isinya maka masing2 anggota tim bisa fokus ke pengerjaan kontennya masing2...
ni struktur direktorinya

yah ternyata menggunakan direktori yang banyak dengan template lebih enak ketimbang coding satu halaman penuh
Langganan:
Postingan (Atom)