Kamis, 23 Juli 2020

Cara Membuat Google Form Soal Guru Atau Dosen untuk Tugas Siswa Mahasiswa

Bagi anda yang bekerja di dunia pendidikan sebagai guru maupun dosen, ditengah wabah pandemi penyakit corona seperti ini. Maka adalah yang memungkinkan adalah mengajar melalui dalam jaringan secara online. Layanan google sebelum ada nya pandemi sudah telah mengembangkan untuk kebutuhan perkantoran berupa google dokumen. Google dokumen dikembangkan menjadi google form yang awalnya dipakai untuk mengisi angket berupa kuesioner. Untuk sekarang ini, tidak hanya kuesioner, melainkan google form sudah mampu untuk membuat soal tugas berupa essay ataupun pilihan ganda, yang mana tugas tersebut nantinya siswa atau mahasiswa yang mengerjakan. Bagi anda yang ingin tahu bagaimana cara membuatnya? silahkan tonton video dibawah ini. Bagi anda yang hadir jangan lupa Like, Subscribe, dan Komen ya ^^


Jumat, 10 Juli 2020

Macam Macam Contoh Aplikasi Database

Pagi,,, pada pembahasan kali ini adalah membahas macam - macam aplikasi database. Nah, kalau kalian mungkin sudah mengetahui beberap contoh macam - macam aplikasi database. Di video bawah ini akan membahas macam - macam aplikasi database, silahkan disimak :




Bagi kalian yang telah hadir, jangan lupa Like, Subscribe, dan tulis Nama sama Kelas di Kolom Komentar ya, Terimakasih

Membuat ERD Relasi Diagram Database di Xampp

Pagii,,, klo pada pembahasan sebelumnya pernah bagaimana membuat normalisasi dan ERD di Excel maka kali ini saya akan membahas bagaimana membuat ERD atau Relasi Diagram Database pada Xampp yaitu PHPMyadmin. Ok, silahkan tonton pembahasan berikut ini :


Bagi kalian yang telah hadir, Jangan lupa Like,Subscribe, dan Komen Nama sama Kelas di Kolom komentar ya. Terimakasih

Selasa, 07 Juli 2020

Membuat Web Data Siswa dengan Codeigniter Sesi 6

Pada pembahasan kali ini, akan ditampilkan kodingan pada sebuah model, yaitu sebagai berikut :

<?php

class grocery_CRUD_Model  extends CI_Model  {
 
protected $primary_key = null;
protected $table_name = null;
protected $relation = array();
protected $relation_n_n = array();
protected $primary_keys = array();

function __construct()
    {
        parent::__construct();
    }

    function db_table_exists($table_name = null)
    {
    return $this->db->table_exists($table_name);
    }
 
    function get_list()
    {
    if($this->table_name === null)
    return false;
   
    $select = "`{$this->table_name}`.*";
   
    //set_relation special queries
    if(!empty($this->relation))
    {
    foreach($this->relation as $relation)
    {
    list($field_name , $related_table , $related_field_title) = $relation;
    $unique_join_name = $this->_unique_join_name($field_name);
    $unique_field_name = $this->_unique_field_name($field_name);
   
if(strstr($related_field_title,'{'))
{
$related_field_title = str_replace(" ","&nbsp;",$related_field_title);
    $select .= ", CONCAT('".str_replace(array('{','}'),array("',COALESCE({$unique_join_name}.",", ''),'"),str_replace("'","\\'",$related_field_title))."') as $unique_field_name";
}
    else
    {   
    $select .= ", $unique_join_name.$related_field_title AS $unique_field_name";
    }
   
    if($this->field_exists($related_field_title))
    $select .= ", `{$this->table_name}`.$related_field_title AS '{$this->table_name}.$related_field_title'";
    }
    }
   
    //set_relation_n_n special queries. We prefer sub queries from a simple join for the relation_n_n as it is faster and more stable on big tables.
    if(!empty($this->relation_n_n))
    {
$select = $this->relation_n_n_queries($select);
    }
   
    $this->db->select($select, false);   
   
    $results = $this->db->get($this->table_name)->result();
   
    return $results;
    }
 
    public function set_primary_key($field_name, $table_name = null)
    {
    $table_name = $table_name === null ? $this->table_name : $table_name;
   
    $this->primary_keys[$table_name] = $field_name;
    }
 
    protected function relation_n_n_queries($select)
    {
    $this_table_primary_key = $this->get_primary_key();
    foreach($this->relation_n_n as $relation_n_n)
    {
    list($field_name, $relation_table, $selection_table, $primary_key_alias_to_this_table,
    $primary_key_alias_to_selection_table, $title_field_selection_table, $priority_field_relation_table) = array_values((array)$relation_n_n);
   
    $primary_key_selection_table = $this->get_primary_key($selection_table);
   
    $field = "";
    $use_template = strpos($title_field_selection_table,'{') !== false;
    $field_name_hash = $this->_unique_field_name($title_field_selection_table);
    if($use_template)
    {
    $title_field_selection_table = str_replace(" ", "&nbsp;", $title_field_selection_table);
    $field .= "CONCAT('".str_replace(array('{','}'),array("',COALESCE(",", ''),'"),str_replace("'","\\'",$title_field_selection_table))."')";
    }
    else
    {
    $field .= "$selection_table.$title_field_selection_table";
    }
   
    //Sorry Codeigniter but you cannot help me with the subquery!
    $select .= ", (SELECT GROUP_CONCAT(DISTINCT $field) FROM $selection_table "
    ."LEFT JOIN $relation_table ON $relation_table.$primary_key_alias_to_selection_table = $selection_table.$primary_key_selection_table "
    ."WHERE $relation_table.$primary_key_alias_to_this_table = `{$this->table_name}`.$this_table_primary_key GROUP BY $relation_table.$primary_key_alias_to_this_table) AS $field_name";
    }

    return $select;
    }
 
    function order_by($order_by , $direction)
    {
    $this->db->order_by( $order_by , $direction );
    }
 
    function where($key, $value = NULL, $escape = TRUE)
    {
    $this->db->where( $key, $value, $escape);
    }
 
    function or_where($key, $value = NULL, $escape = TRUE)
    {
    $this->db->or_where( $key, $value, $escape);
    }

    function having($key, $value = NULL, $escape = TRUE)
    {
    $this->db->having( $key, $value, $escape);
    } 

    function or_having($key, $value = NULL, $escape = TRUE)
    {
    $this->db->or_having( $key, $value, $escape);
    } 
 
    function like($field, $match = '', $side = 'both')
    {
    $this->db->like($field, $match, $side);
    }
 
    function or_like($field, $match = '', $side = 'both')
    {
    $this->db->or_like($field, $match, $side);
    } 
 
    function limit($value, $offset = '')
    {
    $this->db->limit( $value , $offset );
    }
 
    function get_total_results()
    {
    //set_relation_n_n special queries. We prefer sub queries from a simple join for the relation_n_n as it is faster and more stable on big tables.
    if(!empty($this->relation_n_n))
    {
    $select = "{$this->table_name}.*";
    $select = $this->relation_n_n_queries($select);
   
    $this->db->select($select,false);
   
    return $this->db->get($this->table_name)->num_rows();
       
    }
    else
    {   
    return $this->db->get($this->table_name)->num_rows();
    }
    }
 
    function set_basic_table($table_name = null)
    {
    if( !($this->db->table_exists($table_name)) )
    return false;
   
    $this->table_name = $table_name;
   
    return true;
    }
 
    function get_edit_values($primary_key_value)
    {
    $primary_key_field = $this->get_primary_key();
    $this->db->where($primary_key_field,$primary_key_value);
    $result = $this->db->get($this->table_name)->row();
    return $result;
    }
 
    function join_relation($field_name , $related_table , $related_field_title)
    {
$related_primary_key = $this->get_primary_key($related_table);

if($related_primary_key !== false)
{
$unique_name = $this->_unique_join_name($field_name);
$this->db->join( $related_table.' as '.$unique_name , "$unique_name.$related_primary_key = {$this->table_name}.$field_name",'left');

$this->relation[$field_name] = array($field_name , $related_table , $related_field_title);

return true;
}
   
    return false;
    }
 
    function set_relation_n_n_field($field_info)
    { 
$this->relation_n_n[$field_info->field_name] = $field_info;
    }
 
    protected function _unique_join_name($field_name)
    {
    return 'j'.substr(md5($field_name),0,8); //This j is because is better for a string to begin with a letter and not with a number
    }

    protected function _unique_field_name($field_name)
    {
    return 's'.substr(md5($field_name),0,8); //This s is because is better for a string to begin with a letter and not with a number
    } 
 
    function get_relation_array($field_name , $related_table , $related_field_title, $where_clause, $order_by, $limit = null, $search_like = null)
    {
    $relation_array = array();
    $field_name_hash = $this->_unique_field_name($field_name);
   
    $related_primary_key = $this->get_primary_key($related_table);
   
    $select = "$related_table.$related_primary_key, ";
   
    if(strstr($related_field_title,'{'))
    {
    $related_field_title = str_replace(" ", "&nbsp;", $related_field_title);
    $select .= "CONCAT('".str_replace(array('{','}'),array("',COALESCE(",", ''),'"),str_replace("'","\\'",$related_field_title))."') as $field_name_hash";
    }
    else
    {
    $select .= "$related_table.$related_field_title as $field_name_hash";
    }
   
    $this->db->select($select,false);
    if($where_clause !== null)
    $this->db->where($where_clause);

    if($where_clause !== null)
    $this->db->where($where_clause);   

    if($limit !== null)
    $this->db->limit($limit);   
   
    if($search_like !== null)
    $this->db->having("$field_name_hash LIKE '%".$this->db->escape_like_str($search_like)."%'");
   
    $order_by !== null
    ? $this->db->order_by($order_by)
    : $this->db->order_by($field_name_hash);
   
    $results = $this->db->get($related_table)->result();
   
    foreach($results as $row)
    {
    $relation_array[$row->$related_primary_key] = $row->$field_name_hash;
    }
   
    return $relation_array;
    }
 
    function get_ajax_relation_array($search, $field_name , $related_table , $related_field_title, $where_clause, $order_by)
    { 
    return $this->get_relation_array($field_name , $related_table , $related_field_title, $where_clause, $order_by, 10 , $search);
    }
 
    function get_relation_total_rows($field_name , $related_table , $related_field_title, $where_clause)
    {
    if($where_clause !== null)
    $this->db->where($where_clause);
   
    return $this->db->get($related_table)->num_rows();
    }
 
    function get_relation_n_n_selection_array($primary_key_value, $field_info)
    {
    $select = "";   
    $related_field_title = $field_info->title_field_selection_table;
    $use_template = strpos($related_field_title,'{') !== false;;
    $field_name_hash = $this->_unique_field_name($related_field_title);
    if($use_template)
    {
    $related_field_title = str_replace(" ", "&nbsp;", $related_field_title);
    $select .= "CONCAT('".str_replace(array('{','}'),array("',COALESCE(",", ''),'"),str_replace("'","\\'",$related_field_title))."') as $field_name_hash";
    }
    else
    {
    $select .= "$related_field_title as $field_name_hash";
    }
    $this->db->select('*, '.$select,false);
   
    $selection_primary_key = $this->get_primary_key($field_info->selection_table);
   
    if(empty($field_info->priority_field_relation_table))
    {
    if(!$use_template){
    $this->db->order_by("{$field_info->selection_table}.{$field_info->title_field_selection_table}");
    }
    }
    else
    {
    $this->db->order_by("{$field_info->relation_table}.{$field_info->priority_field_relation_table}");
    }
    $this->db->where($field_info->primary_key_alias_to_this_table, $primary_key_value);
    $this->db->join(
    $field_info->selection_table,
    "{$field_info->relation_table}.{$field_info->primary_key_alias_to_selection_table} = {$field_info->selection_table}.{$selection_primary_key}"
    );
    $results = $this->db->get($field_info->relation_table)->result();
   
    $results_array = array();
    foreach($results as $row)
    {
    $results_array[$row->{$field_info->primary_key_alias_to_selection_table}] = $row->{$field_name_hash};
    }
   
    return $results_array;
    }
 
    function get_relation_n_n_unselected_array($field_info, $selected_values)
    {
    $use_where_clause = !empty($field_info->where_clause);
   
    $select = "";
    $related_field_title = $field_info->title_field_selection_table;
    $use_template = strpos($related_field_title,'{') !== false;
    $field_name_hash = $this->_unique_field_name($related_field_title);
   
    if($use_template)
    {
    $related_field_title = str_replace(" ", "&nbsp;", $related_field_title);
    $select .= "CONCAT('".str_replace(array('{','}'),array("',COALESCE(",", ''),'"),str_replace("'","\\'",$related_field_title))."') as $field_name_hash";
    }
    else
    {
    $select .= "$related_field_title as $field_name_hash";
    }
    $this->db->select('*, '.$select,false);
   
    if($use_where_clause){
    $this->db->where($field_info->where_clause);
    }
   
    $selection_primary_key = $this->get_primary_key($field_info->selection_table);
        if(!$use_template)
        $this->db->order_by("{$field_info->selection_table}.{$field_info->title_field_selection_table}");
        $results = $this->db->get($field_info->selection_table)->result();

        $results_array = array();
        foreach($results as $row)
        {
            if(!isset($selected_values[$row->$selection_primary_key]))
                $results_array[$row->$selection_primary_key] = $row->{$field_name_hash};
        }
     
        return $results_array;     
    }
 
    function db_relation_n_n_update($field_info, $post_data ,$main_primary_key)
    {
    $this->db->where($field_info->primary_key_alias_to_this_table, $main_primary_key);
    if(!empty($post_data))
    $this->db->where_not_in($field_info->primary_key_alias_to_selection_table , $post_data);
    $this->db->delete($field_info->relation_table);
   
    $counter = 0;
    if(!empty($post_data))
   
    foreach($post_data as $primary_key_value)
    {
$where_array = array(
    $field_info->primary_key_alias_to_this_table => $main_primary_key,
    $field_info->primary_key_alias_to_selection_table => $primary_key_value,
    );
   
    $this->db->where($where_array);
$count = $this->db->from($field_info->relation_table)->count_all_results();

if($count == 0)
{
if(!empty($field_info->priority_field_relation_table))
$where_array[$field_info->priority_field_relation_table] = $counter;

$this->db->insert($field_info->relation_table, $where_array);

}elseif($count >= 1 && !empty($field_info->priority_field_relation_table))
{
$this->db->update( $field_info->relation_table, array($field_info->priority_field_relation_table => $counter) , $where_array);
}

$counter++;
    }
    }
    }
 
    function db_relation_n_n_delete($field_info, $main_primary_key)
    {
    $this->db->where($field_info->primary_key_alias_to_this_table, $main_primary_key);
    $this->db->delete($field_info->relation_table);
    } 
 
    function get_field_types_basic_table()
    {
    $db_field_types = array();
    foreach($this->db->query("SHOW COLUMNS FROM `{$this->table_name}`")->result() as $db_field_type)
    {
    $type = explode("(",$db_field_type->Type);
    $db_type = $type[0];
   
    if(isset($type[1]))
    {
    if(substr($type[1],-1) == ')')
    {
    $length = substr($type[1],0,-1);
    }
    else
    {
    list($length) = explode(" ",$type[1]);
    $length = substr($length,0,-1);
    }
    }
    else
    {
    $length = '';
    }
    $db_field_types[$db_field_type->Field]['db_max_length'] = $length;
    $db_field_types[$db_field_type->Field]['db_type'] = $db_type;
    $db_field_types[$db_field_type->Field]['db_null'] = $db_field_type->Null == 'YES' ? true : false;
    $db_field_types[$db_field_type->Field]['db_extra'] = $db_field_type->Extra;
    }

    $results = $this->db->field_data($this->table_name);
    foreach($results as $num => $row)
    {
    $row = (array)$row;
    $results[$num] = (object)( array_merge($row, $db_field_types[$row['name']])  );
    }
   
    return $results;
    }
 
    function get_field_types($table_name)
    {
    $results = $this->db->field_data($table_name);
   
    return $results;
    }
 
    function db_update($post_array, $primary_key_value)
    {
    $primary_key_field = $this->get_primary_key();
    return $this->db->update($this->table_name,$post_array, array( $primary_key_field => $primary_key_value));
    } 
 
    function db_insert($post_array)
    {
    $insert = $this->db->insert($this->table_name,$post_array);
    if($insert)
    {
    return $this->db->insert_id();
    }
    return false;
    }
 
    function db_delete($primary_key_value)
    {
    $primary_key_field = $this->get_primary_key();
   
    if($primary_key_field === false)
    return false;
   
    $this->db->limit(1);
    $this->db->delete($this->table_name,array( $primary_key_field => $primary_key_value));
    if( $this->db->affected_rows() != 1)
    return false;
    else
    return true;
    }

    function db_file_delete($field_name, $filename)
    {
    if( $this->db->update($this->table_name,array($field_name => ''),array($field_name => $filename)) )
    {
    return true;
    }
    else
    {
    return false;
    }
    }
 
    function field_exists($field,$table_name = null)
    {
    if(empty($table_name))
    {
    $table_name = $this->table_name;
    }
    return $this->db->field_exists($field,$table_name);
    } 
 
    function get_primary_key($table_name = null)
    {
    if($table_name == null)
    {
    if(isset($this->primary_keys[$this->table_name]))
    {
    return $this->primary_keys[$this->table_name];
    }
   
    if(empty($this->primary_key))
    {
    $fields = $this->get_field_types_basic_table();
   
    foreach($fields as $field)
    {
    if($field->primary_key == 1)
    {
    return $field->name;
    }
    }
   
    return false;
    }
    else
    {
    return $this->primary_key;
    }
    }
    else
    {
    if(isset($this->primary_keys[$table_name]))
    {
    return $this->primary_keys[$table_name];
    }
   
    $fields = $this->get_field_types($table_name);
   
    foreach($fields as $field)
    {
    if($field->primary_key == 1)
    {
    return $field->name;
    }
    }
   
    return false;
    }
   
    }
 
    function escape_str($value)
    {
    return $this->db->escape_str($value);
    }

}

Lalu simpan dengan nama grocery_crud_model.php pada directory model, Nah penjelasannya akan dipraktekkan pada video berikut :


Apabila ada error pada controllerVerifyLogin.php coba untuk dianalisa mana yang salahnya dan bandingkan pada script dibawah ini yang benar :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class controllerVerifyLogin extends CI_Controller {

 function __construct()
 {
   parent::__construct();
   $this->load->model('modelUser','',TRUE);
 }

 function index()
 {
   //This method will have the credentials validation
   $this->load->library('form_validation');

   $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
   $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_database');

   if($this->form_validation->run() == FALSE)
   {
     //Field validation failed.  User redirected to login page
     $this->load->view('viewLogin');
   }
   else
   {
     //Go to private area
     redirect('controllerAuthorized', 'refresh');
   }

 }

 function check_database($password)
 {
   //Field validation succeeded.  Validate against database
   $username = $this->input->post('username');

   //query the database
   $result = $this->modelUser->login($username, $password);

   if($result)
   {
     $sess_array = array();
     foreach($result as $row)
     {
       $sess_array = array(
         'id' => $row->id,
         'username' => $row->username,
       );
       $this->session->set_userdata('logged_in', $sess_array);
     }
     return TRUE;
   }
   else
   {
     $this->form_validation->set_message('check_database', 'Invalid username or password');
     return false;
   }
 }
}
?>


Apa bila masih ada yang error pada controllerAuthorized.php , cobalah analisa mana yang salah dan bandingkan dengan script yang benar dibawah ini :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
session_start(); //we need to call PHP's session object to access it through CI
class controllerAuthorized extends CI_Controller {

 function __construct()
    {
        parent::__construct();

        /* Standard Libraries of codeigniter are required */
        $this->load->database();
        $this->load->helper('url');
        /* ------------------ */

        $this->load->library('grocery_CRUD');

    }


/*==============================================================================================================*/

public function index(){
   if($this->session->userdata('logged_in')) {
     $session_data = $this->session->userdata('logged_in');
/*$data['username'] = $session_data['username'];
     $this->load->view('viewAuthorized', $data);*/

/* ## Filter user menggunakan username */
if($session_data['username']=='admin'){

$crud = new grocery_CRUD();
/*$crud->set_theme('datatables');*/
$crud->set_table('tbl_mhs');
$crud->set_subject('Data Mahasiswa');
$crud->unset_columns('id_mhs');

//DATA PENAMAAN ALIAS TABLE
    $crud->display_as('nama_mhs','Nama')
->display_as('nim_mhs','NIM')
->display_as('tempat_lahir','Tempat Lahir')
->display_as('tanggal_lahir','Tanggal Lahir')
->display_as('alamat_asal','Alamat Asal')
->display_as('alamat_sekarang','Alamat Sekarang')
->display_as('telp','Telp/HP')
->display_as('email','Email')
->display_as('kelas_mhs','Kelas')
->display_as('dosen_wali','Dosen Wali')
->display_as('jurusan','Jurusan')
->display_as('fakultas','Fakultas');

$crud->set_relation('kelas_mhs','tbl_kelas','nama_kelas')
->set_relation('dosen_wali','tbl_dosen','nama_dosen')
->set_relation('jurusan','tbl_jurusan','{nama_jur} -- {tingkatan}')
->set_relation('fakultas','tbl_fakultas','nama_fakultas');

$crud->fields('nama_mhs','nim_mhs','tempat_lahir','tanggal_lahir','alamat_asal','alamat_sekarang',
  'telp','email','dosen_wali','kelas_mhs','jurusan','fakultas')
->required_fields('fakultas','jurusan','dosen_wali','kelas_mhs','nama_mhs');

    $output = $crud->render();
    $this->groceryOutput($output);
}//End if filter user
else{
//Jika bukan user admin
      redirect('controllerAuthorized/userPage', 'refresh');
}
   }
   else{
     //If no session, redirect to login page
     redirect('controllerLogin', 'refresh');
   }
}


public function dataKelas(){
   if($this->session->userdata('logged_in')) {
     $session_data = $this->session->userdata('logged_in');
/*$data['username'] = $session_data['username'];
     $this->load->view('viewAuthorized', $data);*/

/* ## Filter user menggunakan username */
if($session_data['username']=='admin'){

$crud = new grocery_CRUD();
/*$crud->set_theme('datatables');*/
$crud->set_table('tbl_kelas');
$crud->set_subject('Data Kelas');
$crud->unset_columns('id_kelas');

//DATA PENAMAAN ALIAS TABLE
    $crud->display_as('nama_kelas','Deskripsi Kelas')
->display_as('kode_kelas','Kode Kelas')
->display_as('dosen_wali','Dosen Wali')
->display_as('jurusan','Jurusan')
->display_as('fakultas','Fakultas');

$crud->set_relation('dosen_wali','tbl_dosen','nama_dosen')
->set_relation('jurusan','tbl_jurusan','{nama_jur} -- {tingkatan}')
->set_relation('fakultas','tbl_fakultas','nama_fakultas');

$crud->fields('nama_kelas','kode_kelas','dosen_wali','fakultas','jurusan')
->required_fields('nama_kelas','kode_kelas','dosen_wali','fakultas','jurusan');

    $output = $crud->render();
    $this->groceryOutput($output);
}//End if filter user
else{
//Jika bukan user admin
      redirect('controllerAuthorized/userPage', 'refresh');
}
   }
   else{
     //If no session, redirect to login page
     redirect('controllerLogin', 'refresh');
   }
}


public function dataDosen(){
   if($this->session->userdata('logged_in')) {
     $session_data = $this->session->userdata('logged_in');
/*$data['username'] = $session_data['username'];
     $this->load->view('viewAuthorized', $data);*/

/* ## Filter user menggunakan username */
if($session_data['username']=='admin'){

$crud = new grocery_CRUD();
/*$crud->set_theme('datatables');*/
$crud->set_table('tbl_dosen');
$crud->set_subject('Data Dosen');
$crud->unset_columns('id_dosen');

//DATA PENAMAAN ALIAS TABLE
    $crud->display_as('nama_dosen','Nama Dosen')
->display_as('nip_dosen','NIP Dosen')
->display_as('jurusan','Jurusan');

$crud->set_relation('jurusan','tbl_jurusan','{nama_jur} -- {tingkatan}');

$crud->fields('nama_dosen','nip_dosen','jurusan')
->required_fields('nama_dosen','nip_dosen','jurusan');

    $output = $crud->render();
    $this->groceryOutput($output);
}//End if filter user
else{
//Jika bukan user admin
      redirect('controllerAuthorized/userPage', 'refresh');
}
   }
   else{
     //If no session, redirect to login page
     redirect('controllerLogin', 'refresh');
   }
}


public function dataJurusan(){
   if($this->session->userdata('logged_in')) {
     $session_data = $this->session->userdata('logged_in');
/*$data['username'] = $session_data['username'];
     $this->load->view('viewAuthorized', $data);*/

/* ## Filter user menggunakan username */
if($session_data['username']=='admin'){

$crud = new grocery_CRUD();
/*$crud->set_theme('datatables');*/
$crud->set_table('tbl_jurusan');
$crud->set_subject('Data Jurusan');
$crud->unset_columns('id_jur');

//DATA PENAMAAN ALIAS TABLE
    $crud->display_as('nama_jur','Jurusan')
->display_as('kode_jur','Kode Jurusan')
->display_as('tingkatan','Tingkatan')
->display_as('fakultas','Fakultas');

$crud->set_relation('fakultas','tbl_fakultas','nama_fakultas');

$crud->fields('nama_jur','kode_jur','tingkatan','fakultas')
->required_fields('nama_jur','kode_jur','tingkatan','fakultas');

    $output = $crud->render();
    $this->groceryOutput($output);
}//End if filter user
else{
//Jika bukan user admin
      redirect('controllerAuthorized/userPage', 'refresh');
}
   }
   else{
     //If no session, redirect to login page
     redirect('controllerLogin', 'refresh');
   }
}


public function dataFakultas(){
   if($this->session->userdata('logged_in')) {
     $session_data = $this->session->userdata('logged_in');
/*$data['username'] = $session_data['username'];
     $this->load->view('viewAuthorized', $data);*/

/* ## Filter user menggunakan username */
if($session_data['username']=='admin'){

$crud = new grocery_CRUD();
$crud->set_table('tbl_fakultas');
$crud->set_subject('Data Fakultas');
$crud->columns('id_fak','nama_fakultas');

//DATA PENAMAAN ALIAS TABLE
    $crud->display_as('id_fak','Nomor')
->display_as('nama_fakultas','Fakultas');

$crud->fields('nama_fakultas')
->required_fields('nama_fakultas');

    $output = $crud->render();
    $this->groceryOutput($output);
}//End if filter user
else{
//Jika bukan user admin
      redirect('controllerAuthorized/userPage', 'refresh');
}
   }
   else{
     //If no session, redirect to login page
     redirect('controllerLogin', 'refresh');
   }
}


public function userPage(){
   if($this->session->userdata('logged_in')) {
     $session_data = $this->session->userdata('logged_in');
/*$data['username'] = $session_data['username'];
     $this->load->view('viewAuthorized', $data);*/

/* ## Filter user menggunakan username */
if($session_data['username']=='user'){

$crud = new grocery_CRUD();
/*$crud->set_theme('datatables');*/
$crud->set_table('tbl_mhs');
$crud->set_subject('Data Mahasiswa');
$crud->unset_columns('id_mhs');
$crud->unset_add();
$crud->unset_edit();
$crud->unset_delete();
$crud->unset_print();
$crud->unset_export();

//DATA PENAMAAN ALIAS TABLE
    $crud->display_as('nama_mhs','Nama')
->display_as('nim_mhs','NIM')
->display_as('tempat_lahir','Tempat Lahir')
->display_as('tanggal_lahir','Tanggal Lahir')
->display_as('alamat_asal','Alamat Asal')
->display_as('alamat_sekarang','Alamat Sekarang')
->display_as('telp','Telp/HP')
->display_as('email','Email')
->display_as('kelas_mhs','Kelas')
->display_as('dosen_wali','Dosen Wali')
->display_as('jurusan','Jurusan')
->display_as('fakultas','Fakultas');

$crud->set_relation('kelas_mhs','tbl_kelas','nama_kelas')
->set_relation('dosen_wali','tbl_dosen','nama_dosen')
->set_relation('jurusan','tbl_jurusan','{nama_jur} -- {tingkatan}')
->set_relation('fakultas','tbl_fakultas','nama_fakultas');

$crud->fields('nama_mhs','nim_mhs','tempat_lahir','tanggal_lahir','alamat_asal','alamat_sekarang',
  'telp','email','dosen_wali','kelas_mhs','jurusan','fakultas')
->required_fields('fakultas','jurusan','dosen_wali','kelas_mhs','nama_mhs');

    $output = $crud->render();
    $this->groceryOutputUser($output);
}//End if filter user
else{
//Jika bukan user admin
      redirect('controllerAuthorized/noPrivilege', 'refresh');
}
   }
   else{
     //If no session, redirect to login page
     redirect('controllerLogin', 'refresh');
   }
}


public function logout(){
   $this->session->unset_userdata('logged_in');
   session_destroy();
   redirect('controllerAuthorized', 'refresh');
  }

function groceryOutput($output = null){
        $this->load->view('viewAuthorized.php',$output);   
    }

function groceryOutputUser($output = null){
        $this->load->view('viewUser.php',$output);   
    }
}

?>

Apabila masih ada yang salah pada viewAuthorized.php , cobalah untuk di analisa dan bandingkan dengan script yang benar dibawah ini :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
<title>Aplikasi Data Mahasiswa</title>
 
<?php 
foreach($css_files as $file): ?>
    <link type="text/css" rel="stylesheet" href="<?php echo $file; ?>" />
 
<?php endforeach; ?>
<?php foreach($js_files as $file): ?>
 
    <script src="<?php echo $file; ?>"></script>
<?php endforeach; ?>
 
<style type='text/css'>
body{
    font-family: Arial;
    font-size: 14px;
}
a{
    color: blue;;
    text-decoration: none;
    font-size: 14px;
}
a:hover{
    text-decoration: underline;
}

.user-area{
text-align: right;
padding:5px 40px 0 0;
}
.user-area span{
color: #fd7e00;
text-decoration: none;
font-weight: bold;
font-size:16px;
}
.user-area a{
color: #1ABC9C;
text-decoration: none;
font-weight: bold;
font-size:16px;
}
.user-area a:hover{
text-decoration: underline;
}
.menu-item{
text-align: left;
padding:2px 0 0 30px;
}
.menu-item a{
color:#EA912A;
text-decoration: none;
font-size:16px;
font-weight: bold;
}
.menu-item a:hover{
text-decoration: underline;
color:#1ABC9C;
}
</style>

<script type="text/javascript">
function popup (name,width,height) {  
     var options = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width="+width+",height="+height;  
     Cal2=window.open(name,"popup",options);  
}     
</script> 
</head>
<body>

<!-- Beginning header -->
<div class="user-area">
    <span>&lt;ADMINISTRATOR&gt;</span> <a href="<?php echo site_url('controllerAuthorized/logout')?>">&lt;LOGOUT&gt;</a>
</div>

    <div class="menu-item">
        <a href="<?php echo site_url('controllerAuthorized')?>">Data Mahasiswa</a> | 
<a href="<?php echo site_url('controllerAuthorized/dataKelas')?>">Data Kelas</a> | 
<a href="<?php echo site_url('controllerAuthorized/dataDosen')?>">Data Dosen</a> | 
<a href="<?php echo site_url('controllerAuthorized/dataJurusan')?>">Data Jurusan</a> | 
<a href="<?php echo site_url('controllerAuthorized/dataFakultas')?>">Data Fakultas</a>
 
<!--<a href="JavaScript:popup('<?php echo site_url('controllerAuthorized/tabel_item_desk')?>',800,400)">Item Number</a> |
<a href="JavaScript:popup('<?php echo site_url('controllerAuthorized/tabel_operator')?>',1024,768)">Item Number</a>-->
    </div>
<!-- End of header-->

    <div style='height:20px;'></div>  
    
<div>
    <?php echo $output; ?>
</div>

<?php
if(isset($dropdown_setup)) {
$this->load->view('dependent_dropdown', $dropdown_setup);
}
?>
</body>
</html>


Apabila ada pertanyaan silahkan tulis dikolom komentar.

Untuk kehadiran, jangan lupa like, komen, dan subscribe. Komen Nama dan Kelas ya, untuk kehadiran kalian. Ok terimakasih, semoga kalian jadi orang yang sukses, Aamiin