SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
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 2012


PHP dan MySQL, seolah pasangan sejati yang tak terpisahkan. Keduanya paling sering
disandingkan dalam pembuatan aplikasi berbasis web ( web application development). Tak
heran jika begitu banyak fungsi terkait dengan MySQL yang disediakan oleh PHP. Setidaknya
terdapat 45 fungsi PHP terkait dengan MySQL mulai dari koneksi, pengambilan data, query
data hingga informasi server MySQL1.
Dalam tutorial ini akan dikenalkan berbagai fungsi PHP terkait dengan pengambilan data
MySQL. Pengambilan data yang dimaksud disini tepatnya adalah pengolahan hasil perintah
query SELECT yang dihasilkan dari fungsi mysql_query(). Hasil perintah query dapat diolah
untuk ditampilkan atau diproses oleh PHP melalui berbagai fungsi yang diawali dengan
mysql_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() dan
mysql_fetch_row().
Dalam tutorial ini akan dijelaskan kegunaan dari 4 (empat) fungsi yaitu
mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_object() dan mysql_fetch_row().
Sementara dua fungsi lainnya yaitu mysql_fetch_field() dan mysql_fetch_lengths() tidak
dijelaskan di tutorial ini karena keduanya tidak terlalu berkaitan dengan pengambilan data
MySQL, 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                      DESCRIPTION
nim                     VARCHAR                  10             NIM Mahasiswa
nama                    VARCHAR                  30             NAMA Mahasiswa
alamat                  TEXT                     -              Alamat Mahasiswa




1   http://id1.php.net/manual/en/ref.mysql.php

                                                                                           Halaman 1 dari 7
Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Net


Dan 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 numerik
Fungsi mysql_fetch_array() merupakan salah satu fungsi yang banyak digunakan dalam
proses pengambilan data MySQL. Fungsi ini akan menangkap data dari hasil perintah query
dan membentuknya ke dalam array asosiatif dan array numerik. Jadi, fungsi
mysql_fetch_array() menawarkan kemudahan dan fleksibilitas dalam mengakses data.
Namun demikian, penggunaan fungsi ini dianggap kurang efektif dari sisi performa karena
terlalu “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.Net


Seperti sudah dinyatakan sebelumnya bahwa fungsi mysql_fetch_array() akan menghasilkan
struktur 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 index
array, dan juga dapat menggunakan “gaya” array numerik seperti terlihat pada baris ke-14
dimana 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 dengan
menggunakan fungsi print_r() seperti perintah pada baris ke-21. Hasilnya akan terlihat
seperti pada gambar berikut ini:




                                    Gambar 1: Struktur Array yang dihasilkan
                                           oleh mysql_fetch_array



mysql_fetch_assoc() : Array asosiatif saja
Dalam hal pengambilan data MySQL, saat ini saya lebih sering menggunakan fungsi
mysql_fetch_assoc() dibanding fungsi lainnya. Fungsi ini menghasilkan array asosiatif yang
mana index-nya sesuai dengan nama kolom yang diseleksi. Mudahnya, tidak tergantung
pada urutan kolom, yang penting index-nya sesuai. Dari sisi programmer juga menjadi lebih
informatif.   Untuk     memberikan      gambaran     bagaimana     penggunaan       fungsi
mysql_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 array
asosiatif dimana index-nya merepresentasikan nama kolom yang diseleksi. Pada program di
atas terlihat bahwa pada baris ke-8, untuk setiap baris hasil perintah query akan
ditampilkan nilainya. Sementara itu, jika dilihat dari strukturnya, mysql_fetch_assoc() hanya
menghasilkan array asosiatif seperti terlihat pada potongan tampilan program 2 di atas
berikut ini.




                                  Gambar 2: Struktur Array yang dihasilkan oleh
                                               mysql_fetch_assoc



mysql_fetch_row() : Array numerik saja
Untuk kasus-kasus tertentu, saya terkadang lebih memilih menggunakan fungsi
mysql_fetch_row() dibanding yang lainnya. Contohnya pada saat saya ingin mengambil
jumlah hasil perintah query dengan menggunakan fungsi COUNT() di MySQL. Program
berikut ini akan menampilkan jumlah record dengan fungsi COUNT() dan diambil dengan
fungsi mysql_fetch_row(). Pada bagian akhir program juga ditampilkan struktur array
dengan perintah mysql_fetch_row().




                                                                                  Halaman 4 dari 7
Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Net


Contoh 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-oriented
Fungsi mysql_fetch_object() akan menyajikan hasil perintah query dalam gaya penulisan
object oriented. Sama seperti mysql_fetch_assoc(), fungsi ini menjadikan nama kolom hasil
perintah query menjadi property dari obyek. Contoh penggunaannya tampak pada program
4 di bawah ini. Penggunaan fungsi ini sebaiknya dihindari untuk keperluan mendatang
karena fungsi ini akan deprecated pada versi PHP 5.5.0 dan akan dihilangkan pada versi
selanjutnya.

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 Kecepatan
Untuk menguji kecepatan dari keempat fungsi di atas, saya mencoba melakukan pengujian
dengan menerapkan keempat fungsi untuk mengambil data yang berjumlah 1.135.392
record. Hasilnya sebagai berikut:


                                                                                 Halaman 5 dari 7
Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Net


mysql_fetch_array() : 18.302305936813 detik
mysql_fetch_assoc() : 16.9645819664 detik
mysql_fetch_row() : 16.664786100388 detik
mysql_fetch_object() : 35.827367067337 detik




                                    Gambar 3: Perbandingan kecepatan fungsi


Jadi, mana yang sebaiknya digunakan dalam pengambilan data dari database MySQL? Dari
pengujian sederhana di atas, yang jelas kita sebaiknya menghindari penggunaan fungsi
mysql_fetch_object() karena disamping paling buruk dari sisi kecepatan, juga karena fungsi
tersebut akan segera dihilangkan dari fungsi bawaan PHP. Selanjutnya, untuk ketiga fungsi
lainnya masih layak untuk digunakan karena secara kecepatan hampir seimbang. Pilihannya
tinggal menyesuaikan kebutuhan programmer.
Sebagai masukan, berkaitan dengan komunikasi antara PHP dengan database MySQL, kita
sebaiknya mulai beralih dari penggunaan fungsi mysql_* menjadi fungsi mysqli_* atau
gunakan 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.Net


Tentang 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 bidang
komputer. Penulis memiliki situs utama di http://achmatim.net yang berisi berbagai tutorial
praktis di bidang komputer serta menyediakan buku gratis komputer. Penulis dapat
dihubungi melalui email di achmad.solichin@budiluhur.ac.id dan achmatim@gmail.com, YM
achmatim, Facebook achmatim dan Twitter @achmatim.


Lisensi Dokumen
                 Seluruh isi dalam dokumen ini dapat digunakan, dimodifikasi dan
                 disebarluaskan secara bebas untuk tujuan pendidikan, pembelajaran dan
bukan komersial (non profit), dengan syarat tidak menghilangkan, menghapus atau
mengubah atribut penulis dokumen ini dan pernyataan dalam lisensi dokumen yang
disertakan di setiap dokumen. Tidak diperbolehkan mengkomersialkan tutorial ini kecuali
mendapatkan ijin terlebih dahulu dari penulis.




                                                                                 Halaman 7 dari 7

Contenu connexe

Tendances

Rpl 012 - perancangan berorientasi objek
Rpl   012 - perancangan berorientasi objekRpl   012 - perancangan berorientasi objek
Rpl 012 - perancangan berorientasi objek
Febriyani Syafri
 
Pembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja onlinePembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja online
andiseprianto
 

Tendances (20)

circular linked list
circular linked listcircular linked list
circular linked list
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
 
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4
 
Rpl 012 - perancangan berorientasi objek
Rpl   012 - perancangan berorientasi objekRpl   012 - perancangan berorientasi objek
Rpl 012 - perancangan berorientasi objek
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
Pm project charter
Pm project charterPm project charter
Pm project charter
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
Linked List
Linked ListLinked List
Linked List
 
Algoritma Divide and Conquer
Algoritma Divide and ConquerAlgoritma Divide and Conquer
Algoritma Divide and Conquer
 
Algoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary SearchAlgoritma dan Struktur Data - Binary Search
Algoritma dan Struktur Data - Binary Search
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antara
 
System Request
System RequestSystem Request
System Request
 
Pembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja onlinePembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja online
 
Algoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection Sort
 
Basic Web Exploit Development
Basic Web Exploit DevelopmentBasic Web Exploit Development
Basic Web Exploit Development
 
Teori bahasa dan otomata 3
Teori bahasa dan otomata 3Teori bahasa dan otomata 3
Teori bahasa dan otomata 3
 
Analisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik KompilasiAnalisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik Kompilasi
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
 
FileditOR VI
FileditOR VIFileditOR VI
FileditOR VI
 

Similaire à Mengenal fungsi php untuk pengambilan data my sql: mysql fetch

Fungsi mysql di php adalah untuk mengambil data di mysql
Fungsi mysql di php adalah untuk mengambil data di mysqlFungsi mysql di php adalah untuk mengambil data di mysql
Fungsi mysql di php adalah untuk mengambil data di mysql
Efendigea
 

Similaire à Mengenal fungsi php untuk pengambilan data my sql: mysql fetch (20)

Koneksi PHP ke Database MySQL menggunakan MySQLi Extension
Koneksi PHP ke Database MySQL menggunakan MySQLi ExtensionKoneksi PHP ke Database MySQL menggunakan MySQLi Extension
Koneksi PHP ke Database MySQL menggunakan MySQLi Extension
 
Fungsi php mysql
Fungsi php mysqlFungsi php mysql
Fungsi php mysql
 
Php dan MySQL 4
Php dan MySQL 4Php dan MySQL 4
Php dan MySQL 4
 
Mysql rahmat
Mysql rahmatMysql rahmat
Mysql rahmat
 
Mysql rahmat
Mysql rahmatMysql rahmat
Mysql rahmat
 
P webfb
P webfbP webfb
P webfb
 
Pwebfb1
Pwebfb1Pwebfb1
Pwebfb1
 
Entri, Edit, Delete, Tampil (CRUD) dengan PHP dan Ajax JQuery
Entri, Edit, Delete, Tampil (CRUD) dengan PHP dan Ajax JQueryEntri, Edit, Delete, Tampil (CRUD) dengan PHP dan Ajax JQuery
Entri, Edit, Delete, Tampil (CRUD) dengan PHP dan Ajax JQuery
 
Fungsi fungsi pada php - pemrograman php my sql
Fungsi fungsi pada php - pemrograman php my sqlFungsi fungsi pada php - pemrograman php my sql
Fungsi fungsi pada php - pemrograman php my sql
 
Fungsi mysql di php adalah untuk mengambil data di mysql
Fungsi mysql di php adalah untuk mengambil data di mysqlFungsi mysql di php adalah untuk mengambil data di mysql
Fungsi mysql di php adalah untuk mengambil data di mysql
 
Query Mysql pada PHP
Query Mysql pada PHPQuery Mysql pada PHP
Query Mysql pada PHP
 
Modul PBO Bab-11 - JDBC
Modul PBO Bab-11 - JDBCModul PBO Bab-11 - JDBC
Modul PBO Bab-11 - JDBC
 
Bab 04-mengatur database my sql
Bab 04-mengatur database my sqlBab 04-mengatur database my sql
Bab 04-mengatur database my sql
 
MySQL 1, introduction
MySQL 1, introductionMySQL 1, introduction
MySQL 1, introduction
 
Modul framework code igniter
Modul framework code igniterModul framework code igniter
Modul framework code igniter
 
75ery6e5y03 praktikum iii_array_statis_dan_dinamis
75ery6e5y03 praktikum iii_array_statis_dan_dinamis75ery6e5y03 praktikum iii_array_statis_dan_dinamis
75ery6e5y03 praktikum iii_array_statis_dan_dinamis
 
Pengantar mysql
Pengantar mysqlPengantar mysql
Pengantar mysql
 
Membuat CRUD data Mahasiswa dengan PHP MYSQLi.pdf
Membuat CRUD data Mahasiswa dengan PHP MYSQLi.pdfMembuat CRUD data Mahasiswa dengan PHP MYSQLi.pdf
Membuat CRUD data Mahasiswa dengan PHP MYSQLi.pdf
 
16406 pertemuan17(konsep basis-data-di-web)
16406 pertemuan17(konsep basis-data-di-web)16406 pertemuan17(konsep basis-data-di-web)
16406 pertemuan17(konsep basis-data-di-web)
 
Modul Praktikum Sistem Basis Data
Modul Praktikum Sistem Basis Data Modul Praktikum Sistem Basis Data
Modul Praktikum Sistem Basis Data
 

Plus de Achmad Solichin

Plus de Achmad Solichin (20)

Kuliah Umum - Tips Publikasi Jurnal SINTA untuk Mahasiswa Galau (6 Agustus 2022)
Kuliah Umum - Tips Publikasi Jurnal SINTA untuk Mahasiswa Galau (6 Agustus 2022)Kuliah Umum - Tips Publikasi Jurnal SINTA untuk Mahasiswa Galau (6 Agustus 2022)
Kuliah Umum - Tips Publikasi Jurnal SINTA untuk Mahasiswa Galau (6 Agustus 2022)
 
Materi Webinar Web 3.0 (16 Juli 2022)
Materi Webinar Web 3.0 (16 Juli 2022)Materi Webinar Web 3.0 (16 Juli 2022)
Materi Webinar Web 3.0 (16 Juli 2022)
 
Webinar: Kesadaran Keamanan Informasi (3 Desember 2021)
Webinar: Kesadaran Keamanan Informasi (3 Desember 2021)Webinar: Kesadaran Keamanan Informasi (3 Desember 2021)
Webinar: Kesadaran Keamanan Informasi (3 Desember 2021)
 
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
 
Webinar PHP-ID: Machine Learning dengan PHP
Webinar PHP-ID: Machine Learning dengan PHPWebinar PHP-ID: Machine Learning dengan PHP
Webinar PHP-ID: Machine Learning dengan PHP
 
Webinar Data Mining dengan Rapidminer | Universitas Budi Luhur
Webinar Data Mining dengan Rapidminer | Universitas Budi LuhurWebinar Data Mining dengan Rapidminer | Universitas Budi Luhur
Webinar Data Mining dengan Rapidminer | Universitas Budi Luhur
 
TREN DAN IDE RISET BIDANG DATA MINING TERBARU
TREN DAN IDE RISET BIDANG DATA MINING TERBARUTREN DAN IDE RISET BIDANG DATA MINING TERBARU
TREN DAN IDE RISET BIDANG DATA MINING TERBARU
 
Metodologi Riset: Literature Review
Metodologi Riset: Literature ReviewMetodologi Riset: Literature Review
Metodologi Riset: Literature Review
 
Materi Seminar: Artificial Intelligence dengan PHP
Materi Seminar: Artificial Intelligence dengan PHPMateri Seminar: Artificial Intelligence dengan PHP
Materi Seminar: Artificial Intelligence dengan PHP
 
Percobaan Perpindahan Kalor melalui Konduksi, Konveksi dan Radiasi
Percobaan Perpindahan Kalor melalui Konduksi, Konveksi dan RadiasiPercobaan Perpindahan Kalor melalui Konduksi, Konveksi dan Radiasi
Percobaan Perpindahan Kalor melalui Konduksi, Konveksi dan Radiasi
 
Metodologi Riset: Literature Review
Metodologi Riset: Literature ReviewMetodologi Riset: Literature Review
Metodologi Riset: Literature Review
 
Depth First Search (DFS) pada Graph
Depth First Search (DFS) pada GraphDepth First Search (DFS) pada Graph
Depth First Search (DFS) pada Graph
 
Breadth First Search (BFS) pada Graph
Breadth First Search (BFS) pada GraphBreadth First Search (BFS) pada Graph
Breadth First Search (BFS) pada Graph
 
Binary Search Tree (BST) - Algoritma dan Struktur Data
Binary Search Tree (BST) - Algoritma dan Struktur DataBinary Search Tree (BST) - Algoritma dan Struktur Data
Binary Search Tree (BST) - Algoritma dan Struktur Data
 
Computer Vision di Era Industri 4.0
Computer Vision di Era Industri 4.0Computer Vision di Era Industri 4.0
Computer Vision di Era Industri 4.0
 
Seminar: Become a Reliable Web Programmer
Seminar: Become a Reliable Web ProgrammerSeminar: Become a Reliable Web Programmer
Seminar: Become a Reliable Web Programmer
 
The Big 5: Future IT Trends
The Big 5: Future IT TrendsThe Big 5: Future IT Trends
The Big 5: Future IT Trends
 
Modern PHP Developer
Modern PHP DeveloperModern PHP Developer
Modern PHP Developer
 
Seminar: PHP Developer for Dummies
Seminar: PHP Developer for DummiesSeminar: PHP Developer for Dummies
Seminar: PHP Developer for Dummies
 
Pertemuan 1 - Algoritma dan Struktur Data 1
Pertemuan 1 - Algoritma dan Struktur Data 1Pertemuan 1 - Algoritma dan Struktur Data 1
Pertemuan 1 - Algoritma dan Struktur Data 1
 

Mengenal fungsi php untuk pengambilan data my sql: mysql fetch

  • 1. 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 2012 PHP dan MySQL, seolah pasangan sejati yang tak terpisahkan. Keduanya paling sering disandingkan dalam pembuatan aplikasi berbasis web ( web application development). Tak heran jika begitu banyak fungsi terkait dengan MySQL yang disediakan oleh PHP. Setidaknya terdapat 45 fungsi PHP terkait dengan MySQL mulai dari koneksi, pengambilan data, query data hingga informasi server MySQL1. Dalam tutorial ini akan dikenalkan berbagai fungsi PHP terkait dengan pengambilan data MySQL. Pengambilan data yang dimaksud disini tepatnya adalah pengolahan hasil perintah query SELECT yang dihasilkan dari fungsi mysql_query(). Hasil perintah query dapat diolah untuk ditampilkan atau diproses oleh PHP melalui berbagai fungsi yang diawali dengan mysql_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() dan mysql_fetch_row(). Dalam tutorial ini akan dijelaskan kegunaan dari 4 (empat) fungsi yaitu mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_object() dan mysql_fetch_row(). Sementara dua fungsi lainnya yaitu mysql_fetch_field() dan mysql_fetch_lengths() tidak dijelaskan di tutorial ini karena keduanya tidak terlalu berkaitan dengan pengambilan data MySQL, 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 DESCRIPTION nim VARCHAR 10 NIM Mahasiswa nama VARCHAR 30 NAMA Mahasiswa alamat TEXT - Alamat Mahasiswa 1 http://id1.php.net/manual/en/ref.mysql.php Halaman 1 dari 7
  • 2. Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Net Dan 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 numerik Fungsi mysql_fetch_array() merupakan salah satu fungsi yang banyak digunakan dalam proses pengambilan data MySQL. Fungsi ini akan menangkap data dari hasil perintah query dan membentuknya ke dalam array asosiatif dan array numerik. Jadi, fungsi mysql_fetch_array() menawarkan kemudahan dan fleksibilitas dalam mengakses data. Namun demikian, penggunaan fungsi ini dianggap kurang efektif dari sisi performa karena terlalu “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
  • 3. Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Net Seperti sudah dinyatakan sebelumnya bahwa fungsi mysql_fetch_array() akan menghasilkan struktur 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 index array, dan juga dapat menggunakan “gaya” array numerik seperti terlihat pada baris ke-14 dimana 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 dengan menggunakan fungsi print_r() seperti perintah pada baris ke-21. Hasilnya akan terlihat seperti pada gambar berikut ini: Gambar 1: Struktur Array yang dihasilkan oleh mysql_fetch_array mysql_fetch_assoc() : Array asosiatif saja Dalam hal pengambilan data MySQL, saat ini saya lebih sering menggunakan fungsi mysql_fetch_assoc() dibanding fungsi lainnya. Fungsi ini menghasilkan array asosiatif yang mana index-nya sesuai dengan nama kolom yang diseleksi. Mudahnya, tidak tergantung pada urutan kolom, yang penting index-nya sesuai. Dari sisi programmer juga menjadi lebih informatif. Untuk memberikan gambaran bagaimana penggunaan fungsi mysql_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
  • 4. 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 array asosiatif dimana index-nya merepresentasikan nama kolom yang diseleksi. Pada program di atas terlihat bahwa pada baris ke-8, untuk setiap baris hasil perintah query akan ditampilkan nilainya. Sementara itu, jika dilihat dari strukturnya, mysql_fetch_assoc() hanya menghasilkan array asosiatif seperti terlihat pada potongan tampilan program 2 di atas berikut ini. Gambar 2: Struktur Array yang dihasilkan oleh mysql_fetch_assoc mysql_fetch_row() : Array numerik saja Untuk kasus-kasus tertentu, saya terkadang lebih memilih menggunakan fungsi mysql_fetch_row() dibanding yang lainnya. Contohnya pada saat saya ingin mengambil jumlah hasil perintah query dengan menggunakan fungsi COUNT() di MySQL. Program berikut ini akan menampilkan jumlah record dengan fungsi COUNT() dan diambil dengan fungsi mysql_fetch_row(). Pada bagian akhir program juga ditampilkan struktur array dengan perintah mysql_fetch_row(). Halaman 4 dari 7
  • 5. Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Net Contoh 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-oriented Fungsi mysql_fetch_object() akan menyajikan hasil perintah query dalam gaya penulisan object oriented. Sama seperti mysql_fetch_assoc(), fungsi ini menjadikan nama kolom hasil perintah query menjadi property dari obyek. Contoh penggunaannya tampak pada program 4 di bawah ini. Penggunaan fungsi ini sebaiknya dihindari untuk keperluan mendatang karena fungsi ini akan deprecated pada versi PHP 5.5.0 dan akan dihilangkan pada versi selanjutnya. 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 Kecepatan Untuk menguji kecepatan dari keempat fungsi di atas, saya mencoba melakukan pengujian dengan menerapkan keempat fungsi untuk mengambil data yang berjumlah 1.135.392 record. Hasilnya sebagai berikut: Halaman 5 dari 7
  • 6. Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Net mysql_fetch_array() : 18.302305936813 detik mysql_fetch_assoc() : 16.9645819664 detik mysql_fetch_row() : 16.664786100388 detik mysql_fetch_object() : 35.827367067337 detik Gambar 3: Perbandingan kecepatan fungsi Jadi, mana yang sebaiknya digunakan dalam pengambilan data dari database MySQL? Dari pengujian sederhana di atas, yang jelas kita sebaiknya menghindari penggunaan fungsi mysql_fetch_object() karena disamping paling buruk dari sisi kecepatan, juga karena fungsi tersebut akan segera dihilangkan dari fungsi bawaan PHP. Selanjutnya, untuk ketiga fungsi lainnya masih layak untuk digunakan karena secara kecepatan hampir seimbang. Pilihannya tinggal menyesuaikan kebutuhan programmer. Sebagai masukan, berkaitan dengan komunikasi antara PHP dengan database MySQL, kita sebaiknya mulai beralih dari penggunaan fungsi mysql_* menjadi fungsi mysqli_* atau gunakan 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
  • 7. Mengenal Fungsi PHP untuk Pengambilan Data MySQL: mysql_fetch_* | Achmatim.Net Tentang 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 bidang komputer. Penulis memiliki situs utama di http://achmatim.net yang berisi berbagai tutorial praktis di bidang komputer serta menyediakan buku gratis komputer. Penulis dapat dihubungi melalui email di achmad.solichin@budiluhur.ac.id dan achmatim@gmail.com, YM achmatim, Facebook achmatim dan Twitter @achmatim. Lisensi Dokumen Seluruh isi dalam dokumen ini dapat digunakan, dimodifikasi dan disebarluaskan secara bebas untuk tujuan pendidikan, pembelajaran dan bukan komersial (non profit), dengan syarat tidak menghilangkan, menghapus atau mengubah atribut penulis dokumen ini dan pernyataan dalam lisensi dokumen yang disertakan di setiap dokumen. Tidak diperbolehkan mengkomersialkan tutorial ini kecuali mendapatkan ijin terlebih dahulu dari penulis. Halaman 7 dari 7