Tutorial 1 CI [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Session Session adalah sebuah varibel yang diletakkan di server. Dengan begitu, PHP bisa mengambil nilai yang tersimpan di dalam variable tersebut meskipun kita membuka halaman baru di browser. Biasanya session akan hilang jika anda menutup browser atau dengan time out yang ditentukan. Session sangat diperlukan untuk penanganan login user/pengguna, yang mana nantinya beberapa data penting pengguna disimpan di dalam variable session, seperti status login, id user, nama user, dan nama group (group = kategori user). Oleh karena itu, ketika tab baru dibuka pun kita masih bisa mengakses data kita dengan asumsi kita sudah login ke dalam aplikasi tersebut. Register Register adalah bagaimana kita mendaftarkan user ke dalam database. Database mempunyai data user yang sewaktu2 dapat dipakai untuk login user. Proses dari register hanyalah penambahan data user ke dalam database dari form registrasi yang nanti kita buat. Login Login adalah proses di mana proses pengecekan user dilakukan. Pengecekan dilakukan untuk memeriksa apakah username dan password cocok atau tidak, jika ada dalam database dan cocok maka data akan dimasukkan ke dalam session, status login diset menjadi TRUE, dan data session lainnya akan diisikan dengan data user yang ada di dalam database. Logout Logout adalah sebaliknya dari Login. Logout adalah proses penghancuran data di variable session, yang berarti data2 di variable session dihapus. Jika data session dihapus, maka statusnya sekarang adalah tidak login, jadi bisa disebut ‘keluar dari sistem’. OK, langsung saja kita berangkat ke CI…



Buat Table



Sebelum ke pembuatan model, controller, dan view tentu saja yang harus dilakukan pertama kali adalah pembuatan database, dalam hal ini kita akan membuat sebuah table user yang berisi id_user, nama_lengkap, username, password, dan group… Saya kasih contoh sederhana seperti ini, yang mana sebetulnya masih bisa dikembangkan, misalnya penambahan status, verifikasi email, reset password, dan sebagainya… Tapi berhubung tidak memungkinkan dan terlalu rumit, maka saya buat contoh sederhana aja.. Buat table user dengan mengcopy syntax SQL berikut ke PhpMyAdmin kamu beserta data sample: CREATE TABLE `user` ( `id_user` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `nama_lengkap` VARCHAR( 100 ) NOT NULL , `username` VARCHAR( 50 ) NOT NULL , `password` VARCHAR( 50 ) NOT NULL , `group` VARCHAR( 20 ) NOT NULL ) ENGINE = INNODB; INSERT INTO `user` ( `id_user` , `nama_lengkap` , `username` , `password` , `group` )



VALUES (NULL , 'Cecep Yusuf', 'cheyuz', MD5('cheyuz') , 'admin'), (NULL , 'Ayu Dwi S', 'ayue', MD5('ayue') , 'operator');



Catatan: group adalah kategori dari user tersebut, misalnya: administrator, operator, member, dan sebagainya.



Buat Model Account



Sebelum kita membuat controller dan view untuk registrasi, login, dan logout, pertama2 kita harus membuat modelnya terlebih dahulu.. model apakah itu? Yup, model untuk account nya… kita buat account_model.php di direktori /application/models/ account_model.php







Nama depan
Nama belakang
Alamat
E-Mail
No Telepon
Pekerjaan
Username
Password
Konfirmasi Password




Setelah view dibuat, baru kita tambahkan kode untuk meload view tersebut, yaitu: $this>load->view('registrasi'); ini kita simpan di function index(). Setelah itu, kita buat aturan untuk validation tadi, caranya yaitu dengan menambahkan array berupa rules2 tadi dengan bentuk seperti berikut: $rules = array( array(



'field' 'label' 'rules'



=> [nama input field] => [label] => [aturan]



), //dan seterusnya ... );



Jadi, secara lengkap buatlah $rules tersebut sebelum view diload, lengkapnya seperti berikut: ... $rules= array( array( 'field' => 'nama_depan', 'label' => 'Nama Depan', 'rules' => 'required' ), array( 'field' => 'alamat', 'label' => 'Alamat', 'rules' => 'required' ), array( 'field' => 'email', 'label' => 'E-Mail', 'rules' => 'required|valid_email' ), array( 'field' => 'no_telepon', 'label' => 'No Telepon', 'rules' => 'numeric' ), array( 'field' => 'username', 'label' => 'Username', 'rules' => 'required|min_length[6]' ), array( 'field' => 'password', 'label' => 'Password', 'rules' => 'required|min_length[6]| matches[konfirmasi_password]' ),



array( 'field' => 'konfirmasi_password', 'label' => 'Konfirmasi Password', 'rules' => 'required' ),



...



); $this->form_validation->set_rules($rules);



Setelah itu, ada pengecekan apakah data sudah dikirim atau belum dengan cara memakai if, kodenya seperti berikut: if ($this->form_validation->run() == FALSE) { //jika belum dikirim/belum valid, masukkan kode di sini } else { //jika sudah valid, masukkan kode INSERT di sini }



Di atas ada pengecekan jika belum dikirim/belum valid, di dalam bagian itu pindahkan kode $this->load->view('registrasi'); ke dalam statemen ini. Jadi, jika kita lihat, code lengkapnya seperti ini: function index() { $rules = array( array( 'field' => 'nama_depan', 'label' => 'Nama Depan', 'rules' => 'required' ), array( 'field' => 'alamat', 'label' => 'Alamat', 'rules' => 'required' ), array( 'field' => 'email', 'label' => 'E-Mail', 'rules' => 'required|valid_email' ), array( 'field' => 'no_telepon', 'label' => 'No Telepon', 'rules' => 'numeric' ), array( 'field' => 'username', 'label' => 'Username', 'rules' => 'required|min_length[6]' ), array( 'field' => 'password', 'label' => 'Password', 'rules' => 'required|min_length[6]| matches[konfirmasi_password]' ), array( 'field' => 'konfirmasi_password', 'label' => 'Konfirmasi Password',



),



'rules' => 'required'



); $this->form_validation->set_rules($rules); if ($this->form_validation->run() == FALSE) { $this->load->view('registrasi'); } else { echo 'Data berhasil dimasukkan'; //kode insert ke database di model--> contoh: $this>registrasi_model->insert(); } }



Kode di Controller sudah selesai, kini Anda tinggal buat daftar error dari validation di view, caranya yaitu dengan menambahkan kode di bawah sebelum tag form.. Registrasi



... ...



Tutorial selesai. Kini Validasi Form Anda siap digunakan, untuk mencobanya silakan kosongkan atau salahkan isi inputan Anda, kemudian submit! Jika data sudah benar, maka muncul tulisan Data sudah dimasukkan. Jika data masih salah, maka browser akan menampilkan form kembali dan menampilkan error yang ada dalam kesalahan inputan. Selain itu, Anda bisa membuat rules di dalam config Anda, caranya buatlah sebuah file bernama form_validation.php di dalam /system/application/config/ dengan isi sebuah variable $config (HARUS $config) yg isinya adalah array rules yang sudah kita buat tadi. form_validation.php



Setelah kamu bikin controller di atas, kamu tinggal bikin ‘view’ untuk tampilan formnya, dengan cara membuat file add_multiple.php di folder /system/application/view Isikan code HTML berikut di file tersebut: Multiple Form Input Mahasiswa



Banyak mahasiswa yang ingin dimasukkan: orang




Maka hasilnya seperti berikut:



Multiple Form Input Mahasiswa Top of Form



Banyak mahasiswa yang ingin dimasukkan: orang Bottom of Form



Kemudian tambahkan code berikut untuk function add_multiple() file controller data_mahasiswa.php tadi, menjadi seperti berikut:



Maksud dari function di atas adalah meload view add_multiple.php yang berisi halaman input banyak data mahasiswa yang dimasukkan.. kemudian ketika disubmit (POST) maka akan di-redirect/alihkan ke function add_multiple_post() dengan parameter banyaknya data yg dimasukkan ($_POST['banyak_data']) yang akan kita buat nanti… yaitu halaman munculnya multiple form. Tambahkan function berikut di bawah function add_multiple(): class Data_mahasiswa extends Controller { ...



}



function add_multiple_post($banyak_data=0) { $data['banyak_data'] = $banyak_data; $this->load->view('add_multiple_form',$data); }



Kemudian, buatlah tampilan multiple form input seperti gambar table di atas. Berikut ini adalah kode HTML dari add_multiple_form.php, simpan di /system/application/views: Multiple Form Input Mahasiswa







NIM Nama Alamat




OK, aku jelasin ya… untuk function add_multiple_post(): 1. Data dicek dulu apakah sudah disubmit ato belum ($_POST==NULL), kalo belum,



load view add_multiple_form.php dengan variable $banyak_data yang diambil dari parameter berdasarkan data yg dimasukkan sebelumnya (di function add_multiple(), yaitu $_POST['banyak_data']) 2. Kalo datanya udah disubmit, maka lakukan insert data yang berulang sebanyak



elemen dari $_POST['data'] (berdasarkan $banyak_data) ke dalam table ‘mahasiswa’ dengan data dari $_POST['data'] (input-an dari multiple form) 3. Kemudian redirect/alihkan ke function lihat_data untuk menampilkan seluruh data



mahasiswa yang akan kita buat setelah ini. Nah, sekarang kita tinggal bikin daftar data ‘mahasiswa’ yang sudah dimasukkan.. Caranya, buat file list_mahasiswa.php di /system/application/views/ dengan isi sebagai berikut: list_mahasiswa.php: Daftar Mahasiswa











No NIM Nama Alamat




Lalu buat function-nya di Controller data_mahasiswa.php:



function lihat_data(){ $data['mahasiswa'] = $this->db->get('mahasiswa')->result(); $this->load->view('list_mahasiswa',$data); }



Selesai. Berikut ini adalah source code lengkapnya: /system/application/controllers/data_mahasiswa.php class Data_mahasiswa extends Controller { //... //... function2 yg ada di tutorial sebelumnya //... //ADD MULTIPLE function add_multiple() { if($_POST==NULL) { $this->load->view('add_multiple'); }else { redirect('data_mahasiswa/add_multiple_post/'. $_POST['banyak_data']); } } function add_multiple_post($banyak_data=0) { if($_POST==NULL) { $data['banyak_data'] = $banyak_data; $this->load->view('add_multiple_form',$data); }else { foreach($_POST['data'] as $d){ $this->db->insert('mahasiswa',$d); } redirect('data_mahasiswa/lihat_data'); } } function lihat_data(){ $data['mahasiswa'] = $this->db->get('mahasiswa')->result(); $this->load->view('list_mahasiswa',$data); } } /system/application/views/add_multiple.php Multiple Form Input Mahasiswa



Banyak mahasiswa yang ingin dimasukkan: orang




/system/application/views/add_multiple_form.php Multiple Form Input Mahasiswa







No NIM Nama Alamat




// ...ada whitespace sebelum php dibuat



— BENAR:







Code Indenting



Tabulasi pada penulisan kode program KURANG BAIK: function foo($bar) { // ... } foreach ($arr as $key => $val) { // ... } if ($foo == $bar) { // ... } else { // ... } for ($i = 0; $i < 10; $i++) { for ($j = 0; $j < 10; $j++) { // ... } }



BAIK: function foo($bar) { // ... } foreach ($arr as $key => $val) { // ... } if ($foo == $bar) { // ... } else { // ... } for ($i = 0; $i < 10; $i++) { for ($j = 0; $j < 10; $j++) { // ... } }



Bracket dan Parenthetic Spacing SALAH: $arr< $foo > = 'foo'; //ada spasi di dalam bracket



BENAR: $arr = 'foo'; // tidak ada spasi di dalam bracket



SALAH: function foo ( $bar ) { }



BENAR: function foo($bar) // tidak ada spasi di dalam parameter { }



SALAH: foreach( $query->result() as $row )



BENAR: foreach ($query->result() as $row)



Private dan Public Method convert_text() _convert_text()



// public method // private method



Short Open Tags SALAH:



BENAR:



Satu Statemen pada Satu Baris SALAH: $foo = 'this'; $bar = 'that'; $bat = str_replace($foo, $bar, $bag);



BENAR: $foo = 'this'; $bar = 'that'; $bat = str_replace($foo, $bar, $bag);



Strings SALAH: "My String" diparsing, lebih baik satu tanda kutip "My string $foo" 'SELECT foo FROM bar WHERE baz = \'bag\''



// tidak ada variable yang // membutuhkan kurung kurawal // jelek



CORRECT: 'My String' "My string {$foo}" "SELECT foo FROM bar WHERE baz = 'bag'"



Query SQL SALAH: $query = mysql_query("select foo, bar, baz, foofoo, foobar as raboof, foobaz from exp_pre_email_addresses where foo != 'oof' and baz != 'zab' order by foobaz limit 5, 100"); //susah dibaca



BENAR: $query = mysql_query("SELECT foo, bar, baz, foofoo, foobar AS raboof, foobaz FROM exp_pre_email_addresses WHERE foo != 'oof' AND baz != 'zab' ORDER BY foobaz LIMIT 5, 100"); //lebih mudah dibaca