Jangan lupa untuk subscribe, like, dan pada kolom komentar tulis NPM dan Nama ya
Tampilkan postingan dengan label Kampus dengan Harga Terjangkau. Tampilkan semua postingan
Tampilkan postingan dengan label Kampus dengan Harga Terjangkau. Tampilkan semua postingan
Selasa, 15 September 2020
Pembuatan Web Sesi 6
Pada postingan kali ini adalah pembahasan mengenai login dan logout pada website. Penasaran bagaimana cara membuatnya? simak video berikut ini :
Jangan lupa untuk subscribe, like, dan pada kolom komentar tulis NPM dan Nama ya
Jangan lupa untuk subscribe, like, dan pada kolom komentar tulis NPM dan Nama ya
Jumat, 11 September 2020
Pembuatan Web Sesi 4
Pada postingan kali ini, adalah membuat Pembuatan Form Edit dan Aksi Edit, agar data yang tampil pada Web dan di Database bisa diubah, penasaran bagaimana cara membuatnya?
Mari simak video berikut ini :
Jangan lupa untuk Like, Subscribe, dan apabila ada pertanyaan silahkan tulis di kolom komentar ya
Mari simak video berikut ini :
Sabtu, 15 Agustus 2020
Seminar SMK Insan Mulia Bekasi dengan STMIK Bani Saleh (Dokumentasi)
Ini adalah dokumentasi mengenai seminar SMK Insan Mulia Bekasi dengan STMIK Bani Saleh yang bertema "How Be Your Secure Data by Cisco" :
Link Youtube :
https://www.youtube.com/watch?v=fnm8OKNecTY&t=36s
Video Youtube :
Jumat, 14 Agustus 2020
Berbincang dengan Mahasiswa STMIK Bani Saleh Peraih Beasiswa
Hello, bagi kamu yang sedang kuliah di STMIK Bani Saleh, ingin tau cara mendapatkan Beasiswa, dan untuk kamu yang belum kuliah tapi ingin kuliah dengan biaya Beasiswa? Simak video dibawah ini :
Link Youtube : https://www.youtube.com/watch?v=lB8Qc7kLz2E&t=568s
Informasi lebih lanjut, bisa DM di Instagram official.stmikbanisaleh
Kamis, 13 Agustus 2020
Be.Be.Em "Bincang Bareng Mahasiswa Beasiswa Bidikmisi"
Be.Be.Em
"Bincang Bareng Mahasiswa Beasiswa Bidikmisi"
Tips dan Trik Raih Beasiswa Bidikmisi/ KIP Kuliah
.
.
Waktu Pelaksanan
Jumat, 14 Agustus 2020
14.00 - 16.00 Wib
Live Via
Youtube : https://youtu.be/6T6lH9hipSE
Google Meet : https://meet.google.com/dhc-afqg-jyp
& Live Instagram
.
.
Speakers :
Dara Putri Oktiara
Mahasiswa STMIK Bani Saleh dan & Jurnalis BIDIKIN
Moderator:
Lesa Lestiawati
.
.
.
For more Information:
Whatswapp 0811 1453 633
Selasa, 04 Agustus 2020
Seminar Kolaborasi SMK Insan Mulia Bekasi dengan STMIK Bani Saleh Bekasi
Seminar ini merupakan perwujudan dari kerjasama kampus STMIK Bani Saleh dengan SMK Insan Mulia berupa berbagi ilmu pengetahuan, adapun pelaksanaanya yang insya Allah akan diselenggarakan tanggal 8 Agustus 2020 di SMK Insan Mulia. Materi yang dibahas menyandang vendor terkenal dikalangan para praktisi IT. Yaitu dengan nama Vendor Cisco. Ya,,,, judul seminar kali ini adalah How To Be Your Secure Data by Cisco.
Penasaran dengan materinya???
Ayo klik -> DAFTAR
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 ^^
Selasa, 21 Juli 2020
Hasil Karya Mahasiswa Web Apotek
Berikut ini adalah cuplikan video Hasil Karya Mahasiswa Berupa Web Apotek :
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
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
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(" "," ",$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(" ", " ", $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(" ", " ", $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(" ", " ", $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(" ", " ", $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);
}
}
?>
<?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(" "," ",$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(" ", " ", $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(" ", " ", $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(" ", " ", $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(" ", " ", $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><ADMINISTRATOR></span> <a href="<?php echo site_url('controllerAuthorized/logout')?>"><LOGOUT></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
Selasa, 30 Juni 2020
Pelatihan PEKERTI Dozen Hari Keempat (Penutup)
Pada hari keempat ini sekaligus penutup semua peserta didik tampil untuk bagaimana memperagakan cara mengajar yang baik. Dan mohon maaf pada hari keempat saya tidak merekam, karena saya sedang jadi Driver mengemudi mobil. Beginilah momen kegiatan pada hari keempat sampai pada acara penutup, mari simak video kegiatannya :
Presentasi Peserta Didik Pada Kelompok 4 dan Reviewer
Penutup Acara
Bagi yang sudah mampir pada blog ataupun yotube ini, jangan lupa like, komen, dan subscribe ya. Semoga video edukasi ini bermanfaat bagi anda para Dozen yang akan atau menjadi Narasumber untuk kegiatan PEKERTI ini, terimakasih.
Sabtu, 27 Juni 2020
Pelatihan PEKERTI Dozen Hari Kedua
Adapun personil dari STMIK Bani Saleh yang mengikuti kegiatan PEKERTI adalah :
Adapun materi dalam hari kedua adalah sebagai berikut :
Sesi Pertama :
Sesi Kedua :
Adapun materi dalam hari kedua adalah sebagai berikut :
Sesi Pertama :
Sesi Kedua :
Sesi Ketiga :
Sesi Keempat :
Demikianlah materi yang dipaparkan oleh para ahli untuk hari kedua. Ok, jangan lupa like, komen, dan subscribe ya. Semoga bermanfaat
Senin, 22 Juni 2020
Pengenalan Router Mikrotik RB941-2ND
Apa itu mikrotik? Mikrotik merupakan sistem operasi Linux base yang digunakan untuk network router. Mikrotik didesain untuk memberi kemudahan bagi para penggunanya. Sistem administrasinya bisa diterapkan dengan menggunakan Windows Application (Winbox). Selain itu, proses instalasi juga bisa dilakukan dengan mengunakan Standard Computer. PC yang digunakan untuk router mikrotik juga tidak membutuhkan resource yang besar untuk penggunaannya. Karena digunakan untuk satu fungsi saja, misalnya gateway dan sebagainya. Tentu untuk router mikrotiknya juga harus dipilih yang paling memadai agar kinerja tidak terganggu. Anda yang ingin belajar mikrotik lebih jauh, simak saja ulasan berikut.
Pengertian Mikrotik
Secara umum, mikrotik merupakan sistem operasi dan perangkat lunak yang bisa digunakan untuk menjadikan sebuah PC atau komputer untuk router network yang handal. Didalam routernya tadi, PC juga bisa mencangkup banyak fitur unggulan seperti IP Network jaringan wireless, provider warnet dan hotspot. Jadi, mikrotik benar-benar membantu para penggunanya.
Mikrotik memang didesaik khusus untuk memudahkan berbagai keperluan jaringan komputer. Sebut saja seperti merancang dan juga membangun sebuah sistem jaringan komputer skala kecil hingga kompleks. Dewasa ini, usaha warnet kebanyakan menggunakan mikrotik untuk routernya. Hasilnya, tidak sedikit dari pengusaha tersebut merasa puas dengan kinerja mikrotik tersebut.
Terlebih dengan kemajuan dunia teknologi yang didalam mikrotiknya sendiri ada banyak fitur tambahan yang disediakan. Fitur tersebut yang membuat mikrotik semakin diminati penggunanya. Contoh fitur tambahannya adalah:
- Ipsec
- Caching DNS Client
- Routing Static Routing
- Firewall dan NAT
- Web Proxy
- UpnP
- SNMP
- MNDP
- Monitoring atau accounting
- Tools dan masih banyak fitur lainnya
Perbedaan mikrotik dengan sistem operasi yang lawas adalah kelebihan fitur yang telah disebutkan tadi. Tidak heran mikrotik menjadi sistem operasi paling ringan dan juga sederhana. Jadi wajar jika banyak usaha warnet menggunakan mikrotik. Tidak sedikit orang yang bingung perbedaan mikrotik dan router. Perlu Anda tahu bahwa router merupakan perngkat yang menjembatani ua jaringan.
Sedangkan mikrotik adalah sistem operasi yang masuk kedalam bagian open source system namun tidak termasuk software gratisan. Mikrotik biasanya banyak dipakai untuk ISP, warnet, toko game online hingga provider hotspot. Mikrotik mempunyai banyak fasilitas menarik, contohnya hotspot for plug and play access, statefull firewall dan masih banyak lainnya.
Mikrotik yang tersedia di pasaran tidak hanya satu jenis saja. Perusahaan mikrotik mengembangkan dua produk mikrotik yang bernama Mikrotik RouterOS dan RouterBoard. Cara setting mikrotik tersebut berbeda sesuai kebutuhannya. Berikut penjelasan dua jenis mikrotik tersebut:
1. Mikrotik RouterOS
Jenis mikrotik ini adalah sistem operasi basis UNIX yang menjadikan komputer biasa untuk menyediakan fitur seperti hotspot, brigde, proxy server, router, firewall dan masih banyak lainnya. Settingnya sangat mudah sehingga tidak heran banyak orang yang menggunakannya untuk router.
2. Routerboard
Jika yang sebelumnya adalah sistem operasi perangkat lunak, berbeda dengan Routerboard. Mikrotik ini merupakan perangkat keras jaringan yang dikembangkan perusahaan mikrotik. Routerboard diinstal sistem operasi RouterOS. Meskipun bentuknya adalah perangkat keras, tetap saja bentuknya cukup praktis dan juga sangat kecil ukurannya.
Routerboard ini terdiri dari berbagai komponen. Sebut saja seperti RAM, ROM, memory flash dan juga prosessor. Harga mikrotik jenis ini dipasaran juga cukup terjangkau. Dimana Anda harus merogeh kocek sebesar 700 ribu hingga 800 ribu untuk mendapatkannya. Untuk cara settingnya juga cukup mudah namun tidak semudah jenis mikrotik yang sebelumnya.
Fungsi Mikrotik
Setelah paham apa itu mikrotik, Anda pasti penasaran apa fungsi mikrotik sehingga sangat banyak dipakai dewasa ini. Fungsi perangkat ini di jaringan sangatlah penting. Berikut 6 fungsi utama mikrotik yang harus Anda ketahui:
1. Fungsi utama mikrotik adalah untuk memblokir situs yang mengandung konten yang dilarang menurut undang-undang. Dengan adanya mikrotik, tentu ikut mendukung program penggunaan internet positif untuk konten yang tidak sesuai.
2. Mikrotik berfungsi untuk mengatur serta mengkonfigurasikan LAN menggunakan PC Mikrotik Router OS dan perangkat keras yang rendah
3. Fungsi adanya mikrotik adalah untuk mengatur jaringan internet yang bisa dilakukan secara terpusat sehingga admin mudah untuk melakukan pengelolaan data
4. Mikrotik bisa digunakan untuk billing hotspot yang mudah melakukan konfigurasi dan pembagian bandwith untuk setiap jaringan
5. Mikrotik bisa difungsikan untuk perangkat pembuatan PPPoE Servers
6. Mikrotik bisa digunakan untuk memisahkan bandwith traffic internasional dan juga lokal
Penutup
Itulah informasi mengenai mikrotik yang harus Anda ketahui. Jadi sekarang sudah pahamkan apa itu mikrotik, fungsi dan jenis didalamnya? Perangkat ini memang sangat penting, khususnya untuk Anda yang ingin membangun sebuah jaringan, baik warnet ataupun sebagainya. banyak panduan untuk belajar perangkat mikrotik yang bisa dipakai sehingga menambah kefasihan Anda untuk perangkat ini.
Terlepas dari artikel seputar mikrotik, jangan lupa untuk melihat berbagai promo hosting dan domain terbaru dari Qwords.com yang bisa Anda dapatkan mulai dari Rp20 ribuan per bulan. Untuk Anda yang sedang membangun bisnis, Qwords.com juga menyediakan layanan MailToGo sebagai platform email marketing unggulan dengan fitur unlimited email list, pilihan beragam template powerfull, serta statistik yang membantu Anda melacak efektifitaas campaign.
Pada video dibawah ini adalah cara masuk Akses ke Mikrotik RB941-2ND, dimana winbox nya harus menggunakan 3.x
Kalo kalian mau minta Winbox, maka bisa tulis dikolom komentar.
Untuk kehadirannya, jangan lupa like, subscribe, dan tulis di kolom komentar berupa nama dan kelas. Terimakasih
Langganan:
Postingan (Atom)