Cara menggunakan config.php w3schools

Dalam membuat sebuah sistem ataupun aplikasi berbasis website, tentu kita membutuhkan yang namanya Autentikasi. Autentikasi merupakan sebuah proses untuk membuktikan identitas pengguna pada saat ingin mengakses sebuah sistem.

Pada artikel kali ini, kita akan membahas bagaimana caranya untuk membuat sebuah sistem login multi user menggunakan Codeigniter yang terkoneksi dengan database MySQL. Sebagai gambaran, terdapat 3 user yang kita berikan akses dan ketiga user tersebut akan mendapatkan tampilan atau menu yang berbeda satu dengan yang lainnya.

Persiapan

Seperti biasa, terdapat beberapa hal yang perlu kamu siapkan. Berikut rinciannya:

Untuk kamu yang belum tau cara instal Codeigniter 3, kamu bisa mengunjungi artikel yang satu ini. Kemudian kamu juga membutuhkan Database MySQL. Database ini sudah langsung include pada saat kamu menginstal web server local seperti Xampp atau Wamp. Sementara untuk urusan mempercantik tampilan disini kamu akan menggunakan library W3 yang dapat kamu download dan baca dokumentasinya disini.

Langkah Pembuatan

Apabila semua persiapan diatas telah kamu lengkapi, kita akan lanjut pada step pembuatan sistem login ini.

#1 Buat Database

Langkah pertama yang harus kamu lakukan adalah membuat sebuah database dengan nama sistem_login. Kemudian buat table dengan nama table_user. Rincian fields-nya sebagai berikut:

Cara menggunakan config.php w3schools

Kamu dapat membuat database menggunakan phpMyAdmin ataupun tools DBMS seperti SQLyog. Seperti gambar diatas, terdapat fields user_akses. Fields tersebut nantinya akan berisi angka 1 untuk akses Administrator, angka 2 untuk akses Dosen, dan angka 3 untuk akses Mahasiswa.

Setelah database dan tabelnya dibuat, isi beberapa data dengan query berikut:

INSERT INTO table_user VALUES
('','Tuanku Imam Bonjol','[email protected]',SHA2('admin123', 224),'1','1'),
('','Muhammad Hatta','[email protected]',SHA2('dosen123', 224),'2','1'),
('','Bagindo Aziz Chan','[email protected]',SHA2('mahasiswa123', 224),'3','1');

#2 Instal Codeigniter 3

Untuk mempersingkat penulisan artikel, cara instal Codeigniter 3 telah saya tulis pada artikel berikut yang dapat kamu akses disini. Instal Codeigniter menggunakan nama ci-login. Setelah itu coba buka browser dan akses halaman berikut http://localhost/ci-login/.

Cara menggunakan config.php w3schools

Apabila tampilannya sudah seperti diatas, berarti proses instalasi telah berjalan dengan benar.

#3 Konfigurasi Codeigniter

Konfigurasi ini merupakan langkah dasar yang wajib kamu lakukan untuk menjamin codeigniter berjalan dengan benar.

Buka file autoload.php yang berada di application/config. Kemudian temukan kode berikut:

$autoload['libraries'] = array();
$autoload['helper'] = array();

Rubah menjadi sebagai berikut:

$autoload['libraries'] = array('database','session');
$autoload['helper'] = array('url');

Buka file config.php yang berada di application/config. Kemudian temukan kode berikut:

$config['base_url'] = '';
$config['index_page'] = 'index.php';

Rubah menjadi sebagai berikut:

$config['base_url'] = 'http://localhost/ci-login';
$config['index_page'] = '';

Buka file database.php yang berada di application/config. Kemudian setting koneksi databasenya sebagai berikut:

'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'sistem_login',

Buka file routes.php yang berada di application/config. Kemudian setting default controllernya ke controller home seperti berikut:

$route['default_controller'] = 'home';

Terakhir, buatlah file .htaccess yang berisi kode berikut:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

Letakan file .htaccess tersebut sejajar dengan folder application dan system.

Cara menggunakan config.php w3schools

#4 Buat Controllers

Disini kita akan bekerja dengan 2 controllers. Yaitu controller untuk login dan controller untuk home (setelah login).

Pada folder application/controllers buatlah sebuah file bernama Login.php (Penamaan file controller harus menggunakan huruf kapital diawal). Kemudian ketik kode berikut:

load->model('Mlogin','Mlogin');
    }
    
	function index(){
        if($this->session->userdata('logged') !=TRUE){
            $this->load->view('view-login');
        }else{
            $url=base_url('home');
            redirect($url);
        };
    }
    
    function autentikasi(){
        $email = $this->input->post('email');
        $password = $this->input->post('pass');
                
        $validasi_email = $this->Mlogin->query_validasi_email($email);
        if($validasi_email->num_rows() > 0){
            $validate_ps=$this->Mlogin->query_validasi_password($email,$password);
            if($validate_ps->num_rows() > 0){
                $x = $validate_ps->row_array();
                if($x['user_status']=='1'){
                    $this->session->set_userdata('logged',TRUE);
                    $this->session->set_userdata('user',$email);
                    $id=$x['user_id'];
                    if($x['user_akses']=='1'){ //Administrator
                        $name = $x['user_name'];
                        $this->session->set_userdata('access','Administrator');
                        $this->session->set_userdata('id',$id);
                        $this->session->set_userdata('name',$name);
                        redirect('home');

                    }else if($x['user_akses']=='2'){ //Dosen
                        $name = $x['user_name'];
                        $this->session->set_userdata('access','Dosen');
                        $this->session->set_userdata('id',$id);
                        $this->session->set_userdata('name',$name);
                        redirect('home');

                    }else if($x['user_akses']=='3'){ //Mahasiswa
                        $name = $x['user_name'];
                        $this->session->set_userdata('access','Mahasiswa');
                        $this->session->set_userdata('id',$id);
                        $this->session->set_userdata('name',$name);
                        redirect('home');
                    }
                }else{
                    $url=base_url('login');
                    echo $this->session->set_flashdata('msg','×
                    

Uupps!

Akun kamu telah di blokir. Silahkan hubungi admin.

'); redirect($url); } }else{ $url=base_url('login'); echo $this->session->set_flashdata('msg','×

Uupps!

Password yang kamu masukan salah.

'); redirect($url); } }else{ $url=base_url('login'); echo $this->session->set_flashdata('msg','×

Uupps!

Email yang kamu masukan salah.

'); redirect($url); } } function logout(){ $this->session->sess_destroy(); $url=base_url('login'); redirect($url); } }

PENJELASAN KODE:

Function Construct: Ini digunakan untuk pendefinisian secara global untuk satu controller. Yang artinya semua variable yang telah didefinisikan di fungsi ini dapat kamu gunakan untuk fungsi-fungsi selanjutnya yang masih berada didalam file yang sama. Seperti yang terlihat pada highlight diatas, didalam fungsi ini terdapat perintah untuk me-load models dengan nama Mlogin.

Function index: Ini merupakan fungsi untuk menampilkan view halaman login. Didalamnya terdapat logic yang memeriksa apabila user tersebut sudah melakukan login, maka user tersebut akan diarahkan langsung ke halaman home.

Function autentikasi: Fungsi ini lah yang akan kamu panggil nantinya ketika menekan tombol login. Fungsi ini akan mengambil nilai yang kamu input pada halaman login seperti email dan juga password, kemudian meneruskannya ke Models untuk selanjutnya di periksa apakah email dan password tersebut cocok atau tidak.

Function logout: Seperti namanya, fungsi ini digunakan untuk keluar dari sistem dan mengembalikan user ke halaman login.

Selanjutnya kita akan membuat controllers kedua yang digunakan untuk halaman home. Masih pada folder application/controllers buat sebuah file bernama Home.php (Penamaan harus menggunakan huruf kapital diawal). Kemudian ketik kode berikut:

session->userdata('logged') !=TRUE){
            $url=base_url('login');
            redirect($url);
		};
	}
	
	public function index()
	{
		$this->load->view('view-home');
	}
}

PENJELASAN KODE:

Function construct: Didalam fungsi ini terdapat sebuah logic apabila user mengakses controller Home ini belum melakukan autentikasi atau login, maka user tersebut akan dikembalikan ke halaman login untuk melakukan autentikasi. Fungsi ini sangat berguna untuk mencegah user yang tidak memiliki akses masuk ke sistem yang kita buat.

Function index: Fungsi ini digunakan untuk menampilkan halaman Home.

#5 Buat Models

Langkah berikutnya adalah membuat Models yang berisikan perintah ke database untuk melakukan pengecekan terhadap apa yang diinput oleh user.

Pada folder application/models buat sebuah file bernama Mlogin.php (Penamaan models harus menggunakan huruf kapital diawal). Ketikan kode berikut:

$autoload['libraries'] = array();
$autoload['helper'] = array();
0

PENJELASAN KODE:

Didalam kode diatas terdapat 2 fungsi. Fungsi pertama digunakan untuk memeriksa email yang diinput oleh user sudah benar atau tidak, kemudian fungsi yang kedua adalah melakukan pemeriksaan terhadap email dan password yang diinputkan user apakah cocok atau tidak.

#6 Buat Views

Untuk keperluan mempercantik tampilan, pada tutorial ini kita akan menggunakan library css yang disediakan W3. Disini kamu tidak perlu menginstal ataupun mendownload apa-apa. Kamu hanya perlu koneksi internet dan menempelkan script berikut pada file html.

$autoload['libraries'] = array();
$autoload['helper'] = array();
1

Selanjutnya kita akan membuat tampilan untuk halaman login. Silahkan buat sebuah file bernama view-login.php pada direktori application/views. Ketik kode berikut:

$autoload['libraries'] = array();
$autoload['helper'] = array();
2

Kemudian buat juga tampilan untuk halaman home. Silahkan buat sebuah file bernama view-home.php pada direktori application/views. Ketik kode berikut:

$autoload['libraries'] = array();
$autoload['helper'] = array();
3

PENJELASAN KODE:

Didalam kode untuk menu, terdapat logic yang menentukan menu apa saja yang ditampilkan untuk masing-masing user.

Test Case (Percobaan)

Untuk melakukan percobaan, silahkan buka browser dan arahkan ke url http://localhost/ci-login/login.

Berikut tampilan halaman login:

Cara menggunakan config.php w3schools

Melakukan percobaan dengan menggunakan email yang salah.

Email : [email protected]

Password : 123

Berikut hasil test case nya:

Cara menggunakan config.php w3schools

Melakukan percobaan dengan menggunakan email yang benar namun password yang salah.

Email : [email protected]

Password : admin111

Berikut hasil test case nya

Cara menggunakan config.php w3schools

Melakukan percobaan dengan menggunakan email dan password Admin yang benar.

Email : [email protected]

Password : admin123

Berikut hasil test case nya

Cara menggunakan config.php w3schools

Sistem akan menampilkan halaman home berikut dengan menu-menu yang dapat diakses oleh admin.

Melakukan percobaan dengan menggunakan email dan password Dosen yang benar.

Email : [email protected]

Password : dosen123

Berikut hasil test case nya

Cara menggunakan config.php w3schools

Sistem akan menampilkan halaman dosen beserta menu yang dapat diakses oleh dosen

Melakukan percobaan dengan menggunakan email dan password Mahasiswa yang benar.

Email : [email protected]

Password : mahasiswa123

Berikut hasil test case nya

Cara menggunakan config.php w3schools

Sistem akan menampilkan halaman mahasiswa beserta menu yang dapat diakses oleh mahasiswa.

Kesimpulan

Pada artikel kali ini kamu telah belajar bagaimana membuat sistem login multy user menggunakan framework Codeigniter yang terkoneksi ke database MySQL. Disini kamu telah belajar menentukan hak akses masing-masing user dan memisahkan menu yang dapat ditampilkan oleh user tersebut.

Terus support penulis dengan cara membagikan artikel ini dimedia sosial kamu atau dengan mentrakteer saya di Trakteer.id