Senin, 27 Maret 2017

Fungsi login dan registrasi pada template carkon

Haii..
kali ini saya akan menjelaskan tentang login dan registrasi tapi sudah menggunakan template untuk aplikasi carkon.
Untuk halaman awalnya seperti ini. Dan fungsionalitas yang ada masih bisa login dan registrasi saja.



Nah, sekarang langsung aja kita ke kodingannya..
==controller/registrasi.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Registrasi extends CI_Controller{
                public function __construct()
                {
                                parent::__construct();
                                $this->load->model('muser','mu');         
                }
                public function index(){
                                $this->load->view('sidebar');
                                $this->load->view('vregistrasi');
                }
                public function daftar()
                {
                                if($this->input->post('btndaftar') == 'Daftar')
                                {
                                                $username = $this->input->post('username');
                                                $password = $this->input->post('password');
                                                $nama = $this->input->post('nama');
                                                $email = $this->input->post('email');
                                                $notelp = $this->input->post('notelp');
                               
                                                $this->form_validation->set_rules('username', 'Username', 'required');
                                                $this->form_validation->set_rules('password', 'Password', 'required');
                                                $this->form_validation->set_rules('nama', 'Nama', 'required');
                                                $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
                                                $this->form_validation->set_rules('notelp', 'No Telp', 'required|numeric');
                                               
                                                if ($this->form_validation->run() == FALSE)
                                                {
                                                                $this->load->view('sidebar');
                                                                $this->load->view('vregistrasi');
                                                }
                                                else
                                                {
                                                                               
                                                $this->mu->add($username, $password, $nama, $email, $notelp);                                                                          redirect('registrasi/registrasi_user','refresh');
                                                }
                                }
                }
                public function registrasi_user()
                {
                                $this->load->view('sidebar');
                                echo "<center> DATA BERHASIL DISIMPAN </center>";
                }
}
===Controller/loginAdmin.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class LoginAdmin extends CI_Controller{
                public function __construct()
                {
                                parent::__construct();
                               
                                $this->load->model('muser','mu');
                                $this->load->model('admin');
                }
                public function index(){
                                $this->load->view('sidebar');
                                $this->load->view('vlogin');
                }
                public function login_process()
                                {
                                                $this->load->view('sidebar');
                                                if($this->input->post('btnlogin') == 'Login')
                                                {
                                                                $username = $this->input->post('username');
                                                                $password = $this->input->post('password');
                                                               
                                                                $this->form_validation->set_rules('username', 'Username', 'required');
                                                                $this->form_validation->set_rules('password', 'Password', 'required');
                                                               
                                                                if ($this->form_validation->run() == FALSE)
                                                                {
                                                                                $this->load->view('vlogin');
                                                                }                             
                                                                elseif($this->admin->cek_account($username,$password)){
                                                                                $this->session->set_userdata('username',$username);
                                                                                $this->session->set_userdata('level','member');                                                                                                                              $this->session->set_userdata('isLogin',1);           
                                                                                redirect('cmember','refresh');
                                                                                }else{
                                                                                                echo "<center >user tidak ditemukan <center>";
                                                                                }
                                                                }
                                                }
Controller/c_member.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Cmember extends CI_Controller {
                public function __construct()
                {
                                parent::__construct();
                                $this->load->model('muser','mu');
                }
                public function search_keyword()
    {
        $keyword    =   $this->input->post('keyword');
        $data['muser']    =   $this->mu->search($keyword);
                                $this->load->view('side');
        $this->load->view("vmember", $data);
    }
               
               
                public function index()
                {
                                $this->load->view('side');
                                $this->load->model("muser");
                                $data["muser"]= $this->muser->ambilData()->result();
                                $this->load->view("vmember", $data);
                }
               
                public function list_user($offset = 0)
                {             
                                $limit = 2;
                                if(empty($offset)){ $offset = 0;}
                               
                                $config['base_url'] = 'http://localhost/reg/cmember/list_user';
                                $config['total_rows'] = $this->mu->num_rows_user();
                                $config['per_page'] = $limit;
                                $config['uri_segment'] = 3;
                               
                                $this->pagination->initialize($config);                    
                                $data['pagelink'] = $this->pagination->create_links();
                                $data['muser'] = $this->mu->get_all_user($limit,$offset);
                                $this->load->view('side');
                                $this->load->view('vmember',$data);   
                }
                public function logout(){
                                $this->session->sess_destroy();
                                redirect('loginadmin');
                }
                function delete($id_user){
                                $this->mu->delete($id_user);
                                redirect('cmember');
                }
==Controller/home.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller {
                public function index()
                {
                                $this->load->view('sidebar');
                                $this->load->view('home');
                }
}

Kemudian utntuk di modelnya ada 2 kodingan, yaitu untuk admin dan user:
===models/admin.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Admin extends CI_Model {
                public function __construct()
                {
                                parent::__construct();
                }             
                public function cek_account($username,$password)
                {
$this->db->where('username',$username);                      
$this->db->where('password',$password);        
$query = $this->db->get('admin');
                                if($query->num_rows() > 0)
                                { return TRUE;
                                }else{
                                                return FALSE;     } }
models/muser.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Muser extends CI_Model {
                public function __construct()
                {
                                parent::__construct();
                }
                public function search($keyword)
    {
        $this->db->like('username',$keyword);
        $query  =   $this->db->get('user');
        return $query->result();
    }
                public function add($username, $password, $nama, $email, $notelp)
                {
                                $data = array(
                                   'username' => $username ,
                                   'password' => $password ,
                                   'nama' => $nama ,
                                   'email' => $email,
                                   'notelp' => $notelp,
                                );
                                $this->db->insert('user', $data);
                }
               
                public function ambilData(){
                                return $this->db->get("user");
                }
                public function update($username, $password, $nama, $email, $notelp)
                {
                                $data = array(
                                   'password' => $password ,
                                   'nama' => $nama ,
                                   'email' => $email,
                                   'notelp' => $notelp
                                );
                                $this->db->where('username', $username);
                                $this->db->update('user', $data);
                }
                public function update_no_pass($username, $nama, $email, $notelp)
                {
                                $data = array(
                                   'nama' => $nama ,
                                   'email' => $email,
                                   'notelp' => $notelp
                                );

                                $this->db->where('username', $username);
                                $this->db->update('user', $data);
                }
                public function delete($id_user)
                {
                                $this->db->delete('user', array('id' => $id_user));
                }
                public function cek_username($str)
                {
                                $this->db->where('username',$str);
                                $query = $this->db->get('user');
                                if($query->num_rows() > 0)
                                {
                                                return TRUE;
                                }else{
                                                return FALSE;
                                }
                }
                public function cek_account($username,$password)
                {
                                $this->db->where('username',$username);
                                $this->db->where('password',$password);
                                $query = $this->db->get('user');              
                                if($query->num_rows() > 0)
                                {
                                                return TRUE;
                                }else{
                                                return FALSE;
                                }
                }
                public function get_all_user($limit,$offset)
                {
                                return $this->db->get('user',$limit,$offset)->result();
                }
                public function get_user_by($id_user)
                {
                                $this->db->where('id',$id_user);
                                return $this->db->get('user')->row();
                }
                public function get_user_byusername($username)
                {
                                $this->db->where('username',$username);
                                return $this->db->get('user')->row();
                }             
                public function num_rows_user()
                {
                                return $this->db->get('user')->num_rows();
                }
}


Berikut tampilan untuk registrasi


view registrasi

Setelah registrasi maka muncul view berikut:
view form_success

Selanjutnya untuk melihat daftar user hanya admin yg bisa login


view loginAdmin





Disini ada fungsi cari, dimana user dapat ditemukan dengan memasukkan keyword ke dalam kotak search


Dan ini tampilan pagination list data user. 

Sabtu, 09 April 2016

Malamm..
Disini saya akan memposting tentang eksepsi pada java, sebagai Tugas Akhir dari Praktikum Alpro Lanjut.
Cekidot..

Eksepsi, apa itu?
Eksepsi merupakan cara yang dipakai jika terjadi kesalahan pada saat menjalankan program tanpa harus menghentikan program tersebut.
Misal nih, ada suatu bilangan yang dibagi dengan 0 pasti menghasilkan jawaban yang tidak terdefenisi, dan akan membuat program menjadi error. Jika terjadi error karena eksepsi maka program akan otomatis terhenti. Nah, untuk menangani masalah tersebut dimana program terhenti, maka pada pemrograman java dikenal penanganan eksepsi. 
Contoh sederhananya yaitu dengan menggunakan statement  try dan catch. Secara default program dijalankan pada statement try namun jika terjadi eksepsi maka catch yang selanjutnya akan dijalankan.

Bentuk Umum:
try
{
    //menuliskan source code yang kiranya berpotensi menimbulkan eksepsi
}
catch(Exception namaException)
{
    namaException.getMessage() ;
}


Itulah yang bisa saya jelaskan ttg eksepsi. Saya sadari penjelasannya masih sangat kurang karna saya sendiri masih belum terlalu paham ttg eksepsi, dan masih butuh latihan lagi

Sekian.. semoga bermanfaat:)

Sabtu, 02 April 2016

TA8_6701154183_GitaVhanieAdisty_D3MI-39-03

RESUME ALPRO 

ABSTRACT CLASS DAN INTERFACE


Disini saya akan membahas secara singkat tentang Abstract Class dan Interface yang berada dalam ranah bahasa Pemrograman Java. Resume ini merupakan tugas dari Pak Reza sebagai tugas akhir praktikum alpro lanjut. So, lets read!

Yang pertama kali harus kita ketahui, bahwa Abstract Class dan Interface merupakan bentuk khusus dari pewarisan (inheritance). Inheritance??? Apa itu?

Review sedikit yaa...
Pewarisan (Inheritance) merupakan sifat dalam bahasa berorientasi objek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain. Pewarisan memungkinkan kita untuk mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan dilakukan secara bertingkat-tingkat, sehingga semakin ke bawah maka kelas tersebut semakin spesifik
Misalnya ada kelas A, maka kita dapat membentuk kelas-kelas turunan dari kelas A tersebut (contoh kelas B) yang mewarisi sifat-sifat yang terkandung dalam kelas A. Dalam proses pembuatan kelas turunan tersebut, kita dapat menambahkan sifat dan perilaku baru ke dalam kelas B, yang sebelumnya tidak dimiliki dalam kelas A. Dalam pemrograman java, kelas induk dinamakan dengan superclass dan kelas turunan dinamakan dengan subclass. Untuk membuat kelas anak atau kelas turunan berdasarkan class yang ada, kita dapat menggunakan keyword extends.

Akibat dari bentuk khusus tersebut, muncul masalah berupa pertanyaan:
1. Bagaimana agar method harus di-override oleh subclass?
2. Bagaimana caranya memungkinkan terjadinya multiple inheritance?

Untuk menjawab pertanyaan tersebut maka dibutuhkan Abstract Class dan Interface. Yang pertama akan dibahs ttg Abstract Class dan sekaligus menjelaskan pertanyaan no 1.

1. Abstract Class
Cara agar method harus di-override oleh subclass. Tentunya kita harus tahu apa itu override. Override berarti penulisan suatu method kembali di class yang berbeda. Lebih rinci lagi override berarti memberikan logika yang berbeda di subclass.
Abstract Class sendiri memunculkan Abstract Method, dimana Abstract Method berfungsi untuk memastikan bahwa setiap subclass akan mengoverride Abstract Class. 

Syarat dari Abstract Method
- Tidak memiliki logika body method, yang berarti tidak dapat dibentuk objek
- Abstract Class tidak harus memiliki Abstract Method, namun jika ada harus dituliskan di Abstract Class


Bentuk umum penulisannya:
public abstract class NamaKelas{
       `public abstract void namaMethod();
}

public class konkret extends NamaKelas{
        public void namaMethod(){
        }
}

Jadi, untuk mengoverride suatu method menggunakan Abstract Class. Karena, Absract Class memunculkan  Abstract Method yang bertujuan memastikan  setiap subclass akan mengoverride Abstract Class.

Selanjutnya yaitu...

2. Interface
Inheritance dapat mewariskan sifatnya ke kelas turunan(sublcass) Namun subclass tersebut hanya dapat mewarisi sifat dari satu kelas saja dan tidak bisa mewarisi sifat dari kelas lain. Sehingga untuk mengatasi masalah tersebut dibutuhkan Interface agar suatu kelas turunan dapat mewarisi sifat lebih dari satu class. Dapat disebut juga sebagai multiple inheritance.

Tapi ada dampak yang muncul. Apa???
- Setiap sifat yang dimiliki oleh interface harus di-override oleh subclass
- Setiap method dari interface tidak memiliki logika (body method)


Itulah resume yang dapat saya buat tentang Abstract Class dan Interface. Semoga dapat bermanfaat :)