Belajar Pemrograman PHP

FrameWork

Anda sebagai seorang programmer PHP pasti pernah mengalami kejenuhan dalam membuat sebuah aplikasi web, kadang sebuah ritme yang monoton pasti sering anda alami dalam membuat sebuah web dinamis entah itu untuk website klien atau web untuk anda sendiri. Sebetulnya dari sebuah ritme tersebut ada beberapa hal yang dapat dibuat permanen dari struktur dasar kode program anda.

Mempelajari Object Oriented Programming (OOP) dalam PHP sangat penting Tujuan pemrograman menggunakan class (OOP)disini adalah code reuse, yang berarti kode program anda dapat di gunakan kembali untuk project-project web yang lainnya. Karena pada intinya dalam sebuah program yang berhubungan dengan database, variable yang selalu berubah-rubah adalah struktur database dan user interface. Dimana struktur database dan tampilan user interface ini selalu mengikuti alur business process dari pengguna program anda

Framework adalah kerangka kerja siap bangun yang sudah dilengkapi library dan fungsi-fungsi. beda framework dengan CMS (content management system ) jika framework kita benar-benar membangun web tetapi sudah disediakan library dan fungsi-fungsi yang mendukung sedangkan CMS adalah web siap guna sudah lengkap dan tidak repot-repot coding. Saat ini banyak sekali framework PHP yang ditawarkan di internet seperti Code Igniter, Cake PHP, Zend Framework, VCL Delphi PHP, Blue Shoes, dan masih banyak lagi

Sejarah Singkat Codeigniter


CodeIgniter awalnya dikembangkan oleh Rick Ellis (CEO Ellislab, Inc). FrameWork ini ditulis untuk kinerja di dunia nyata, dengan banyak class libraries, helpers,dan sub-systems yang disediakan dari kode-dasar ExpressionEngine.Saat ini CI dikembangkan dan dikelola oleh Tim Pengembangan ExpressionEngine


Pemahan Dasar mengenai Codeiniter(CI)





Apa itu codeigniter(CI) ?


CodeIgniter adalah sebuah Application Development Framework - a toolkit - bagi orang-orang yang membangun situs web menggunakan PHP. Tujuannya adalah untuk memungkinkan untuk mengembangkan proyek-proyek yang jauh lebih cepat daripada menulis kode dari awal atau sering menyebutkan PHP murni, dengan menyediakan library-library yang dibutuhkan untuk tugas-tugas, serta antarmuka yang sederhana dan struktur logika untuk mengakses libraries tersebut. CodeIgniter meminimalkan jumlah sintak untuk tugas tertentu.






CodeIgniter didasarkan pada Model-View-Controller pola pengembangan. MVC adalah sebuah pendekatan perangkat lunak aplikasi yang memisahkan logika dari antarmuka. Dalam praktiknya, hal itu memungkinkan halaman web Kamu berisi minimal scripting sejak antarmuka terpisah dari PHP scripting.






• Model mengkomunikasikan dengan struktur data. Biasanya kelas-kelas model akan berisi fungsi yang membantu Kamu mengambil, memasukkan, dan mengupdate informasi dalam database.


• View adalah informasi yang sedang disajikan kepada user. Yang bisa dilihat di halaman web, tetapi dalam CodeIgniter, view juga dapat dipisah-pisah menjadi halaman seperti header atau footer


• Controller berfungsi sebagai perantara antara Model, View, dan sumber daya lainnya yang dibutuhkan untuk memproses permintaan HTTP dan menghasilkan suatu halaman web.






Struktur Folder CI






3 komponen penting dalam codeigniter adalah Model, view dan controller (gambar yang dilingkari merah

1. Controller


Controller adalah sebuah file class yang dapat dikaitkan dengan URI. Controller juga bertindak sebagai polisi lalu lintas antara Model dan View



Controller home.php



class Home extends CI_Controller {






function __construct(){


parent::__construct();


}






function index(){


// index merupakan fungsi pertama yang akan dijalankan ketika Controller tersebut dipanggil


}






}












2. VIEW


View adalah Sebuah tampilan pada halaman web, atau halaman fragmen, seperti sebuah header, footer, sidebar, css,javascript,dll


View tidak pernah panggil secara langsung, view harus dimuat pada sebuah Controller. Ingat bahwa dalam kerangka MVC, Controller bertindak sebagai polisi lalu lintas, sehingga tertanggung jawab untuk mengambil view tertentu Membuat ViewPada view sebenarnya cukup mudah karena bermain dengan HTML ataupun PHP


Contoh



Contohview.php



<html>


<head>


<title></title>


</head>


<body>


<h1>Hello World</h1>


</body>


</html>







Controller



Home.php



<?php


class Home extends CI_Controller{






function __construct(){


parent::__construct();


}






function index(){


$this->load->view("contohview");


}


}


?>







Pada controller home fungsi index adalah fungsi yang pertama kali di panggil ketika controller Home di panggil contoh pemanggilan localhost/namaproject/index.php/home

3. Model


Model adalah class yang berhubungan sistem dengan database, menangani semua manipulation table seperti insert, update delete, di dalam model sudah terdapat library yang mempermudah kita untuk melakukan manipulasi table


Contoh sintak Model



M_mahasiswa.php



<?php


class M_mahasiswa extends CI_Model{






function __construct(){


parent::__construct();


}


}


?>



Sama halnya dengan view model tidak akan berdiri sendiri tanpa di panggil di controller untuk menjalankannya


Cara pemanggilan di controller


$this->load->model(“nama_model”);






4. Library


Library merupakan pustaka fungsi-funsi yang ada di codeigniter


Antara lain :


a. Cart : library untuk shoping cart


b. Calendar : library kalender


c. Driver : library untuk driver database exp : mysql , posgree,oracle


d. Email : library untuk penanganan surat eletronik (email)


e. Form_validation : library validasi form inputan


f. FTP : library untuk file transfer protocol


g. Image_lib : library untuk memanipulasi gambar


h. Javascript : library php javascript


i. Log : logger


j. Pagination : untuk pagination pada halaman website


k. Parser : library untuk php parser template


l. Session : penanganan session


m. Table : library untuk generator table


n. Upload : library untuk file upload


o. Dll





Pada CI 1.7.* library database masih ada akan tetapi di CI 2.0 keatas library database di pisahkan dengan folder library akan tetapi database merupakan library


Library Database


Library database berfungsi sebagai penangana database meliputi active record ,penangan ouput


Active record yaitu istilah untuk record query sql yang telah di ubah ke library CI


Konversi query sql ke codeigniter

1) Select


Select dalam query mySQL


SELECT * from mytable


Dalam CI


$query = $this->db->get('mytable');






Atau
$this->db->select('title, content, date');

$query = $this->db->get('mytable');


Atau


$this->db->select('title, content, date');
$this->db->from('mytable');

$query = $this->db->get();

// Produces: SELECT title, content, date FROM mytable





2) LIMIT


Mysql


SELECT * FROM mytable LIMIT 20, 10


CI


$query = $this->db->get('mytable', 10, 20);




3) MAX


Contoh


$this->db->select_max('age');
$query = $this->db->get('members');
// Produces: SELECT MAX(age) as age FROM members

$this->db->select_max('age', 'member_age');
$query = $this->db->get('members');
// Produces: SELECT MAX(age) as member_age FROM members




4) MIN


$this->db->select_min('age');
$query = $this->db->get('members');
// Produces: SELECT MIN(age) as age FROM members




5) JOIN


$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');

$query = $this->db->get();

// Produces:
// SELECT * FROM blogs
// JOIN comments ON comments.id = blogs.id




6) Where


1. Simple key


$this->db->where('name', $name);

// Produces: WHERE name = 'Joe'


Contoh lain


$this->db->where('name', $name);
$this->db->where('title', $title);
$this->db->where('status', $status);

// WHERE name = 'Joe' AND title = 'boss' AND status = 'active'


2. Custom key


$this->db->where('name !=', $name);
$this->db->where('id <', $id);

// Produces: WHERE name != 'Joe' AND id < 45


3. Menggunakan array


$array = array('name' => $name, 'title' => $title, 'status' => $status);

$this->db->where($array);

// Produces: WHERE name = 'Joe' AND title = 'boss' AND status = 'active'


4. Or whare


$this->db->where('name !=', $name);
$this->db->or_where('id >', $id);

// Produces: WHERE name != 'Joe' OR id > 50


5. Where in


$names = array('Frank', 'Todd', 'James');
$this->db->where_in('username', $names);
// Produces: WHERE username IN ('Frank', 'Todd', 'James')


6. Or where in


$names = array('Frank', 'Todd', 'James');
$this->db->or_where_in('username', $names);
// Produces: OR username IN ('Frank', 'Todd', 'James')


7. Where not in


$names = array('Frank', 'Todd', 'James');
$this->db->or_where_not_in('username', $names);


Mysql :
// Produces: OR username NOT IN ('Frank', 'Todd', 'James')




7) LIKE


$this->db->like('title', 'match');
$this->db->or_like('body', $match);
mysql
// WHERE title LIKE '%match%' OR body LIKE '%match%'






8) INSERT


Masukan data


Contoh


$data = array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
);

$this->db->insert('mytable', $data);
mysql :
// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')





9) UPDATE


$data = array(
'title' => $title,
'name' => $name,
'date' => $date
);

$this->db->where('id', $id);
$this->db->update('mytable', $data);
mysql :
// Produces:
// UPDATE mytable
// SET title = '{$title}', name = '{$name}', date = '{$date}'
// WHERE id = $id





10) DELETE


$this->db->where('id', $id);
$this->db->delete('mytable');

// Produces:
// DELETE FROM mytable
// WHERE id = $id


Generation query result digunakan untuk generator dari fungsi get di active record


1. Result()


Output yang diharapkan adalah sebuah object


$query = $this->db->query("YOUR QUERY");

foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->body;
}


2. Result array


Output berupa array


$query = $this->db->query("YOUR QUERY");

foreach ($query->result_array() as $row)
{
echo $row['title'];
echo $row['name'];
echo $row['body'];
}


3. Row()


Output 1 baris output berupa object


$query = $this->db->query("YOUR QUERY");

if ($query->num_rows() > 0)
{
$row = $query->row();

echo $row->title;
echo $row->name;
echo $row->body;
}


4. Row_array


Sama dengan row bedanya adalah output array


$query = $this->db->query("YOUR QUERY");

if ($query->num_rows() > 0)
{
$row = $query->row_array();

echo $row['title'];
echo $row['name'];
echo $row['body'];
}


5. Num_rows()


Untuk menghitung jumlah baris


$query = $this->db->query('SELECT * FROM my_table');

echo $query->num_rows();






5. HELPER


Helper adalah fungsi yang membantu mempersingkat kode html maupun php murni


Contoh


1) Array : berguna penganganan array dan manipulasinya


2) Captcha : helper captcha


3) Download : berguna download file


4) Form_helper : berguna untuk mempermudah dalam sintak form(html)


Contoh


<form method=”” action=””>


Dengan form helper


<?php echo form_open();?>






5) url : berguna penanganan link dan url


6) html : mempersingkat kode-kode html


contoh <br> = br() , <h1>= heading(1,”test”)









MEMULAI PROJECT DENGAN CODEIGNITER


I. Settingan awal


Tools yang digunakan


- Xampp 1.7.3 keatas


- browser : chrome, firefox


- IDE : netbeans, dreamweaver


- codeigniter 2.0 keatas : www.codeigniter.com


Jalankan xampp control panel






Pastikan apache dan mysql dalam keadaan running seperti gambar di atas


Klik pada bagian explore untuk masuk ke root directory Masuk ke folder htdocs Extract codeigniter_2.*.zip Di dalam foder htdocs dan rename menjadi latihan-ci






Buka netbeans


Klick à file à new project






Pilih php à php application with existing sources ànext






Click à browse






Cari dimana letak latihan-ci berada (biasanya di c:\xampp\htdocs\)


Jika sudah click finish










Maka file codeigniter sudah ter –remote dengan netbeans


*tujuan penggunaan netbeans untuk memudahkan kita dalam implementasi program codeigniter






Melakukan configurasi awal kita perlu meng-autoload helper ataupun library yang di perlukan


Buka file autoload.php (1)






Tambahkan dalam array library sehingga


Pada bagian config kita perlu mencofig baris encryption_key


Buka file config.php


Dan isi terserah anda


Misalnya


Untuk setting bagian database kita perlu membuat database terlebih dahulu


Dengan cara memanggil localhost/phpmyadmin di browser anda


Buka browser anda à localhost/phpmyadmin


Create database : latihan_ci_db


Klick à create


Setelah kita membuat database kita perlu ubah settingan database.php (3)






Kita ubah sesuai dengan nama database dan settingan mysql server kita






Sekarang buka lewat browser localhost/latihan-ci






Codeigniter siap di gunakan


II. CONTROLLER


Controller bertindak sebagai juru kendali dari sistem


Kita buat file home.php di folder controller






Beri nama home


Ketik kode di atas


*catatan nama controller harus sama dengan nama file controller dan awali dengan huruf bersar


Panggil controller pada browser anda http://localhost/latihan-ci/index.php/home






Maka akan muncul “ini adalah controller home”


*catatan fungsi index adalah fungsi pertama yang akan dijalankan pada saat controller home di panggil


Tambahkan fungsi latihan di bawah fungsi index






Dan panggil di browser http://localhost/latihan-ci/index.php/home/latihan


Maka akan tampil fungsi dari latihan


Fungsi dengan paramater






Coba beri paramater di fungsi parameter contoh http://localhost/latihan-ci/index.php/home/parameter/3


Pada pemanggilan dikasih parameter 3 seharusnya akan muncul 3 dilayar


III. VIEW


View tidak bisa berdiri sendiri harus ada controller


Kita buat contohview.php di folder views



Contohview.php



<html>


<head>


<title>Contoh View</title>


</head>


<body>


<h2>Contoh view</h2>


</body>


</html>



View tersebut tidak akan muncul jika tidak ada controller yang meng-load view tersebut


Kita edit saja controller sebelumnya home.php pada bagian index






$this->load->view(“contohview”);


Artinya pada contrller home function index memanggil view bernama contohview.php di folder view


*catatan contohview dalam tanda petik tidak pakai .php


Lihat hasilnya http://localhost/latihan-ci/index.php/home






Dan yang terpanggil adalah view bernama contohview.php


View dengan beban data


View dengan di beri beban data yang berasal dari controller


Contoh


Edit function index di home.php






$data akan di parsing ke contohview.php


*catatan


$this->load->view(“contohview”,$data);


Data merupakan variable yang di kirimkan ke view


$data[“content”]


Content akan menjadi variable $content di view






Lihat hasilny di http://localhost/latihan-ci/index.php/home






*catatan dalam 1 function di controller hanya ada 1 load view


Dan type array hanya ada 1


Contoh :






Contoh yang benar






IV. MODEL


Model adalah class yang berhubungan dengan manipulasi database


Sebelum kita kemodel kita harus membuat table dengan phpmyadmin terlebih dahulu


Kunjungi http://localhost/phpmyadmin


Pilih database yang telah kita buat di awal yaitu latihan_ci_db


Buat table bernama berita






Buat field seperti diatas


Setelah tabel dibuat kita buat model bernama m_berita yang nantinya akan di isi fungsi insert, update,select, delete








<?php






class M_berita extends CI_Model {






function __construct() {


parent::__construct();


}






function select() {


$result = $this->db->get("berita");


if ($result->num_rows() > 0) {


return $result->result_array();


}


}






function get_one($id) {


$this->db->where("id", $id);


$result = $this->db->get("berita");


if ($result->num_rows() == 1) {


return $result->row_array();


}


}






function insert($data) {


$this->db->insert("berita", $data);


}






function update($id, $data) {


$this->db->where("id", $id);


$this->db->update("berita", $data);


}






function delete($id) {


$this->db->where("id", $id);


$this->db->delete("berita");


}






}


?>



Fungsi di atas untuk select semua row , select 1 row , insert, update , delete


Model tidak akan bekerja jika tidak di panggil di controller


Ubah controller home






Untuk menampilkan tabel berita


Buat view bernama tampil_berita.php






Panggil fungsi controllernya






Pertanyaan kenapa kosong ?


Karena data di tabel berita belum ada maka dari itu kita buat fungsi untuk menambah data di controller home function post






Function post memanggil library form_validation untuk control di form


*catatan


PHP murni untuk menangkap variable post menggungakan function $_POST


Akan tetapi jika menggukan CI


$_POST di gantikan $this->input->post(); tujuannya untuk keamanan


Buat view bernama post.php






Refrensi form helper : http://codeigniter.com/user_guide/helpers/form_helper.html


Ketika disubmit akan redirect ke home/index


Membuat function delete di controller home






Karena delete tidak memerlukan tampilan di view dia hanya berfungsi mendelete baris dan setelah terlhapus akan ke home/index maka yang perlu di perhatikan adalah di view tampil_berita.php






Anchor adalah penggati dari <a href>


Dengan parameter id $brt[“id”]


Membut function update


Dalam update kita perlu 2 fungsi yang petama untuk menampilkan data ke form dan selanjutnya di update


Tambahkan fungsi di bawah untuk controller home






Buat form_update.php di view


Kita perlu form_hidden untuk paramater update di mysql dan value harus di tampilkan ke form ($berita[“judul”])






Refrensi







http://codeigniter.com/user_guide
Belajar Pemrograman PHP Belajar Pemrograman PHP Reviewed by Wahyumiftahulhuda on Oktober 08, 2013 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.