Tutorial PHP MySQL Part 14: Cara Menampilkan Data dengan mysqli PHP (Object Style)

Jika dalam tutorial sebelumnya kita mempelajari mysqli dengan menggunakan fungsi-fungsi atau dikenal dengan procedural style mysqli, dalam tutorial PHP MySQL kali ini kita akan membahas tentang object style mysqli.


Cara Penulisan Object Style mysqli

Sebagai cara koneksi yang lebih baru daripada mysql extension, mysqli memiliki 2 jenis style, yakni procedural style dan object-oriented style. Kecendrungan pemrograman saat ini lebih banyak menggunakan objek. Untuk hal inilah PHP juga menyediakan mysqli dengan "rasa" objek.

Pemrograman berbasis objek lebih banyak disukai karena cenderung rapi dan mudah dikembangkan, terutama jika kita mengerjakan proyek besar yang butuh ribuan baris program. Konsep OOP seperti inheritance, encapsulation dan polymorfism membuat program menjadi lebih tertata.

Jika anda baru berkenalan dengan PHP atau konsep pemrograman secara umum, pemrograman berbasis objek mungkin akan terasa membingungkan. OOP membutuhkan alur penulisan program yang berbeda dibandingkan metode procedural yang kita pelajari hingga saat ini.

Saya sangat menyarankan anda untuk mulai beralih menggunakan OOP. Karena dengan OOP-lah tingkat pemahaman dan pengalaman kita "naik level". Jika anda bermaksud "serius" mempelajari tentang PHP, duniailkom telah membuat tutorial lengkap mengenai konsep OOP, di dalam Tutorial Pemrograman Berbasis Objek PHP.

Langsung saja kita lihat bagaimana cara penggunaan objek di dalam mysqli.

Didalam tutorial ini saya berasumsi anda telah memahami sedikit tentang OOP PHP. Terutama cara pemanggilan constructor (cara pembuatan objek) dan cara pemanggilan method objek (menggunakan tanda panah ->).

Cara Membuat Koneksi dengan MySQL (mysqli constructor)

Untuk membuat koneksi MySQL dengan PHP menggunakan mysqli object style, caranya adalah dengan menggunakan mysqli constructor. Constructor mysqli adalah sejenis fungsi yang digunakan untuk membuat object baru dari class mysqli.

Argumen di dalam construktor mysqli ini sama persis dengan argumen fungsi mysqli_connect(), yakni lokasi komputer, nama user, dan password user.

Berikut adalah cara membuat koneksi mysqli di localhost untuk user "root" dengan password "qwerty":

<?php
   $link = new mysqli("localhost", "root", "qwerty");
?>

Pada kode diatas, saya membuat objek $link dari class mysqli. Di dalam OOP, keyword new digunakan untuk membuat objek baru. Dengan objek $link hasil mysqli constructor inilah proses query MySQL nantinya kita jalankan.

Sama seperti fungsi mysqli_connect(), constructor mysqli juga memiliki argumen tambahan, yakni nama database yang ingin digunakan. Jika kita ingin langsung mengakses database "universitas", maka kode programnya menjadi:

<?php
   $link = new mysqli("localhost", "root", "qwerty", "universitas");
?>

Cara Menutup Koneksi MySQL Dengan Method mysqli::close()

Walaupun PHP akan lansung menutup koneksi ke MySQL jika halaman telah selesai di proses, namun kita juga bisa menutupnya secara manual menggunakan method close() dari objek mysqli, atau biasa ditulis sebagai mysqli::close(). Berikut contoh penggunaannya:

<?php
   // buat koneksi dengan MySQL
   $link = new mysqli("localhost", "root", "qwerty","universitas");

   //.... Proses PHP
   //.... Proses PHP
   //.... Proses PHP

   // tutup koneksi
   $link->close();
?>

Cara Menjalankan Query MySQL Dengan Method mysqli::query()

Jika di dalam penulisan procedural kita menggunakan fungsi mysqli_query() untuk menjalankan query MySQL, maka di dalam objek style, kita mengaksesnya menggunakan method mysqli::query().

Agar lebih mudah dipahami, langsung saja kita masuk kedalam contoh kode program:

<?php
   // buat koneksi dengan MySQL, gunakan database: universitas
   $link = new mysqli("localhost", "root", "qwerty", "universitas);

   // jalankan query
   $result = $link->query("SELECT * FROM mahasiswa_ilkom");
?>

Perhatikan bahwa di dalam proses pemanggilan method query(), kita membutuhkan 1 argumen, yakni query MySQL yang akan dijalankan.


Cara Menampilkan Data MySQL Dengan mysqli object style

Untuk menampilkan hasil query MySQL, mysqli object memiliki banyak method. Kali ini kita akan membahas 3 cara yang paling sering digunakan, yakni method fetch_row(), fetch_array() dan fetch_object(). Cara penggunaan ketiga method ini hampir sama dengan padanan fungsinya di procedural style, yakni dengan fungsi mysqli_fetch_row(), mysqli_fetch_array(), dan mysqli_fetch_object().

Agar lebih jelas, langsung saja kita masuk ke dalam contoh kode program untuk menampilkan seluruh isi data dari tabel mahasiswa_ilkom.

Pembahasan pertama, yakni cara menampilkan data mysqli dengan method fetch_row(). Berikut adalah contoh kode programnya:

<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = new mysqli("localhost", "root", "qwerty", "universitas");

// jalankan query
$result = $link->query("SELECT * FROM mahasiswa_ilkom");

// tampilkan query
while ($row= $result->fetch_row())
{
   echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
   echo "<br />";
}
?>

Dalam contoh diatas, saya mengunakan method fetch_row() dari objek $result yang merupakan objek hasil pemanggilan method query(). Method fetch_row() ini tidak memerlukan argumen apapun, sehingga kita memanggilnya dengan cara $result->fetch_row().

Cara kedua untuk menampilkan data mysqli adalah dengan method fetch_array(). Berikut contoh kode programnya:

<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = new mysqli("localhost", "root", "qwerty", "universitas");

// jalankan query
$result = $link->query("SELECT * FROM mahasiswa_ilkom");

// tampilkan query
while ($row=$result->fetch_array(MYSQLI_ASSOC))
{
   echo $row['nim']." ".$row['nama']." ".$row['umur']." ";
   echo $row['tempat_lahir']." ".$row['IPK'];
   echo "<br />";
}
?>

Sama seperti method fetch_row(), method fetch_array() juga diakses dari objek $result yang merupakan hasil pemanggilan query.

Method fetch_array() membutuhkan 1 argumen, berupa string yang berisi bagaimana cara array hasil method akan diakases. String ini bisa dipilih dari salah satu nilai: MYSQLI_NUM, MYSQLI_ASSOC atau MYSQLI_BOTH. Lebih lengkap tentang perbedaan ketiga nya telah kita bahas dalam tutorial mengenai fungsi mysql_fetch_array().

Cara ketiga yang akan kita bahas untuk menampilkan data mysqli, adalah dengan method fetch_object(). Berikut contoh pengunaanya:

<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = new mysqli("localhost", "root", "qwerty", "universitas");

// jalankan query
$result = $link->query("SELECT * FROM mahasiswa_ilkom");

// tampilkan query
while ($row=$result->fetch_object())
{
   echo $row->nim." ".$row->nama." ".$row->umur." ";
   echo $row->tempat_lahir." ".$row->IPK;
   echo "<br />";
}
?>

Cara penggunaan method fetch_object() hampir sama dengan method-method sebelumnya, yakni di akses dari objek $result hasil menjalankan query MySQL.


Dalam tutorial PHP MySQL kali ini kita telah membahas cara penggunaan mysqli extension yang berbasis object. Tutorial mysqli ini dan juga tutorial sebelumnya tentang mysqli procedural saya buat sesingkat mungkin tanpa menggunakan prosedur untuk penanganan kesalahan. Misalnya, bagaimana mengecek apakah koneksi dengan MySQL sudah terhubung atau belum.

Dalam tutorial berikutnya, akan kita bahas secara mendalam mengenai beberapa fungsi dan method mysqli yang digunakan untuk penanganan kesalahan.

32 Comments

  1. Redo Kusuma
    27 Jan 15
    • Andre
      28 Jan 15
  2. Ardii
    24 Feb 15
    • Andre
      24 Feb 15
  3. anton
    03 Mar 15
    • Andre
      03 Mar 15
  4. adnanp
    08 Jun 15
    • Andre
      08 Jun 15
  5. tedy
    21 Jul 15
    • Andre
      22 Jul 15
  6. Ahlan Saputra
    14 Sep 15
  7. M Taufik Hidayat
    19 Sep 15
    • Andre
      20 Sep 15
  8. Aziz Rahman
    12 Nov 15
  9. Paul
    28 Jan 16
    • Andre
      28 Jan 16
  10. hermawan
    18 May 16
    • Andre
      19 May 16
      • hermawan
        19 May 16
  11. Ryan Kurniawan
    13 Aug 16
    • Andre
      14 Aug 16
  12. Fatkul Azis
    03 Oct 16
    • Andre
      03 Oct 16
      • Fatkul Azis
        05 Oct 16
        • Andre
          05 Oct 16
  13. Deeeeries
    21 Oct 16
    • Andre
      22 Oct 16
  14. M Hafiz Prasetyo
    03 Jan 17
  15. Pati
    24 Feb 17
  16. Arifin Al Irtiza
    01 Mar 19
  17. Falif
    30 Dec 19
    • Andre
      31 Dec 19

Add Comment