Mengenal fungsi php untuk pengambilan data my sql: mysql fetch
Upcoming SlideShare
Loading in...5
×
 

Mengenal fungsi php untuk pengambilan data my sql: mysql fetch

on

  • 8,360 views

http://achmatim.net/2012/12/16/mengenal-fungsi-php-untuk-pengambilan-data-mysql-mysql_fetch_/

http://achmatim.net/2012/12/16/mengenal-fungsi-php-untuk-pengambilan-data-mysql-mysql_fetch_/

Statistics

Views

Total Views
8,360
Views on SlideShare
8,360
Embed Views
0

Actions

Likes
3
Downloads
283
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Mengenal fungsi php untuk pengambilan data my sql: mysql fetch Mengenal fungsi php untuk pengambilan data my sql: mysql fetch Document Transcript

  • Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Net Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* Tutorial ini ditulis oleh Achmad Solichin dan sudah dipublikasikan di http://achmatim.net pada tanggal 16 Desember 2012PHP dan MySQL, seolah pasangan sejati yang tak terpisahkan. Keduanya paling seringdisandingkan dalam pembuatan aplikasi berbasis web ( web application development). Takheran jika begitu banyak fungsi terkait dengan MySQL yang disediakan oleh PHP. Setidaknyaterdapat 45 fungsi PHP terkait dengan MySQL mulai dari koneksi, pengambilan data, querydata hingga informasi server MySQL1.Dalam tutorial ini akan dikenalkan berbagai fungsi PHP terkait dengan pengambilan dataMySQL. Pengambilan data yang dimaksud disini tepatnya adalah pengolahan hasil perintahquery SELECT yang dihasilkan dari fungsi mysql_query(). Hasil perintah query dapat diolahuntuk ditampilkan atau diproses oleh PHP melalui berbagai fungsi yang diawali denganmysql_fetch_*. Terkait hal tersebut, PHP memiliki 6 (enam) fungsi yaitu: mysql_fetch_array(),mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object() danmysql_fetch_row().Dalam tutorial ini akan dijelaskan kegunaan dari 4 (empat) fungsi yaitumysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_object() dan mysql_fetch_row().Sementara dua fungsi lainnya yaitu mysql_fetch_field() dan mysql_fetch_lengths() tidakdijelaskan di tutorial ini karena keduanya tidak terlalu berkaitan dengan pengambilan dataMySQL, selain itu keduanya akan dihilangkan setelah PHP versi 5.5.0.Untuk keperluan contoh program dalam tutorial ini, kita akan menggunakan struktur tabel“mahasiswa” sebagai berikut: FIELD TYPE LENGTH DESCRIPTIONnim VARCHAR 10 NIM Mahasiswanama VARCHAR 30 NAMA Mahasiswaalamat TEXT - Alamat Mahasiswa1 http://id1.php.net/manual/en/ref.mysql.php Halaman 1 dari 7
  • Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.NetDan berikut ini isi dari tabel mahasiswa tersebut:mysql> select * from mahasiswa;+------------+-----------------------+---------------------------------------------------------+| nim | nama | alamat |+------------+-----------------------+---------------------------------------------------------+| 0111500382 | Achmad Solichinn | Jl. Raya Ciledug, Jakarta Selatan || 0411500300 | Chotimatul Musyarofah | Peninggilan, Kec. Ciledug, Tangerang, Banten, Indonesia || 0911500292 | Muhammad Lintang | Jakarta Selatan, DKI Jakarta || 1011500101 | Budi Susanto | Jl. Ciledug Raya, Petukangan Utara |+------------+-----------------------+---------------------------------------------------------+mysql_fetch_array() : Array asosiatif vs Array numerikFungsi mysql_fetch_array() merupakan salah satu fungsi yang banyak digunakan dalamproses pengambilan data MySQL. Fungsi ini akan menangkap data dari hasil perintah querydan membentuknya ke dalam array asosiatif dan array numerik. Jadi, fungsimysql_fetch_array() menawarkan kemudahan dan fleksibilitas dalam mengakses data.Namun demikian, penggunaan fungsi ini dianggap kurang efektif dari sisi performa karenaterlalu “boros” penyimpanan.Untuk memberikan gambaran bagaimana penggunaan fungsi mysql_fetch_array(),perhatikan contoh berikut ini:Contoh Program 1 1 <?php 2 mysql_connect("localhost", "root", "qwerty"); 3 mysql_select_db("demo"); 4 5 $sql = mysql_query ("SELECT nim, nama FROM mahasiswa"); 6 echo "<h3>mysql_fetch_array cara array asosiatif</h3>"; 7 while ($baris = mysql_fetch_array($sql)) { 8 echo $baris[nim]. " ". $baris[nama]. "<br/>"; 9 } 10 11 $sql = mysql_query ("SELECT nim, nama FROM mahasiswa"); 12 echo "<h3>mysql_fetch_array cara array numerik</h3>"; 13 while ($baris = mysql_fetch_array($sql)) { 14 echo $baris[0]. " ". $baris[1]. "<br/>"; 15 } 16 17 $sql = mysql_query ("SELECT nim, nama FROM mahasiswa"); 18 echo "<h3>Struktur array (mysql_fetch_array)</h3>"; 19 while ($baris = mysql_fetch_array($sql)) { 20 echo "<pre>"; 21 print_r($baris); 22 echo "</pre>"; 23 } 24 ?> Halaman 2 dari 7
  • Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.NetSeperti sudah dinyatakan sebelumnya bahwa fungsi mysql_fetch_array() akan menghasilkanstruktur data dalam bentuk array asosiatif maupun array numerik. Pada contoh diatas,dengan menggunakan fungsi mysql_fetch_array(), dapat ditampilkan nilai dari masing-masing baris hasil perintah query SELECT. Cara menampilkan data dapat menggunakan“gaya” array asosiatif seperti terlihat pada baris ke-8 dimana nama field akan menjadi indexarray, dan juga dapat menggunakan “gaya” array numerik seperti terlihat pada baris ke-14dimana indexnya berupa nilai numerik sesuai urutan field hasil perintah query SELECT.Urutan numerik tersebut diawali dari 0.Struktur array yang dihasilkan oleh fungsi mysql_fetch_array() dapat diketahui denganmenggunakan fungsi print_r() seperti perintah pada baris ke-21. Hasilnya akan terlihatseperti pada gambar berikut ini: Gambar 1: Struktur Array yang dihasilkan oleh mysql_fetch_arraymysql_fetch_assoc() : Array asosiatif sajaDalam hal pengambilan data MySQL, saat ini saya lebih sering menggunakan fungsimysql_fetch_assoc() dibanding fungsi lainnya. Fungsi ini menghasilkan array asosiatif yangmana index-nya sesuai dengan nama kolom yang diseleksi. Mudahnya, tidak tergantungpada urutan kolom, yang penting index-nya sesuai. Dari sisi programmer juga menjadi lebihinformatif. Untuk memberikan gambaran bagaimana penggunaan fungsimysql_fetch_assoc(), perhatikan contoh berikut ini:Contoh Program 2 1 <?php 2 mysql_connect("localhost", "root", "qwerty"); 3 mysql_select_db("demo"); 4 5 $sql = mysql_query ("SELECT nim, nama FROM mahasiswa"); 6 echo "<h3>mysql_fetch_assoc cara array asosiatif</h3>"; 7 while ($baris = mysql_fetch_assoc($sql)) { 8 echo $baris[nim]. " ". $baris[nama]. "<br/>"; 9 } Halaman 3 dari 7
  • Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Net 10 11 $sql = mysql_query ("SELECT nim, nama FROM mahasiswa"); 12 echo "<h3>Struktur array (mysql_fetch_assoc)</h3>"; 13 while ($baris = mysql_fetch_assoc($sql)) { 14 echo "<pre>"; 15 print_r($baris); 16 echo "</pre>"; 17 } 18 ?>Tidak seperti mysql_fetch_array(), fungsi mysql_fetch_assoc() hanya menghasilkan arrayasosiatif dimana index-nya merepresentasikan nama kolom yang diseleksi. Pada program diatas terlihat bahwa pada baris ke-8, untuk setiap baris hasil perintah query akanditampilkan nilainya. Sementara itu, jika dilihat dari strukturnya, mysql_fetch_assoc() hanyamenghasilkan array asosiatif seperti terlihat pada potongan tampilan program 2 di atasberikut ini. Gambar 2: Struktur Array yang dihasilkan oleh mysql_fetch_assocmysql_fetch_row() : Array numerik sajaUntuk kasus-kasus tertentu, saya terkadang lebih memilih menggunakan fungsimysql_fetch_row() dibanding yang lainnya. Contohnya pada saat saya ingin mengambiljumlah hasil perintah query dengan menggunakan fungsi COUNT() di MySQL. Programberikut ini akan menampilkan jumlah record dengan fungsi COUNT() dan diambil denganfungsi mysql_fetch_row(). Pada bagian akhir program juga ditampilkan struktur arraydengan perintah mysql_fetch_row(). Halaman 4 dari 7
  • Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.NetContoh Program 3 1 <?php 2 mysql_connect("localhost", "root", "qwerty"); 3 mysql_select_db("demo"); 4 5 $sql = mysql_query ("SELECT COUNT(*) FROM mahasiswa"); 6 $baris = mysql_fetch_row($sql); 7 echo "Jumlah data: ". $baris[0]. "<br/>"; 8 9 $sql = mysql_query ("SELECT nim, nama FROM mahasiswa"); 10 echo "<h3>Struktur array (mysql_fetch_row)</h3>"; 11 while ($baris = mysql_fetch_row($sql)) { 12 echo "<pre>"; 13 print_r($baris); 14 echo "</pre>"; 15 } 16 ?>mysql_fetch_object() : Gaya object-orientedFungsi mysql_fetch_object() akan menyajikan hasil perintah query dalam gaya penulisanobject oriented. Sama seperti mysql_fetch_assoc(), fungsi ini menjadikan nama kolom hasilperintah query menjadi property dari obyek. Contoh penggunaannya tampak pada program4 di bawah ini. Penggunaan fungsi ini sebaiknya dihindari untuk keperluan mendatangkarena fungsi ini akan deprecated pada versi PHP 5.5.0 dan akan dihilangkan pada versiselanjutnya.Contoh Program 4 1 <?php 2 mysql_connect("localhost", "root", "qwerty"); 3 mysql_select_db("demo"); 4 5 $sql = mysql_query ("SELECT nim, nama FROM mahasiswa"); 6 echo "<h3>mysql_fetch_object</h3>"; 7 while ($baris = mysql_fetch_object($sql)) { 8 echo $baris->nim. " ". $baris->nama. "<br/>"; 9 } 10 ?>Perbandingan KecepatanUntuk menguji kecepatan dari keempat fungsi di atas, saya mencoba melakukan pengujiandengan menerapkan keempat fungsi untuk mengambil data yang berjumlah 1.135.392record. Hasilnya sebagai berikut: Halaman 5 dari 7
  • Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Netmysql_fetch_array() : 18.302305936813 detikmysql_fetch_assoc() : 16.9645819664 detikmysql_fetch_row() : 16.664786100388 detikmysql_fetch_object() : 35.827367067337 detik Gambar 3: Perbandingan kecepatan fungsiJadi, mana yang sebaiknya digunakan dalam pengambilan data dari database MySQL? Daripengujian sederhana di atas, yang jelas kita sebaiknya menghindari penggunaan fungsimysql_fetch_object() karena disamping paling buruk dari sisi kecepatan, juga karena fungsitersebut akan segera dihilangkan dari fungsi bawaan PHP. Selanjutnya, untuk ketiga fungsilainnya masih layak untuk digunakan karena secara kecepatan hampir seimbang. Pilihannyatinggal menyesuaikan kebutuhan programmer.Sebagai masukan, berkaitan dengan komunikasi antara PHP dengan database MySQL, kitasebaiknya mulai beralih dari penggunaan fungsi mysql_* menjadi fungsi mysqli_* ataugunakan abstraction layer database. Sebagai informasi awal, MySQLi (mysql improved)merupakan library mysql yang telah ditingkatkan kemampuan, kecepatan dan performanya.Semoga di tutorial mendatang, kita dapat membahas mengenai library MySQLi tersebut.Semoga tutorial ini bermanfaat untuk kita semua dan berbagilah hal baik ke sebanyak-banyaknya orang maka kebahagiaan akan menghampiri Anda. Satu Karya untuk Indonesia!Referensi Terkait• Buku Gratis Pemrograman Web dengan PHP & MySQL. http://achmatim.net/buku- gratis/pemrograman-web-dengan-php-dan-mysql/• PHP MySQL Functions. http://id1.php.net/manual/en/ref.mysql.php Halaman 6 dari 7
  • Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.NetTentang Penulis Achmad Solichin. Adalah Lulusan Teknik Informatika, Fakultas Teknologi Informasi, Universitas Budi Luhur, Jakarta (S1, 2005) dan Magister Teknologi Informasi, Universitas Indonesia (S2, 2010). Saat ini sedang menempuh program Doktoral dalam bidang Ilmu Komputer di Universitas Gadjah Mada, Jogjakarta. Kegiatan sehari-hari adalah sebagai Dosen di Universitas Budi Luhur (http://www.budiluhur.ac.id). Kegiatan lain aktif sebagai programmer, web developer, system analyst, konsultan dan memberikan pelatihan di berbagai bidang komputer serta membuat tutorial-tutorial praktis di bidangkomputer. Penulis memiliki situs utama di http://achmatim.net yang berisi berbagai tutorialpraktis di bidang komputer serta menyediakan buku gratis komputer. Penulis dapatdihubungi melalui email di achmad.solichin@budiluhur.ac.id dan achmatim@gmail.com, YMachmatim, Facebook achmatim dan Twitter @achmatim.Lisensi Dokumen Seluruh isi dalam dokumen ini dapat digunakan, dimodifikasi dan disebarluaskan secara bebas untuk tujuan pendidikan, pembelajaran danbukan komersial (non profit), dengan syarat tidak menghilangkan, menghapus ataumengubah atribut penulis dokumen ini dan pernyataan dalam lisensi dokumen yangdisertakan di setiap dokumen. Tidak diperbolehkan mengkomersialkan tutorial ini kecualimendapatkan ijin terlebih dahulu dari penulis. Halaman 7 dari 7