Mendapatkan data user adalah salah satu tugas fundamental dalam pengembangan web, terutama untuk sistem yang membutuhkan otentikasi atau personalisasi konten. Dalam seri tutorial CodeIgniter ini, kita akan belajar cara mendapatkan data user yang sedang login dan menampilkannya di halaman web.
Persiapan
Sebelum memulai, pastikan Anda sudah memiliki hal-hal berikut:
- Sistem Login: Anda sudah memiliki sistem login yang berfungsi dengan baik.
- Session: Saat user berhasil login, datanya (misalnya,
id,nama,email) sudah tersimpan di dalam session. - Database: Anda memiliki tabel
usersyang berisi data user.
Pada tutorial ini, kita akan menggunakan data user yang sudah disimpan di session dan mengambil data lengkapnya dari database.
Langkah 1: Memuat Library dan Helper
Pastikan Anda memuat library session dan helper url di controller Anda. Cara terbaik adalah memuatnya di konstruktor controller agar bisa digunakan di semua method.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Dashboard extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->library('session');
$this->load->helper('url');
$this->load->model('m_user'); // Memuat model user
}
// ... method lainnya
}
$this->load->library('session'): Memuat library session CodeIgniter.$this->load->model('m_user'): Memuat model yang akan kita gunakan untuk berinteraksi dengan tabelusers.
Langkah 2: Membuat Model User
Kita akan membuat model baru yang bertugas mengambil data user dari database. Buat file baru bernama M_user.php di dalam folder application/models.
application/models/M_user.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class M_user extends CI_Model{
function get_user_data($id){
return $this->db->get_where('users', array('id' => $id))->row_array();
}
}
get_user_data($id): Fungsi ini menerimaiduser sebagai parameter.$this->db->get_where('users', array('id' => $id)): Fungsi ini akan menjalankan querySELECT * FROM users WHERE id = $id.->row_array(): Metode ini mengembalikan satu baris hasil query dalam bentuk array asosiatif.
Langkah 3: Mengambil dan Menampilkan Data User di Controller
Sekarang, kita buat method di controller (misalnya Dashboard.php) yang akan mengambil data dari session, memanggil model, dan mengirimkan data lengkap ke view.
application/controllers/Dashboard.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Dashboard extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->library('session');
$this->load->helper('url');
$this->load->model('m_user');
}
public function index(){
// Cek apakah user sudah login
if(!$this->session->userdata('is_logged_in')){
redirect('login');
}
// Mendapatkan ID user dari session
$user_id = $this->session->userdata('user_id');
// Mendapatkan data user lengkap dari model
$data['user_data'] = $this->m_user->get_user_data($user_id);
// Memuat view dan mengirimkan data user
$this->load->view('dashboard_view', $data);
}
}
$this->session->userdata('user_id'): Mengambil nilaiuser_idyang sudah disimpan di session saat login.$this->m_user->get_user_data($user_id): Memanggil model untuk mengambil data lengkap berdasarkanid.$data['user_data']: Menyimpan data user ke dalam array$dataagar bisa dikirim ke view.$this->load->view('dashboard_view', $data): Memuat viewdashboard_viewdan menyertakan data user.
Langkah 4: Menampilkan Data di View
Terakhir, kita akan membuat view untuk menampilkan data user. Buat file dashboard_view.php di dalam folder application/views.
application/views/dashboard_view.php
<!DOCTYPE html>
<html>
<head>
<title>Dashboard</title>
</head>
<body>
<center>
<h3>Selamat Datang, <?php echo $user_data['nama']; ?>!</h3>
<p>Email: <?php echo $user_data['email']; ?></p>
<p>ID User: <?php echo $user_data['id']; ?></p>
<a href="<?php echo base_url('logout'); ?>">Logout</a>
</center>
</body>
</html>
<?php echo $user_data['nama']; ?>: Menampilkan nama user yang kita dapatkan dari controller.$user_data: Nama variabel ini sesuai dengan kunci array yang kita kirimkan dari controller. Kita bisa mengakses setiap kolom data user dengan kunci array-nya, seperti['nama'],['email'], dll.
Kesimpulan
Proses mendapatkan data user di CodeIgniter melibatkan alur yang terstruktur:
- Simpan Identitas: Setelah login, simpan identitas unik user (misalnya
id) ke dalam session. - Ambil Identitas: Di controller, ambil
iduser dari session. - Tarik Data: Panggil model untuk mengambil data lengkap dari database berdasarkan
idtersebut. - Tampilkan: Kirim data lengkap ke view untuk ditampilkan.
Dengan memisahkan logika ini ke dalam MVC, aplikasi Anda menjadi lebih terorganisir, aman, dan mudah untuk dikembangkan.