jump to navigation

Kombinasi PHP dan MySQL 25 November 2009

Posted by agunghardiansyah in Arsitektur, Dynamic Dou, Info SQL, lebih baik Mana PHP My SQL, MYSQL, MYSQL API, PHP, Programing Web, Tips Trik Web, Validasi.
add a comment

Kombinasi PHP dan MySQL

Info SQL, Arsitektur, Programing Web, Tips Trik Web, PHP, MYSQL, Dynamic Dou, MYSQL API, Validasi, lebih baik Mana PHP My SQL

Si Bona yang baru belajar Internet sedang gemar gemarnya berselancar di dunia maya, setiap malam hingga pagi hari dihabiskan Bona di sebuah warnet yang memberikan diskon khusus bagi pengunjung yang datang pada jam 12 malam ke atas. Alangkah kagetnya Bona pagi ini saat menemukan sebuah website berisi company profi le tetangga di kampungnya, Si Rongrong yang membuka toko kelontong.

Keheranan Si Bona semakin bertambah ketika menemukan website milik Mak Jerot, tetangga ahli urut yang terkenal di kampungnya. Sementara orang tua Bona yang membuka jasa IT Consultant belum memiliki website apapun. Dengan motivasi berbakti pada orangtua, Bona bertekad membuat sebuah situs yang inovatif untuk orang tuanya. Memang tidak dapat dipungkiri lagi, Internet telah menjadi sumber informasi yang luar biasa lengkap dan mudah didapat. Tidak hanya sekadar latah mejeng , aplikasi web berlomba lomba memberikan fasilitas pada pengguna dengan menggunakan berbagai fi tur dan inovasi tanpa batas. Tentu tidak sedikit pemuda pemudi harapan bangsa seperti Si Bona yang memiliki motivasi besar membuat situs yang inovatif, tetapi tidak sedikit juga yang mengalami kebingungan untuk memulainya dikarenakan banyaknya pilihan teknologi yang tersedia. Jika pada artikel sebelumnya Anda telah mengenal pembuatan aplikasi n tier dengan ASP Active Server Pages , maka pada model pengembangan software open source, nama PHP dan MySQL merupakan sebuah kombinasi layaknya pasangan Romeo dan Juliet.

Arsitektur

Sebagaimana konsep yang telah kita kenal, halaman web yang Anda ciptakan dengan PHP dan MySQL juga memiliki arsitektur yang terdiri dari client dan server. Client pada halaman web berupa web browser. Web browser memberikan informasi kepada pengguna dalam bentuk HTML Hypertext Markup Language . Sementara aplikasi web itu sendiri terletak pada web server. Sebuah relational database server menyimpan informasi yang diperlukan oleh aplikasi, terdapat banyak pilihan RDBMS Relational Database Management System yang pada umumnya menggunakan Structured Query Language SQL .

MySQL merupakan salah satu RDBMS yang open source. Jika Anda telah mengenal ASP, maka PHP memiliki fungsi yang sama, yaitu sebagai bahasa pemrograman yang dikenal juga dengan middleware. PHP melakukan proses terhadap permintaan request dari client, serta berinteraksi dengan program lainnya pada server untuk memenuhi permintaan dari client. Kombinasi PHP dan MySQL harus didukung pula oleh web server. Dua pilihan web server yang populer adalah Apache yang tersedia secara open source dan Microsoft Internet Information Server IIS . Pilihan web server cenderung mengikuti operating system yang digunakan. Apache dikenal berjalan stabil pada operating system Unix Linux, tetapi jika Anda menggunakan platform Windows, penggunaan IIS lebih disarankan.

Sekilas tentang PHP

PHP merupakan singkatan dari Hypertext Preprocessor yang didesain untuk menghasilkan halaman web dinamis. Berbicara me ngenai PHP, wajib mencantumkan kecepatan sebagai salah satu keunggulannya. Dari sisi programming, PHP memiliki kemiripan dengan bahasa C. Dukungan cross platform memungkinkan PHP berjalan pada operating system Windows ataupun Unix, pada IIS maupun Apache. Kumpulan fungsi built in pada PHP juga mempermudah Anda untuk membangun aplikasi web yang lengkap. Sebagai software open source, terdapat ribuan programer yang ikut serta mengembangkan PHP, yang hingga saat ini telah mencapai versi 5. Fitur fi tur yang didukung, antara lain:

1. Dukungan Object Oriented Programming OOP melalui PHP Data Objects.

2. Dukungan yang lebih baik pada MySQL, dikenal dengan extension.

3. Dukungan yang lebih baik pada XML, dan lain sebagainya.

Sekilas tentang MySQL

Pengembangan MySQL yang diucapkan dengan My Ess Queue Ell dan dikenal dengan logo ikan lumba lumba, tidaklah mulus pada awalnya. Berbagai kritik telah didapat sejak versi awal, tetapi waktu juga yang membuktikan bahwa MySQL dapat terus bertahan pada jajaran RDBMS berbasis open source. PHP telah mempersiapkan dukungan terhadap MySQL secara khusus, menjadikan kombinasi PHP dan MySQL merupakan tools yang saling mendukung untuk digunakan oleh programer web.

Untuk database kecil hingga menengah, MySQL memiliki kecepatan yang dapat diandalkan. Seperti juga PHP, MySQL terus dikembangkan dari waktu ke waktu oleh komunitas publik open source di mana hak cipta dimiliki oleh masing masing individu pembuat. Hingga rilis terakhir MySQL yang telah mencapai versi 5, MySQL telah memiliki fi tur cross platform, Stored Procedures, Triggers, Cursors, Views, dan lain sebagainya. Roadmap selanjutnya dari MySQL adalah dukungan terhadap Partitioning, Online Backup, Event Scheduling, dan lain lain. Kombinasi PHP dan MySQL memiliki sebuah nickname yang dikenal dengan Dynamic Duo .

Dynamic Duo

Pada bagian ini, kita akan membahas duet PHP dan MySQL secara lebih praktikal. Desain database merupakan hal awal yang harus dipersiapkan dalam membuat aplikasi web. Pada MySQL, Anda dapat melakukan administrasi database dengan menggunakan command line ataupun tools berbasis GUI seperti MySQL Administrator dan MySQL Query Browser. Pilihan lain yang popular adalah menggunakan aplikasi web bernama phpMyAdmin, yang ditulis dengan menggunakan PHP. Kegiatan menciptakan database, table, fi eld, mengeksekusi perintah SQL, hingga melakukan export database dapat Anda lakukan pada melalui phpMyAdmin yang memiliki tampilan web yang user friendly. Seperti pada software RDBMS lainnya, pada MySQL Anda dapat menggunakan perintah SQL untuk menciptakan table dan fi eld. Untuk tipe data text atau string pada fi eld, MySQL menyediakan tipe data sebagai berikut:

1. Char. Maksimum panjang karakter yang dapat ditampung tipe data char adalah sebesar 255 karakter. Tipe data ini merupakan tipe fi xed length, artinya jika nilai yang Anda masukkan kurang dari karakter maksimum, maka sisa karakter akan diisi dengan spasi. Walaupun demikian, sisa spasi tersebut akan dihilangkan pada saat pengambilan nilai fi eld dari table.

2. Varchar. Seperti pada char, tipe data varchar juga memiliki maksimum penampungan sebanyak 255 karakter. Perbedaannya adalah varchar merupakan tipe variablelength. Artinya panjang karakter akan disesuaikan dengan nilainya dan tidak dilakukan penambahan spasi seperti pada tipe fi xed length. Walaupun tidak menambahkan spasi, tipe data varchar menambahkan satu karakter yang menyimpan banyaknya nilai karakter yang tersimpan pada fi eld tersebut. Kapan Anda menggunakan char atau varchar? Hal ini tergantung pada kebutuhan Anda, jika Anda menyimpan fi eld berisi nama, mungkin perlu menyediakan fi eld sebanyak 30 karakter, tetapi tidak perlu menyimpan sisa spasi untuk nama yang kurang dari 30 karakter. Untuk kebutuhan ini, Anda dapat mendefi nisikan fi eld tersebut dengan varchar 30 . Berbeda jika ingin menyimpan sebuah fi eld berisi password, Anda dapat mendefinisikannya dengan char 10 untuk memberi maksimal 10 karakter sebagai password. Mengapa tidak menggunakan varchar 10 ? Pertimbangannya, MySQL akan melakukan pengecekan panjang fi eld setiap kali fi eld dengan tipe varchar di update. Dengan menggunakan char 10 , MySQL tidak perlu melakukan pengecekan jumlah karakter pada fi eld yang bersangkutan karena panjang karakter merupakan fi xed length.

3. Tinytext. Merupakan tipe data yang dikenal dengan BLOB. Tinytext memiliki maksimum sebanyak 255 karakter, Anda dapat menciptakan index pada seluruh fi eld tinytext.

4. Text. Dapat menampung maksimum 65,535 karakter. Index dapat diciptakan pada 255 karakter pertama.

5. Mediumtext. Dapat menampung maksimum 16,777,215 karakter. Index dapat diciptakan pada 255 karakter pertama.

6. Longtext. Dapat menampung maksimum 4,294,967,295 karakter. Index dapat diciptakan pada 255 karakter pertama.

7. Enum. Dengan tipe data enum, Anda dapat mendefi nisikan nilai fi eld terlebih dahulu. Misalnya untuk pilihan Ya dan Tidak . Tipe data enum dapat menampung hingga 65,535 nilai.

Untuk tipe data numerik, MySQL menyediakan tipe data int integer, tinyint, mediumint, bigint, float, double double precision real, dan decimal numeric. Sedikit berbeda antara MySQL dengan RDBMS lain adalah untuk penanganan tipe data date time. Tipe data yang dapat Anda gunakan adalah date, datetime, timestamp, phpMyAdmin sebagai pendukung administrasi database MySQL. time, dan year. Format yang digunakan oleh MySQL adalah YYYY MM DD, sehingga jika Anda ingin memberikan tanggal 30 November 2006, maka penulisannya adalah 2006 11 30. Dengan fleksibilitas yang tinggi, MySQL dapat menerima penulisan 06 11 30, 20061130, dan 061130 yang semuanya menunjukkan 30 November 2006. Baik MySQL maupun PHP memiliki banyak function untuk mengakomodasi penggunaan tipe data date time ini. Secara umum, penggunaan perintah SQL pada MySQL tidak jauh berbeda dengan perintah SQL pada umumnya, tetapi MySQL menyediakan beberapa perintah SQL tambahan. Salah satunya adalah perintah LIMIT, di mana Anda dapat membatasi jumlah baris yang diambil. Sebagai contoh, perintah SQL SELECT FROM Products LIMIT 0,5 memiliki arti bahwa Anda ingin mengambil 5 baris pertama dari table Products. Untuk mengambil 5 baris berikutnya, Anda dapat menggunakan perintah SELECT FROM Products LIMIT 5,5 .

Perintah LIMIT umum digunakan untuk menampilkan detail sebuah table pada halaman web secara paging atau memiliki navigasi nomor halaman untuk memudahkan pengguna dan tidak membebani jaringan, tentunya sangat merepotkan jika Anda memiliki ratusan ribu detail produk yang ditampilkan hanya pada satu halaman, bukan? Bisa jadi Anda hanya akan mendapatkan pesan request time out karena pengambilan data yang besar akan membebani jaringan Anda. Setelah sejenak membahas MySQL dari sisi back end, kini waktunya untuk membahas PHP untuk dapat membuat aplikasi web secara sempurna. Untuk mulai menuliskan kode PHP, Anda memerlukan sebuah text editor. Anda dapat menggunakan text editor seperti Notepad, tetapi untuk tampilan dan fi tur text editor yang lebih baik ataupun jika Anda terlalu malu untuk menggunakan Notepad , Anda dapat menggunakan software text editor seperti EditPlus, UltraEdit, dan lain sebagainya pada operating system Windows.

Jika Anda menggunakan operating system Unix Linux, beberapa pilihan yang populer adalah Pico, Emacs, vi, ataupun Kedit. Tentu saja sangat disarankan Anda memilih aplikasi text editor yang nyaman dilihat, sebagai tindakan berjaga jaga jika Anda harus melihat baca:menuliskan kode program PHP pada layar monitor selama berjam jam non stop. Sebelum Anda menuliskan Hello World pada halaman web dan memamerkannya sebagai halaman web PHP Anda yang pertama, Anda perlu mengetahui bahwa pada fi le PHP yang diketik pada text editor, dapat terdiri dari kombinasi tag HTML, Javascript, ataupun PHP. Agar engine PHP dapat membedakan baris kode mana yang merupakan perintah PHP, Anda perlu menuliskan kode PHP Anda di antara tag pembuka ?php dan tag penutup ? . Tag pembuka ? juga dapat digunakan selain menggunakan tag ?php. Karena pembahasan mengenai PHP pada artikel kali ini terbatas untuk diarahkan pada kombinasi penggunaan PHP dan MySQL yang mana mengarah pada pembuatan halaman web dinamis yang menggunakan database, maka hanya akan diberikan sekelumit pengantar mengenai dasar pemrograman PHP. PHP memiliki perintah perintah standar bahasa pemrograman seperti deklarasi variabel, pengolahan array, perulangan looping , operator logika, ataupun pembuatan function. Bagi Anda yang pernah mempelajari bahasa C atau PERL, akan menemui banyak kemiripan sintaks dan perintah. Pada sebuah halaman web, informasi dari client sering kali berasal dari form HTML. Contohnya pada sebuah halaman registrasi, buku tamu, ataupun forum. Informasi tersebut akan disubmit oleh pengguna dengan metode GET ataupun POST, untuk kemudian diproses oleh PHP. Informasi yang dimasukkan pengguna di dalam form dapat berupa textbox, radio button, combo box, text area, dan lain lain. Form tersebut merupakan terdiri dari tagtag HTML yang dapat Anda ketik pada text editor ataupun tools seperti Dreamweaver atau FrontPage.

Penggunaan array bisa jadi akan cukup sering Anda temui pada pemrograman PHP. Contoh penggunaan array adalah pada multiple combo box, yaitu pilihan yang dapat Anda pilih lebih dari satu item. Misalnya warna kesukaan, hobi, dan lain lain. Agar PHP mengetahui bahwa Anda ingin mengirimkan variabel array, Anda harus memberikan tanda kurung pada nama variabel tersebut. Contohnya pada tag HTML sebagai berikut: select name hobi size 5 multiple Tag HTML di atas mendefi nisikan sebuah multiple combo box dengan nama hobi, perhatikan bahwa pemberian nama hobi diikuti dengan buka dan tutup kurung siku yang menunjukkan array. PHP sendiri memiliki variabel built in, yaitu variabel yang diatur oleh web server dan environment PHP. Untuk melihat daftar variabel tersebut, Anda cukup memberikan sebuah perintah ajaib, yaitu phpinfo .

Function MySQL API

Bagaimana tepatnya sang Dynamic Duo PHP dan MySQL saling bekerja sama membentuk halaman web yang berfungsi baik? Tidak lain dan tidak bukan adalah melalui function function MySQL yang tersedia pada PHP. Function ini disebut dengan MySQL API. Function function yang sering digunakan adalah: 1. MYSQL CONNECT . Tanpa melakukan koneksi pada database MySQL, maka tidak ada yang dapat Anda lakukan untuk memproses data MySQL. Function mysql connect melakukan koneksi pada database dengan menggunakan username dan password yang telah Anda tentukan pada saat melakukan administrasi dan pembuatan database MySQL. 2. MYSQL PCONNECT .

Kegunaan function ini sama seperti function mysql connect, tetapi terdapat perbedaan penting, yaitu function ini membiarkan koneksi tetap dalam status open walaupun script PHP telah selesai dijalankan. Jika mengutamakan kecepatan web, Anda dapat menggunakan function ini sehingga PHP tidak perlu membuka koneksi baru setiap kali sebuah script PHP yang mengakses MySQL dieksekusi. Untuk dapat menggunakan function mysql pconnect, Anda perlu melakukan konfi gurasi terhadap fi le php.ini pada bagian mysql.allow persistent On mysql.max persistent 1 Baris mysql.max persistent menunjukkan jumlah maksimum koneksi yang diizinkan, angka 1 berarti tanpa limit. Anda dapat menggantinya dengan angka lain jika ingin membatasi jumlah maksimum koneksi. 3. MYSQL SELECT DB . Function untuk mendefi nisikan database yang ingin di query. 4. MYSQL QUERY . Function di mana Anda dapat mengirimkan query SQL pada table yang Anda inginkan. Perhatikan bahwa function ini tidak mengembalikan hasil query misalnya berupa recordset , tetapi hanya membuka kursor yang mengarah pada hasil query tersebut. Anda kemudian dapat mengambil record hasil query tersebut dengan menggunakan salah satu dari function mysql fetch row , mysql fetch array , ataupun mysql result . 5. MYSQL AFFECTED ROWS . Function mysql affected rows mengembalikan jumlah record hasil proses UPDATE, INSERT, ataupun DELETE. Function ini berguna untuk memeriksa apakah query Anda telah berjalan dengan sempurna. Masih terdapat beberapa function yang umum digunakan seperti mysql num rows , mysql insert id , mysql error , mysql result , dan lain lain yang dapat digunakan pada halaman web Anda.

Validasi

Tentu Anda mengharapkan pengunjung situs Anda datang berbondong bondong sebagai salah satu tanda suksesnya pekerjaan Anda. Tetapi, Anda juga tidak akan mengharapkan terjadi kesalahan input dari pengguna. Pengguna bukanlah orang yang harus disalahkan jika terjadi error pada sebuah aplikasi web, karena di sini benar benar berlaku pengunjung adalah raja, bahkan sering kali pengguna yang menemukan kesalahan secara sengaja maupun tidak sengaja pada suatu situs, dapat membanggakan diri PHP telah mempersiapkan seperangkat function untuk melakukan validasi.

Salah satu validasi yang wajib dilakukan adalah menghindari input karakter kutip satu single quote , kutip dua double quote , ataupun NULL karena akan membingungkan MySQL dimana karakter karakter tersebut memiliki arti khusus dalam perintah SQL. Function addslashes dapat digunakan untuk menanggulangi permasalahan ini. Kini mungkin Anda berpikir, berarti setiap informasi yang dikirimkan harus melalui function addslashes , bisa jadi seperti demikian, jika Anda tidak memiliki wewenang untuk mengubah konfi gurasi fi le php.ini yang mungkin telah ditentukan oleh provider hosting yang Anda gunakan.

Tetapi jika memiliki hak untuk mengubah php.ini, Anda dapat mengatur baris magic quotes gpc menjadi On, maka function addslashes tidak diperlukan lagi karena akan dilakukan secara otomatis dari server. Bagaimanapun, konfigurasi ini seharusnya bernilai On secara default, sebaiknya Anda memastikannya sebelum memutuskan untuk tidak menggunakan function addslashes . Beberapa kesalahan lain yang dapat timbul adalah jika pengguna memasukkan nilai string untuk fi eld yang seharusnya numerik, karakter yang diinput melewati batas panjang fi eld, dan lain sebagainya.

Walaupun Anda dapat menggunakan Javascript untuk validasi form, tetapi karena Javascript berjalan pada sisi client, maka Anda tidak dapat mencegah jika Javascript tidak berjalan pada browser yang digunakan ataupun script Anda dimanipulasi ingat bahwa kesalahan dapat dilakukan dengan sengaja dengan berbagai tujuan . Karena itu validasi ulang input form pada PHP dianjurkan jika Anda benar benar ingin menjaga halaman web Anda dari kesalahan input yang dapat mengakibatkan munculnya lubang keamanan yang dapat ditembus.

PHP untuk Programer

ASP Selain PHP, ASP merupakan salah satu bahasa pemrograman web yang populer dan banyak digunakan. Jika Anda telah cukup familiar dengan bahasa pemrograman ASP dan ingin mempelajari PHP ataupun sebaliknya, mungkin Anda hanya mengalami kesulitan untuk menemukan padanan perintah versi ASP PHP. Untuk itu mungkin panduan fungsi di bawah ini dapat berguna:

1. Include. Pada ASP, Anda dapat menyisipkan fi le ASP dengan perintah include fi le contoh.asp , sementara pada PHP Anda dapat menggunakan ? include contoh.php ; ? atau ? require contoh. php ; ? .

2. Page Time Out. Digunakan untuk mengatur jangka waktu response halaman web. Pada ASP Anda dapat menggunakan perintah Server.ScriptTimeOut 1000 , untuk PHP digunakan perintah set time limit 1000 .

3. Menghentikan proses. Ada kalanya Anda ingin menyisipkan perintah untuk menghentikan proses script untuk keperluan seperti melakukan debug program ataupun kondisi lain. Pada ASP Anda menggunakan perintah Response.end, sementara pada PHP Anda dapat menggunakan exit , die , ataupun die keterangan

4. Pindah Halaman. Salah satu perintah yang cukup sering digunakan programer adalah pindah antarhalaman web. Pada ASP, Anda menggunakan perintah Response. Redirect nextpage.asp , sementara pada PHP dapat digunakan perintah header location:nextpage.php .

Mana yang Lebih Baik?

Mungkin Anda sering terdengar debat ataupun perbandingan mengenai bahasa pemrograman dari masing masing pengguna setia yang saling menjatuhkan dan tidak konstruktif? Anda dapat menganalogikan situasi tersebut seperti dua orang yang berbicara, di mana satu orang berbicara dengan bahasa Mesir kuno dan lainnya berbicara dengan bahasa Singlish Singapore English , tentu tidak akan nyambung, bukan? Kegunaan suatu bahasa pemrograman baru bermanfaat jika kita sebagai programer mampu menggunakannya dengan tepat dan optimal. Bahasa pemrograman merupakan tools yang digunakan untuk mencapai tujuan. Penggunaannya sangat tergantung pada yang menggunakannya dan diwujudkan dalam bentuk karya nyata.


Technorati : , , , , , , , , ,

Del.icio.us : , , , , , , , , ,

Zooomr : , , , , , , , , ,

Flickr : , , , , , , , , ,