SlideShare a Scribd company logo
1 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
Object Oriented Programming
A. Definisi OOP
OOP merupakan singkatan dari Object Oriented Programming adalah suatu metode
pemrograman yang menggunakan objek. Objek yang dimaksud adalah suatu benda. Anda bisa
menggunakan benda-benda yang ada di sekitar Anda sebagai objek seperti komputer, HP, kursi,
meja, gitar, gelas, dan bahkan Anda sendiri adalah objek. Lalu apa yang membedakan antara objek
dengan yang bukan objek?
Setiap objek memiliki karakteristik atau sifat sendiri yang membedakan antara objek yang
satu dengan objek yang lainnya.
B. Class,Method(Behavior),Property(attribute)
Dalam OOP selalu ada yang namanya class, method (behavior), property (attribute).
Class bisa dikatakan sebagai cetakan untuk membuat objek. Method bisa dikatakan sebagai aksi
yang dimiliki oleh class. Sedangkan attribute adalah karakteristik atau sifat-sifat yang dimiliki oleh
objek yang dibuat nantinya. Pendeklarasian suatu class selalu terdapat sintak class yang kemudian
diikuti dengan nama class dan setelah itu diikuti oleh body class. Body class selalu berada diantara
kurung kurawal {}.
<?php
// deklarasi class Orang
class Orang {
// start body class
// attributes class
// methods class
// end body class
}
?>
Dari deklarasi class Orang seperti contoh di atas, kita bisa menentukan karakteristiknya
sebagai atribut class tersebut seperti nama, jenis kelamin, pekerjaan, dll. Ingat, setiap objek belum
tentu memiliki karakteristik yang sama, jadi jika kita mengambil contoh objeknya adalah orang,
maka kita bisa menjadikan nama, jenis kelamin, dan pekerjaan sebagai atribut classnya. Secara
defaultnya suatu atribut class dideklarasikan dengan menggunakan sintak var yang kemudian diikuti
dengan nama atributnya yang kemudian diakhiri dengan tanda semicolon (;).
2 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
<?php
// deklarasi class Orang
class Orang {
// start body class
// attributes class
var $nama;
var $jenis_kelamin;
var $pekerjaan;
// methods class
// end body class
}
?>
Setelah atribut-atribut yang dibutuhkan telah kita tentukan, sekarang kita buat method-
method class tersebut. Pendeklarasian method pada OOP di PHP menggunakan sintak function.
Pendeklarasian method ini mirip dengan pendeklarasian fungsi-fungsi yang ada di PHP pada
umumnya. Misalnya saja kita buat agar objek yang kita buat nantinya bisa menyapa, makan, dan
minum.
<?php
// deklarasi class Orang
class Orang {
// start body class
// attributes class
var $nama;
var $jenis_kelamin;
var $pekerjaan;
// methods class
function menyapa()
{
echo '<p>Halo, nama saya adalah '. $this->nama .'<br />';
echo 'Saya adalah seorang '. $this->jenis_kelamin .' ';
echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>';
}
function makan()
{
echo '<p>'. $this->nama .' sedang makan.</p>';
}
3 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
function minum()
{
echo '<p>'. $this->nama .' sedang minum.</p>';
}
// end body class
}
?>
Pada script di atas terdapat keyword $this, keyword $this menandakan kalau sedang
mengakses atribut class itu sendiri. Penggunaanya dengan cara menuliskan keyword $this yang
diikuti dengan tanda -> dan setelah itu diikuti dengan nama atribut yang ada dalam kelas tersebut
tanpa tanda dollar $.
C. Membuat Object
Sisipkan kode berikut dibawah pendeklarasian class Orang di atas.
<?php
$candra = new Orang();
$candra->nama = ‘Candra Adi Nugroho';
$candra->jenis_kelamin = 'Laki-laki';
$candra->pekerjaan = ‘Pelajar';
// memanggil method yang ada dalam class
$candra->menyapa();
$candra->makan();
$candra->minum();
$yudis = new Orang();
$yudis->nama = 'Yudistira';
$yudis->jenis_kelamin = 'Laki-laki';
$yudis->pekerjaan = 'Pelajar';
// memanggil method yang ada dalam class
$yudis->menyapa();
$yudis->makan();
$yudis->minum();
?>
4 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
Untuk membuat objek, Anda harus melakukan instansiasi class dengan cara mengunakan
sintak new yang diikuti dengan nama classnya dan kemudian diikuti dengan tanda kurung buka dan
tutup seperti pemanggilan fungsi. Nah, tahu kenapa pada saat instansiasi class terdapat tanda kurung
buka dan tutup padahal tidak ada method yang bernama Orang()?
Di dalam class selalu terdapat method yang selalu dijalankan ketika objek dibuat. Method ini
disebut dengan constructor. Jadi ketika Anda membuat suatu object, sebenarnya Anda juga
menjalankan method constructor ini. Apa itu constructor? Constructor adalah method yang
akan dijalankan ketika objek dibuat. Secara umum constructor adalah method yang memiliki
nama yang sama dengan nama class tersebut.
Lalu apakah Anda melihat ada method Orang() dalam class Orang? Walaupun constructor
tidak Anda tuliskan, class secara otomatis akan membuat constructornya sendiri. Pada PHP versi
5.3, pendeklarasian constructor tidak dengan cara menuliskan nama method yang sama dengan
nama class tetapi dengan menuliskan nama method __construct() yang menandakan
suatu constructor.
<?php
class Orang {
// start body class
// attributes class
var $nama;
var $jenis_kelamin;
var $pekerjaan;
// methods class
function __construct($nama, $jenis_kelamin, $pekerjaan)
{
$this->nama = $nama;
$this->jenis_kelamin = $jenis_kelamin;
$this->pekerjaan = $pekerjaan;
}
function menyapa()
{
echo '<p>Halo, nama saya adalah '. $this->nama .'<br />';
echo 'Saya adalah seorang '. $this->jenis_kelamin .' ';
echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>';
5 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
}
function makan()
{
echo '<p>'. $this->nama .' sedang makan.</p>';
}
function minum()
{
echo '<p>'. $this->nama .' sedang minum.</p>';
}
// end body class
}
?>
Anda juga bisa memberikan parameter input pada setiap method yang ada di dalamnya.
Pada pendeklarasian constructor di atas saya memberikan parameter input nama, jenis kelamin, dan
pekerjaan. Jadi saat instansiasi, Anda bisa langsung melakukan set atribut class.
<?php
$candra = new Orang('Candra', 'Laki-laki', 'Pelajar');
$yudis = new Orang('Yudistira', 'Laki-laki', 'Pelajar');
// memanggil method yang ada dalam class
$candra->menyapa();
$candra->makan();
$candra->minum();
// memanggil method yang ada dalam class
$yudis->menyapa();
$yudis->makan();
$yudis->minum();
?>
Kedua script di atas (yang tidak menggunakan constructor dan yang menggunakan
constructor) kurang lebih akan menghasilkan tampilan seperti ini:
6 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
.
D. Modifier
Adapun pendeklarasian atribut yang menggunakan sintak public, protected, dan private.
Sintak-sintak tersebut dinamakan dengan access modifier yang digunakan untuk membatasi hak
akses. PHP memiliki 5 Modifier yaitu Private, Protected, Public, Default (Undefined) dan
Static, dimana Default dari Modifier dalam PHP adalah Public.
1. Private
Private; seperti namanya modifier ini bersifat spesifik class dan tidak dapat
diwariskan kepada class turunannya. Modifier ini hanya dapat diakses oleh class tersebut
dan tidak dapat diakses diluar dari class tersebut. Bahkan object saja tidak dapat
mengaksesnya karena memang hanya diperuntukkan untuk class tersebut.
Contoh :
<?php
class Orang {
// start body class
//attribute
private $nama= "Candra Adi Nugroho";
var $jenis_kelamin;
var $pekerjaan;
// methods class
public function menyapa()
{
echo '<p>Halo, nama saya adalah '. $this->nama .'<br />';
echo 'Saya adalah seorang '. $this->jenis_kelamin .' ';
7 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>';
}
}
class Turunan_Orang extends Orang{
function menyapa_2(){
echo '<p>Halo, nama saya adalah '. $this->nama .'<br />';
echo 'Saya adalah seorang '. $this->jenis_kelamin .' ';
echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>';
}
}
$a = new Orang();
$a->jenis_kelamin = 'Laki-laki';
$a->pekerjaan = 'Pelajar';
$a->menyapa();
$b = new Turunan_Orang();
$b->jenis_kelamin = 'Laki-laki';
$b->pekerjaan = 'Mahasiswa';
$b->menyapa_2();
?>
Ketika kita mencoba menjalankan program diatas maka hasilnya seperti berikut:
Dari hasil di atas bisa kita lihat bahwa pada kelas turunan variabel nama tidak
terbaca. Untuk mengetahui perbedaannya coba ganti modifier private dengan public dan
jalankan scriptnya lagi, maka akan terlihat perbedaannya.
2. Protected
Protected; Modifier ini diproteksi hanya untuk class dan turunan class tersebut. Jadi
modifier sedikit lebih terbuka daripada modifier Private namun belum bisa dipanggil
secara langsung oleh object class. Untuk lebih jelas perhatikan contoh berikut :
<?php
class Modifier{
8 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
protected function cetak(){
echo 'Ini modifier protected';
}
}
class Turunan_Modifier extends Modifier{
public function setPublic(){
$this->cetak();
}
}
//$a = new Modifier();
//$a->cetak();
$b = new Turunan_Modifier();
$b->setPublic();
//$b->cetak();
?>
Pada contoh diatas akan keluar output Ini modifier protected karena kita
memanggil function cetak dari extends class (class turunan) yang bersifat public. Secara
singkat kira-kira beginilah alur program diatas.
Class Modifier mempunyai Turunan Class yaitu Turunan_Modifier sehingga secara
otomatis Turunan_Modifier memiliki semua function yang dimiliki oleh class Modifier.
Karena memiliki function yang dimiliki class Modifier, berarti Turunan_Modifier juga
memiliki fungsi cetak. Karena ingin agar object dapat mengakses fungsi cetak, dibuatlah
sebuah fungsi pada class Turunan yaitu setPublic yang sebenarnya adalah fungsi cetak
namun dengan akses public.
3. Static
Static; Pada modifier ini kita dapat langsung menggunakan variable atau fungsi yang
menggunakan modifier ini tanpa perlu membuat object dari class terlebih dahulu. Contoh
sebagai berikut:
<?php
class Modifier {
// start body class
9 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
Static function setStatic()
{
echo '<p>Halo, ini adalah modifier static';
}
}
Modifier::setStatic();
?>
4. Public
Public; Seperti namanya modifier ini bersifat terbuka untuk semua object maunpun
turunan class dari class yang memiliki modifier public. Untuk lebih jelas mari kita liat
langsung saja contoh codenya.
<?php
class sayaPublic{
public function setPublic(){
echo 'Saya Public Function';
}
}
$public = new sayaPublic();
$public->setPublic();
?>
Bila dilihat secara sekilas antara modifier public dan static hampir sama, hanya
perbedaannya static tidak perlu membuat object terlebih dahulu sedangkan public kita harus
membuat object terlebih dahulu.
5. Default (Undefined)
Modifier Public merupakan default dari modifier pada OOP PHP, jadi untuk
function yang tidak di definisikan modifiernya secara otomatis akan menjadi modifier
Public. Semua sifat yang dimiliki modifier public akan di miliki oleh function ini.
Sebagai contoh:
<?php
// deklarasi class Orang
10 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
class Orang {
// start body class
// attributes class
var $nama;
var $jenis_kelamin;
var $pekerjaan;
// methods class
function menyapa()
{
echo '<p>Halo, nama saya adalah '. $this->nama .'<br />';
echo 'Saya adalah seorang '. $this->jenis_kelamin .' ';
echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>';
}
}
$candra= new Orang();
$candra->nama= 'Candra Adi Nugroho';
$candra->jenis_kelamin= 'Laki-Laki';
$candra->pekerjaan= 'Pelajar';
$candra->menyapa();
?>
E. Pewarisan/extends Class
Pewarisan digunakan agar kita dapat menggunakan properties dan metode dari class yang sudah
ada dengan cara diwarisi oleh class yang akan menggunakan properties dan metodenya.
Syntak:
Class Nama_Pewaris extends nama_yang_mewarisi
{
Kode yang di eksekusi;
}
Contoh:
<?php
class Modifier{
11 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
protected function cetak(){
echo 'Ini modifier protected';
}
}
class Turunan_Modifier extends Modifier{
public function setPublic(){
$this->cetak();
}
}
//$a = new Modifier();
//$a->cetak();
$b = new Turunan_Modifier();
$b->setPublic();
//$b->cetak();
?>
12 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
CodeIgniter
A. Definisi
CodeIgniter adalah aplikasi open source yang berupa framework dengan model MVC
(Model, View, Controller) untuk membangun website dinamis dengan menggunakan PHP.(Sumber:
http://id.wikipedia.org/wiki/CodeIgniter)
B. Konsep MVC
Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan
aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan pengembangan
aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data,
user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yang
membangun suatu MVC pattern dalam suatu aplikasi yaitu :
1. View, merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web
bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi
untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses
langsung terhadap bagian model.
2. Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert,
update, delete, search), menangani validasi dari bagian controller, namun tidak dapat
berhubungan langsung dengan bagian view.
3. Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian
view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan
apa yang akan diproses oleh aplikasi.
Dengan menggunakan prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan
developernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designer
yang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan
maintanability dan organisasi kode. Walaupun demikian dibutuhkan komunikasi yang baik antara
programmer dan designer dalam menangani variabel-variabel yang akan ditampilkan.
C. Kelebihan CodeIgniter
Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain :
1. Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena
eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat
13 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat
dibanding framework yang lain.
2. Konfigurasi yang sangat minim (nearly zero configuration) : tentu saja untuk
menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan
konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau
autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya
perlu merubah sedikit saja file pada folder config.
3. Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk
berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru.
4. Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user
guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah
dipahami.
5. Dan banyak lagi yang lainnya.
D. Instalasi
1) Download file installer (file dalam format zip) pada website resmi CodeIgniter
http://codeigniter.com/ (Versi terakhir CodeIgniter adalah versi 2.1.2).
2) Copy file yang telah didownload kedalam folder web server Anda, misal D:xampphtdocs.
3) Extract file tersebut.
4) Rubah nama folder CodeIgniter_2.1.2 sesuai dengan yang Anda inginkan misal:
“latihan_ci_1”
Untuk memulai menggunakan CodeIgniter terlebih dahulu kita rubah base URLnya dengan
cara edit file config.php yang ada pada application/config/config.php dan set base URL anda,
misal : http://localhost/latihan_ci_1
E. Struktur File CI
CI adalah sebuah php framework yang berupa kumpulan folder dan file php, java
script,css,txt dan file berbasis web lainnya dengan setting tertentu untuk menggunakannya dan
menyediakan library dan helper yang dapat di manfaatkan di dalam pemrograman php. CI di
jalankan under web dan harus dengan web server. Program CI cukup di letakkan di bawah folder
directory web server anda.
Berikut adalah struktur file CI :
14 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
F. Coding dengan CodeIgniter
a. Mencetak “hello world”
Berikut kita akan mempraktekan pemrograman php dengan CI. Kita akan
menampilkan tulisan “Hello World” ke dalam browser kita. Langkah-langkah nya adalah
sebagai berikut :
1. Buka Text Editor anda. Lalu buatlah sebuah controller di dalam direktory CI anda, yaitu
di : application/controllers.
2. Tulis lah code sbb :
<?php
class Hellocontroller extends CI_controller{
function index(){
$this->load->view('hello_world');
}
}
?>
15 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
Beri nama file hellocontroller.php.
Yang harus di perhatikan :
- Nama class harus di awali huruf besar.
- Nama class harus sama dengan nama file.
- Function index adalah function default. Di url tidak perlu di tuliskan nama
function indexnya. Kalau nama function selain index, perlu di tulis di url nya.
Penjelasan kode:
○ class Hellocontroller extends CI_controller, artinya kita membuat class dengan
nama Hellocontroller.
○ function index, artinya kita membuatkan function index di dalam class
Hellocontroller. Function ini meruppakan function yang akan ditampilkan pertama
kali pada saat kita memanggil class Hellocontroller.
○ $this->load->view('hello_world'), memanggil view dengan nama hello_world.php
3. Buat file baru dengan nama hello_world.php di application/views
Tulis code sbb :
<? Php
echo “Hello World”;
?>
4. Misal base_url : http://localhost/latihan_ci_1, maka jalankan di url anda menjadi :
http://localhost/latihan_ci_1/hellocontroller. Maka akan muncul hasil nya.
b. Membuat form
Form pada CI dapat di buat dengan menggunakan helper atau dengan syntax html
biasa. Pada kesempatan kali ini, kita akan mencoba membuat form dengan menggunakan
helper form.Untuk menggunakan helper form kita perlu mengaktifkan helper form dengan
cara mengedit ./application/config/autoload.php dan kita tambahkan form pada array
helper seperti berikut:
$autoload['helper'] = array('form');
Kemudian buatlah sebuah controller dengan nama fil form_controller. Seperti berikut :
16 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
<?php
class Form_controller extends CI_controller{
function index(){
$this->load->view('form');
}
function cetak_data(){
$hasil['data'] = array(
'kd_buku' => $this->input->post('kd_buku'),
'judul' => $this->input->post('judul'),
'penerbit' => $this->input->post('penerbit'),
'isbn' => $this->input->post('isbn'),
'stock' => $this->input->post('stock')
);
$this->load->view('form',$hasil);
}
}
?>
Selanjutnya kita akan membuat form inputan, buat file baru dengan nama form.php
pada application/views. Selanjutnya ketikkan kode seperti berikut:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Input Buku</title>
</head>
<body>
<?php
echo form_open('form_controller/cetak_data');
echo "<table align='center' width='400'>";
$field1=array(
'name' => 'kd_buku',
'size'=>'15');
echo "<tr><td>Kode Buku</td><td> :</td><td>".form_input($field1)."</td></tr>";
17 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
$field2=array(
'name' => 'judul',
'size'=>'30');
echo "<tr><td>Judul</td><td> :</td><td>".form_input($field2)."</td></tr>";
$field3=array(
'name' => 'penerbit',
'size'=>'30');
echo "<tr><td>Penerbit</td><td> :</td><td>".form_input($field3)."</td></tr>";
$field4=array(
'name' => 'isbn',
'size'=>'30');
echo "<tr><td>ISBN</td><td> :</td><td>".form_input($field4)."</td></tr>";
$field5=array(
'name' => 'stock',
'size'=>'11');
echo "<tr><td>Stock</td><td> :</td><td>".form_input($field5)."</td></tr>";
echo "<tr><td>".form_submit('mysubmit','Input')."</tr></td>" ;
echo "</table>";
echo "<p><p><p>";
?>
<?php
if(isset($data)){
?>
<p align="center"><font size="+2" color="#0000FF"> Data Buku </font></p>
<table width="400" border="1" align="center">
<tr>
<td width="85">Kode Buku</td>
<td width="8">:</td>
<td width="185"><?php echo $data['kd_buku'];?></td>
</tr>
<tr>
<td>Judul</td>
<td>:</td>
18 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
<td><?php echo $data['judul'];?></td>
</tr>
<tr>
<td>Penerbit</td>
<td>:</td>
<td><?php echo $data['penerbit'];?></td>
</tr>
<tr>
<td>ISBN</td>
<td>:</td>
<td><?php echo $data['isbn'];?></td>
</tr>
<tr>
<td>Stock</td>
<td>:</td>
<td><?php echo $data['stock'];?></td>
</tr>
</table>
<?php
}
?>
</body>
</html>
Untuk melihat hasilnya coba kita panggil di browser dengan mengetikkan alamat:
http://localhost/latihan_ci_1/index.php/form_controller.
Maka akan tampil form inputan seperti gambar berikut:
Ketika kita melakukan prosess inputan maka akan menghasilkan tampilan seperti berikut:
19 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
c. Passing Variabel antar M-V-C
Antara Model, View, dan Controller, selalu bertukar data lewat parameter atau nilai2
tertentu yang dimasukkan ke dalam variabel.
Dalam tutorial praktis ini kita akan memberikan beberapa contoh sederhana untuk
memahami konsep ini.
1. Dari URL ke Controller
Untuk memasukkan nilai tertentu ke dalam function di dalam controller, kita
menggunakan URL sbb:
http://usm.multisolusi.info/perpustakaan/index.php/namacontroller/namafungsi/nilai
sebagai contoh :
misal di dalam controller terdapat kode sbb :
contoh :
<?php
class cv extends CI_Controller
20 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
{
public function __Construct()
{
parent::__Construct();
}
public function index()
{
echo "ini fungsi index";
}
public function tampilkan($inputan)
{
echo "anda memasukkan : $inputan";
}
}
?>
untuk memasukkan inputan ke dalam fungsi tampilkan(), melalui variabel $inputan, maka di
URL browser kita ketikkan :
http://usm.multisolusi.info/perpustakaan/index.php/cv/tampilkan/IniYgDimasukkan
hasilnya adalah :
anda memasukkan : IniYgDimasukkan
2. Passing Variabel antar Controller-View
Syntax memanggil View dari controller adalah :
$this->load->view(‘nama_view’,$variabel_array);
Bagaimana mengirim suatu nilai dari Controller ke view ?
Perhatikan function tampilkan() pada kode controller berikut :
<?php
class cv extends CI_Controller
21 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
file view, bernama tampilkan.php , berisi kode sbb :
<?php
echo "halo ini view <br>";
echo "anda memasukkan : $inputan ";
?>
maka di dalam file view yang di panggil dari controller, tersebut akan terdapat variabel
bernama $inputan, yang nilainya adalah seperti nilai yang kita masukkan dari
browser/URL -> controller hingga ke -> view.
3. Passing Variabel antara Controller - Model
Mengirim sebuah nilai variabel tertentu dari Controller ke Model, dilakukan dengan
cara memanggil model dan memanfaatkan parameter pada fungsi di dalam model,
Model di panggil dengan cara :
$this->load->model(‘nama_model’);
$this->nama_model->namamethod($parameter);
{
public function __Construct()
{
parent::__Construct();
}
public function index()
{
echo "ini fungsi index";
}
public function tampilkan($inputan)
{
$var['inputan']=$inputan;
$this->load->view('tampilkan',$var);
}
}
?>
22 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
sedangkan untuk mengirim nilai2 tertentu dari sebuah method di dalam model ke
controller, atau ke mana saja yang memanggil method tersebut, kita menggunakan
perintah :
return <nilai tertentu>
Untuk lebih jelasnya perhatikan contoh berikut :
Di dalam Controller terdapat kode sbb :
<?php
class cm extends CI_Controller
{
function index()
{
$a=3;
$b=5;
$this->load->model('model1');
$hasil=$this->model1->tambah($a,$b);
echo "<br> hasil pertambahan dari $a + $b = $hasil";
}
}
di Model yang di panggil (model1.php) berisi kode sbb :
<?php
class model1 extends CI_Model
{
Public function tambah($a,$b)
{
$c=$a+$b;
return $c;
}
}
23 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
d. Pengenalan Library Code Igniter
1. Library Database
Untuk dapat mengakses database, sebelumnya kita harus mengkonfigurasi file
database.php pada direktori :
./application/config/database.php
kemudian cari dan edit baris berikut :
$db['default']['hostname'='202.122.14.202';
$db['default']['username']='perpustakaan';
$db['default']['password']='isi_password_mysql';
$db['default']['database']='perpustakaan';
$db['default']['dbdriver'] = 'mysql';
pada contoh diatas, kita menggunakan database mysql.
Code Igniter saat ini mendukung beberapa jenis database yaitu :
mysql, mysqli, postgre, odbc, mssql, sqlite, oci8
Memanggil Library Database
Untuk mengaktifkan library database, kita perlu mengedit
./application/config/autoload.php
kita tambahkan nama2 library yang akan kita “autoload”, dengan mengedit array sbb :
$autoload['libraries'] = array('database');
atau bisa juga library di panggil di controller, dengan memberikan perintah sbb :
untuk CodeIgniter versi 2.x
$this->load->database();
atau untuk CodeIgniter versi 1.x :
$this->load->library(‘database’);
24 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
Contoh kasus sederhana berikut adalah, kita ingin menampilkan data dari tabel :
tabel_buku, yang di dalamnya terdapat filed : kode_buku, judul_buku, penerbit, isbn,
stok_buku
pertama kita buat 3 buah file (masing-masing satu file di controller, model, dan view)
file controller, dengan nama : perpustakaan.php , yang isinya adalah :
<?php
class perpustakaan extends CI_Controller
{
function __construct()
{
// Call the Model constructor
parent::__construct();
}
function index()
{
echo "ini adalah index dari controller perpustakaan";
}
function tampil_buku()
{
// $this->load->database(); //----> tidak perlu karena sudah di tulis di autoload.php
$this->load->model('mtampil'); //---> kita panggil model mtampil
$data_buku['databuku']=$this->mtampil->tampil_data_buku(); //---> kita panggil fungsi tampil_data_buku()
//---> pada model mtampil, hasil kita masukkan
//---> ke variabel array $data_buku
$this->load->view('tampilbuku',$data_buku);
}
}
?>
file model bernama mtampil.php , isinya adalah :
<?php
class mtampil extends CI_Model
{
public function index()
25 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
{
}
public function tampil_data_buku()
{
$query='select kode_buku,judul_buku,penerbit,isbn,stok_buku from tabel_buku';
$hasil=$this->db->query($query);
return $hasil->result();
}
?>
file view bernama tampilbuku.php , isinya adalah :
<?php
echo "Tampil data buku <br>";
echo "<table border=1>";
echo "<tr><td>kode buku</td> <td>judul buku</td> <td> penerbit </td> <td> isbn </td> <td> stok buku </td>
</tr>";
foreach ($databuku as $isi)
{
echo "<tr>";
echo "<td>";
print ($isi->kode_buku);
echo "</td>";
echo "<td>";
print ($isi->judul_buku);
echo "</td>";
echo "<td>";
print ($isi->penerbit);
echo "</td>";
echo "<td>";
print ($isi->isbn);
echo "</td>";
echo "<td>";
print ($isi->stok_buku);
echo "</td>";
echo "</tr>";
}
?>
26 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
Hanya dengan 3 file sederhana diatas, kita sudah bisa menampilkan data dari tabel
data_buku
Berikut penjelasannya :
- Di dalam controller tersebut kita memanggil model yg bernama mtampil (mtampil.php),
perhatikan kode berikut :
$this->load->model('mtampil'); //---> kita panggil model mtampil
- kemudian dari dalam model mtampil, terdapat method bernama tampil_data_buku(),
perhatikan kode berikut :
$data_buku['databuku']=$this->mtampil->tampil_data_buku(); //---> kita panggil fungsi tampil_data_buku()
method tersebut ( model mtampil method tampil_data_buku() ) berisi query ke tabel
data_buku, perhatikan kode dibawah ini :
public function tampil_data_buku()
{
$query='select kode_buku,judul_buku,penerbit,isbn,stok_buku from tabel_buku';
$hasil=$this->db->query($query);
return $hasil->result();
}
hasil pemanggilan dari method tampil_data_buku() di masukkan ke dalam variabel array
bernama data_buku, yang kemudian, variabel tersebut di kirim ke view untuk ditampilkan.
Didalam file view bernama tampilbuku.php , variabel tersebut diolah kemudian di
tampilkan, perhatikan kode berikut :
foreach ($databuku as $isi)
{
echo "<tr>";
echo "<td>";
print ($isi->kode_buku);
27 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
echo "</td>";
echo "<td>";
print ($isi->judul_buku);
echo "</td>";
echo "<td>";
print ($isi->penerbit);
echo "</td>";
echo "<td>";
print ($isi->isbn);
echo "</td>";
echo "<td>";
print ($isi->stok_buku);
echo "</td>";
echo "</tr>";
}
Active Record di Code Igniter
Di Code Igniter untuk mengakses suatu tabel dalam database, ada dua cara, yaitu dengan
menggunakan SQL-Query, atau menggunakan active record,
beberapa fungsi utama active record, di Code Igniter diantaranya adalah :
Select Data
- $this->db->get()
Fungsi : Untuk menampilkan semua isi tabel mahasiswa.
Contoh :
$this->db->get('tabel_pelanggan');
setara dengan : select * from tabel_pelanggan.
Parameter pertama dan kedua memuat limit dan offset, yaitu :
$query=$this->db->get('tabel_pelanggan',10,20)
setara dengan : select * from tabel_pelanggan limit 10,20
- $this->db->get_where();
Fungsi : Untuk menampilkan semua isi tabel dengan di tambah kondisi where
28 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
Contoh :
$this->db-> get_where ('tabel_pelanggan',array('id_pelanggan'=>$id),$limit,$offset);
// Sama dengan : “select * from tabel_pelanggan where id_pelanggan='$id' limit 20, 10”;
- $this->db->select();
Fungsi : Untuk memilih atribut kolom tabel yang akan di proses dengan perintah select.
Contoh :
$this->db->select('kode_pelanggan,nama,alamat');
$query=$this->db->get('tabel_pelanggan’);
// Sama dengan : select kode_pelanggan,nama,alamat from tabel_pelanggan;
- $this->db->from();
Fungsi : Untuk memilih tabel.
contoh :
$this->db->select('kode_pelanggan,nama,alamat');
$this->db->from('data_pelanggan');
$query=$this->db->get();
// Sama dengan : select kode_pelanggan,nama,alamat from tabel_pelanggan;
- $this->db->join();
Fungsi : Untuk melakukan perintah join terhadap 2 atau lebih tabel.
Contoh :
$this->db->select(“*”);
$this->db->from(“tabel_transaksi”);
$this->db->join(“tabel_pelanggan”,”tabel_pelanggan.kode_pelanggan=tabel_transaksi.kode_pelanggan”);
$query=$this->db->get();
/*
Sama dengan : “select * from tabel_transaksi join tabel_pelanggan on
tabel_pelanggan.kode_pelanggan=tabel_transaksi.kode_pelanggan”;
*/
29 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
- $this->db->where();
Fungsi : Untuk menerapkan kondisi where suatu syntax query.
Contoh :
$this->db->where('nama','arnold');
$query= $this->db->get('tabel_pelanggan');
// sama dengan : “select * from data_pelanggan where nama='arnold'”;
- $this->db->like();
Fungsi : Menyatakan syntax like ke dalam query.
Contoh :
$this->db->like('nama','arnold');
$query=$this->db->get(“tabel_pelanggan”);
// sama dengan : “select * from tabel_pelanggan where nama like '%arnold%”;
- $this->db->group_by()
Fungsi : Menambahkan perintah group by pada query.
Contoh :
$this->db->group_by(“nama”);
$query=$this->db->get(‘tabel_pelanggan”);
// Sama dengan : select * from tabel_pelanggan group by nama ;
Inserting Data
- $this->db->insert();
Fungsi : Untuk menginsert data ke dalam sebuah tabel.
Kita dapat menggunakan data yang akan di insert berupa array atau object.
Contoh, menggunakan array :
30 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
$data=array(
'kode_pelanggan'=>'12345',
'nama'=>'joni',
'alamat'=>'semarang');
$this->db->insert('tabel_pelanggan',$data);
Contoh menggunakan Object :
class objexclass
{
var $kode_pelanggan=”12345”,
var $nama=”joni”,
var $alamat=”semarang”
}
$obj=new objexclass;
$this->db->insert(“tabel_pelanggan”,$obj);
Kedua contoh di atas sama dengan perintah :
// insert into mahasiswa (kode_pelanggan,nama,alamat) values('12345','joni','semarang');
- $this->db->set();
Fungsi : Fungsi ini mengambil data untuk di lakukan perintah insert dan update.
Contoh :
$this->db->set('nama',$nama);
Updating Data
- $this->db->update();
Fungsi : Untuk update data
31 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
$data=array(
'kode_pelanggan'=>'$kode_pelanggan',
'nama'=>'$nama',
'alamat'=>'$alamat');
$this->db->where('kode_pelanggan',$kode_pelanggan);
$this->db->update('tabel_pelanggan',$data);
/*
Sama dengan : update tabel_pelanggan set
kode_pelanggan=”$kode_pelanggan”,nama=”$nama”,alamat=”$alamat”
where kode_pelanggan=”$kode_pelanggan”;
*/
Atau dapat juga dengan menggunakan object.
class objexclass {
var $kode_pelanggan=”$vkode_pelanggan”,
var $nama=”$vnama”,
var $alamat=”$valamat”;
}
$object = new kelasku;
$this->db->where ('kode_pelanggan',$vkode_pelanggan);
$this->db->update (“tabel_pelanggan”,$objexclass);
Deleting Data
- $this->db->delete()
Fungsi : Menghapus data di dalam query
contoh :
$this->db->delete(“tabel_pelanggan”,array('kode_pelanggan'->$kode_pelanggan));
// Sama dengan : delete tabel_pelanggan where kode_pelanggan=”$kode_pelanggan”
32 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
2. Library E-mail
Berikut adalah contoh setting e-mail :
$this->load->library(“email”);
// Sebelumnya kita harus meload library e-mail di controller atau di
taruh di autoload.php
$this->email->from(“yc2int@multisolusi.info”,”Agus H”);
$this->email->to(“yc2int@gmail.com”);
$this->email->cc(“yc2int@yahoo.com”);
$this->email->bcc(“info@multisolusi.info”);
$this->email->subject(“Testing kirim email”);
$this->email->message(“Hallo halo... ini body massages email...”);
$this->email->send();
Setting E-mail :
Untuk Setting email ada di dalam file config.php.
perhatikan contoh berikut :
$config[“protocol”]=”sendmail”;
$config[“mailpath”]=”/usr/sbin/sendmail”;
$config[“charset”]=”iso-8859-1”;
$config[“wordwrap”]=TRUE;
$this->email->initialize($config);
3. Library Session
Class Session ini berguna untuk menyimpan informasi tertentu ke dalam cookie,
kebanyakan session ini di gunakan untuk aplikasi autentikasi user dan password.
Memanggil Library Session
Ada 2 cara untuk memanggil library session di code igniter, yaitu :
- Cara yg pertama adalah dengan menambahkan di autoload.php :
$autoload['libraries'] = array('session');
33 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
jangan lupa di config.php ditambahkan encryption key nya, karena session disimpan dalam
bentuk terenkripsi.:
$config['encryption_key'] = 'kuncienkripsi';
- Cara yang kedua adalah dengan memanggilnya di controller dengan perintah :
$this->load->library(‘session’);
Membuat data Session
Untuk men-setting data session, kita harus membuat sebuah array, yang akan di
tuliskan ke session, method utk melakukan setting session adalah : $this->session-
>set_userdata($data_session);
perhatikan contoh berikut :
public function setsession()
{
echo "coba setting session";
$this->load->library('session');
$data_session=array (
'username'=>'jontor',
'password'=>'jontorgeni',
'alamat'=>'semarang'
);
$this->session->set_userdata($data_session);
}
Mengambil data Session
Untuk mengambil data session yang sudah di set di cookies, kita menggunakan
perintah $this->session->userdata()
perhatikan contoh sbb :
public function bacasession()
{
echo "coba baca session";
$this->load->library('session');
$data_session['username']=$this->session->userdata('username');
$data_session['password']=$this->session->userdata('password');
34 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
$data_session['alamat']=$this->session->userdata('alamat');
echo "<pre>";
print_r($data_session);
echo "</pre>";
}
}
4. Library Table
Didalam Codeigniter tersedia library untuk menampilkan sebuah table, library table
di pangggil dengan menggunakan perintah :
$this->load->library(‘table’);
Data yang akan di tampilkan di dalam tabel, berupa array dua dimensi, yang
dimasukkan lewat perintah $this->table->generate($data), perhatikan contoh berikut :
$data = array(
array('Name', 'Color', 'Size'),
array('Fred', 'Blue', 'Small'),
array('Mary', 'Red', 'Large'),
array('John', 'Green', 'Medium')
);
echo $this->table->generate($data);
Anda bisa juga menampilkan hasil dari suatu query sql, ke dalam tabel, perhatikan
contoh berikut :
$data=$this->db->query('select * from tabel_pelanggan');
echo $this->table->generate($data);
Di Library tabel, data yang akan ditampilkan bisa juga di tambahkan baris per baris,
perhatikan contoh berikut :
$this->load->library('table');
$this->table->set_heading('Name', 'Color', 'Size');
35 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
$this->table->add_row('Fred', 'Blue', 'Small');
$this->table->add_row('Mary', 'Red', 'Large');
$this->table->add_row('John', 'Green', 'Medium');
echo $this->table->generate();
Tampilan dari tabel, bisa di atur dengan perintah sbb :
$tmpl = array (
'table_open' => '<table border="0" cellpadding="4" cellspacing="0">',
'heading_row_start' => '<tr>',
'heading_row_end' => '</tr>',
'heading_cell_start' => '<th>',
'heading_cell_end' => '</th>',
'row_start' => '<tr>',
'row_end' => '</tr>',
'cell_start' => '<td>',
'cell_end' => '</td>',
'row_alt_start' => '<tr>',
'row_alt_end' => '</tr>',
'cell_alt_start' => '<td>',
'cell_alt_end' => '</td>',
'table_close' => '</table>'
);
$this->table->set_template($tmpl);
5. Library Uploading Files
Untuk proses Uploading Files, Code Igniter sudah menyediakan class yang dapat
kita manfaatkan untuk keperluan itu, termasuk pembatasan ukuran files, jenis files, dll.
Untuk memahami proses dan penggunaan Library Uploading files di Code Igniter,
marilah kita perhatikan contoh berikut :
Pertama buat file view, misalnya bernama : upload_form.php, yg isinya adalah :
36 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<?php echo $error;?>
<?php echo form_open_multipart('upload/do_upload');
//diarahkan ke method do_upload pada controller class bernama upload
?>
<input type="file" name="userfile" size="20" />
<br /><br />
<input type="submit" value="upload" />
</form>
</body>
</html>
Kemudian buat View file yang akan di panggil apabila proses uploading berhasil, isinya
kurang lebih sbb :
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<h3>File anda berhasil di upload !</h3>
<ul>
<?php foreach ($upload_data as $item => $value):?>
<li><?php echo $item;?>: <?php echo $value;?></li>
<?php endforeach; ?>
</ul>
37 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
<p><?php echo anchor('upload', 'Upload File lain!'); ?></p>
</body>
</html>
Di File Controller, diisi kira-kira sbb :
<?php
class Upload extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
}
function index()
{
$this->load->view('upload_form', array('error' => ' ' ));
}
function do_upload()
{
$config['upload_path'] = './uploads/'; // tentukan direktori utk penyimpanan
$config['allowed_types'] = 'gif|jpg|png'; // jenis file yg di perbolehkan
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
}
else
{
$data = array('upload_data' => $this->upload->data());
38 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
$this->load->view('upload_success', $data);
}
}
}
?>
39 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
Berkreasi dengan Library bebas.
GroceryCRUD
Pemasangan GroceryCRUD
1. Download File GroceryCRUD dari penyedia resminya
http://www.grocerycrud.com/downloads.
2. Copy file GroceryCrud kedalam folder aplikasi Anda.
3. Extract file tersebut.
4. GroceryCrud siap digunakan.
Siapkan Database perpustakaan dengan struktur tabel sebagai berikut:
Agar kita dapat mengakses database tersebut silakan lakukan configurasi database sesuai
dengan materi library database pada pembahasan sebelumnya.
Membuat CRUD(Create, Read, Update, Delete) dengan GroceyCRUD
1. Buat sebuah controller baru dengan nama controller_crud.php.
<?php
class Controller_crud extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper('url');
$this->load->library('grocery_CRUD');
}
/* ============= Data Pelanggan ============== */
function data_pelanggan()
40 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
{
$crud = new grocery_CRUD();
$crud->set_theme('flexigrid');
$crud->set_table('tabel_pelanggan');
$crud->set_subject('Data Pelanggan');
$crud->required_fields('kode_pelanggan','nama_pelanggan','alamat');
$crud->columns('kode_pelanggan','nama_pelanggan','alamat');
$output = $crud->render();
$this->load->view('view_crud',$output);
}
/* =========== Data Buku ========== */
function data_buku()
{
$crud = new grocery_CRUD();
$crud->set_theme('flexigrid');
$crud->set_table('tabel_buku');
$crud->set_subject('Data Buku');
$crud->display_as('isbn','ISBN');
$crud->required_fields('kode_buku','judul_buku','penerbit','isbn','stok_buku');
$crud->columns('kode_buku','judul_buku','penerbit','isbn','stok_buku');
$output = $crud->render();
$this->load->view('view_crud',$output);
}
/* =========== Transaksi ============== */
function transaksi()
{
$crud = new grocery_CRUD();
$crud->set_theme('flexigrid');
$crud->set_table('tabel_transaksi');
$crud->set_subject('Transaksi');
$crud->display_as('kode_pelanggan','Peminjam');
$crud->display_as('kode_buku','Buku');
$crud->unset_delete();
$crud->set_relation('kode_pelanggan','tabel_pelanggan','nama_pelanggan');
$crud->set_relation('kode_buku','tabel_buku','judul_buku');
$crud->callback_after_insert(array($this,'update_stock_pinjam'));
$crud->edit_fields('status');
41 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
$crud->where('status','blm_kembali');
$crud->required_fields('tanggal','kode_buku','kode_pelanggan','status');
$crud->columns('kode_transaksi','tanggal','kode_buku','kode_pelanggan','status');
$output = $crud->render();
$this->load->view('view_crud',$output);
}
/* =============== Data Transaksi =============== */
function data_transaksi()
{
$crud = new grocery_CRUD();
$crud->set_theme('flexigrid');
$crud->set_table('tabel_transaksi');
$crud->set_subject('Transaksi');
$crud->display_as('kode_pelanggan','Peminjam');
$crud->display_as('kode_buku','Buku');
$crud->unset_delete();
$crud->unset_add();
$crud->unset_edit();
$crud->set_relation('kode_pelanggan','tabel_pelanggan','nama_pelanggan');
$crud->set_relation('kode_buku','tabel_buku','judul_buku');
$crud->required_fields('tanggal','kode_buku','kode_pelanggan','status');
$crud->columns('kode_transaksi','tanggal','kode_buku','kode_pelanggan','status');
$output = $crud->render();
$this->load->view('view_crud',$output);
}
/* =========== Update Stock ===========*/
function update_stock_pinjam($post_array)
{
$kode = $this->input->post(kode_buku);
$this->load->model('stock');
$this->stock->update_stock($kode);
}
}
?>
42 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
Penjelasan Kode:
 function __construct()
Pada function ini kita akan meload database, helper('url') dan library('grocery_CRUD')
secara langsung.
 function data_pelanggan()
Function data_pelanggan ini kita membuat sebuah methode baru dengan nama
data_pelanggan.
 $crud->set_theme(' ');
Mengatur tema CRUD - Sekarang hanya tersedia tema 'Flexigrid' dan 'datatables. Tema
defaultnya adalah Flexigrid.
 $crud->set_table(' ’);
Memilih tabel yang akan digunakan dari database.
 $crud->set_subject(' ');
Set subjek untuk menentukan jenis CRUD yang Anda gunakan.
 $crud->required_fields(' ');
Menetapkan kolom yang harus diisi ketika menambahkan dan mengedit data.
 $crud->columns(' ');
Kolom yang ditampilkan dan dilihat oleh pengguna
 $crud->display_as(' ');
Mengubah label dari field yang akan ditampilkan pad CRUD.
 $crud->unset_delete();
Menghilangkan operasi delete dari grid CRUD
 $crud->unset_add();
Menghilangkan operasi add dari grid CRUD
 $crud->unset_edit();
Menghilangkan operasi edit dari grid CRUD
 $crud->set_relation(‘ ’);
Menetapkan relasi 1-n pada database.
 $crud->callback_after_insert
Memangil secara otomatis sebuah fungsi sebelum melakukan proses insert pada CRUD.
 $crud->edit_fields(' ');
Field yang akan dilihat pengguna pada operasi edit.
 $crud->where(‘ ’);
43 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
Membuat kondisi where pada operasi select.
 $output = $crud->render( );
Melakukan proses render dan disimpan dengan nama variabel $output.
 $this->load->view(' ‘);
Digunakan untuk memanggil view da mengirim data ke view.
2. Selanjutnya buat sebuah view baru dengan nama stock.php.
<?php
class stock extends CI_Model{
function update_stock($a){
$query= $this->db->query("SELECT stok_buku FROM tabel_buku
WHERE kode_buku='$a'");
$hasil=$query->result();
$stock=($hasil[0]->stok_buku)-1;
$this->db->query("update tabel_buku set stok_buku='$stock'
WHERE kode_buku='$a'");
}
}
?>
3. Kemudian buat sebuah view baru dengan nama view_crud.php.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<?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>
44 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
<?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;
}
</style>
</head>
<body>
<table width="800" border="0" align="center">
<tr>
<td>
<h1><p align="center"> Aplikasi Perpustakaan </p></h1>
</td>
</tr>
<tr>
<td>
<div>
<a href='<?php echo site_url('controller_crud/data_pelanggan')?>'>Data
Pelanggan</a> |
<a href='<?php echo site_url('controller_crud/data_buku')?>'>Data Buku</a>
|
45 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
4. Membuat Trigger pengembalian buku
<a href='<?php echo site_url('controller_crud/transaksi')?>'>Transaksi</a> |
<a href='<?php echo site_url('controller_crud/data_transaksi')?>'>Data
Transaksi</a> |
</div>
</td>
</tr>
<tr>
<td>
<div style='height:20px;'></div>
<div>
<?php echo $output; ?>
</div>
</td>
</tr>
</table>
</body>
</html>
CREATE TRIGGER `perpustakaan`.`pengembalian_buku` AFTER UPDATE ON
`perpustakaan`.`tabel_transaksi`
FOR EACH ROW BEGIN
BEGIN
if (old.status = 'kembali' and new.status='blm_kembali')then
update tabel_buku set stok_buku= stok_buku-1 where kode_buku= new.kode_buku;
elseif (old.status = 'blm_kembali' and new.status='kembali')then
update tabel_buku set stok_buku= stok_buku+1 where kode_buku= new.kode_buku;
end if;
46 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2
5. Setelah ketiga file dan trigger pada sql tersebut di buat coba jalankan di url dengan
memanggil http://localhost/latihan_ci_1/index.php/controller_crud/data_pelanggan
Hasil tampilan:
END

More Related Content

What's hot

Object oriented programming dengan php
Object oriented programming dengan phpObject oriented programming dengan php
Object oriented programming dengan php
Materi Kuliah Online
 
Array
ArrayArray
Modul 3 object oriented programming dalam php
Modul 3   object oriented programming dalam phpModul 3   object oriented programming dalam php
Modul 3 object oriented programming dalam php
Abrianto Nugraha
 
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
rizki adam kurniawan
 
Pertemuan 13 Object Oriented Program (OOP)
Pertemuan 13 Object Oriented Program (OOP)Pertemuan 13 Object Oriented Program (OOP)
Pertemuan 13 Object Oriented Program (OOP)
Endang Retnoningsih
 
Konsep Oop
Konsep OopKonsep Oop
Konsep Oop
formatik
 
Dasar pemrograman C++
Dasar pemrograman C++Dasar pemrograman C++
Dasar pemrograman C++
Andan Sperrow
 
Laporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBOLaporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBO
setyadi_s
 
Tugas aplinet meresum
Tugas aplinet meresumTugas aplinet meresum
Tugas aplinet meresum
hendrajuniarto
 
8. konsep class, object dan method
8. konsep class, object dan method8. konsep class, object dan method
8. konsep class, object dan method
Saprudin Eskom
 
Debbiemistikaweni 1412510982 tugas5
Debbiemistikaweni 1412510982 tugas5Debbiemistikaweni 1412510982 tugas5
Debbiemistikaweni 1412510982 tugas5
debbie95
 
10 pemrograman berorientasi objek di php
10 pemrograman berorientasi objek di php10 pemrograman berorientasi objek di php
10 pemrograman berorientasi objek di phpJamil Jamil
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa web
art david
 
pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervan
aris
 

What's hot (15)

Object oriented programming dengan php
Object oriented programming dengan phpObject oriented programming dengan php
Object oriented programming dengan php
 
Array
ArrayArray
Array
 
Modul 3 object oriented programming dalam php
Modul 3   object oriented programming dalam phpModul 3   object oriented programming dalam php
Modul 3 object oriented programming dalam php
 
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
 
Pertemuan 13 Object Oriented Program (OOP)
Pertemuan 13 Object Oriented Program (OOP)Pertemuan 13 Object Oriented Program (OOP)
Pertemuan 13 Object Oriented Program (OOP)
 
Php 1
Php 1Php 1
Php 1
 
Konsep Oop
Konsep OopKonsep Oop
Konsep Oop
 
Dasar pemrograman C++
Dasar pemrograman C++Dasar pemrograman C++
Dasar pemrograman C++
 
Laporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBOLaporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBO
 
Tugas aplinet meresum
Tugas aplinet meresumTugas aplinet meresum
Tugas aplinet meresum
 
8. konsep class, object dan method
8. konsep class, object dan method8. konsep class, object dan method
8. konsep class, object dan method
 
Debbiemistikaweni 1412510982 tugas5
Debbiemistikaweni 1412510982 tugas5Debbiemistikaweni 1412510982 tugas5
Debbiemistikaweni 1412510982 tugas5
 
10 pemrograman berorientasi objek di php
10 pemrograman berorientasi objek di php10 pemrograman berorientasi objek di php
10 pemrograman berorientasi objek di php
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa web
 
pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervan
 

Similar to Moduloop

Konsep Overloading (1).pptx
Konsep Overloading (1).pptxKonsep Overloading (1).pptx
Konsep Overloading (1).pptx
AsepKhabrilRifao
 
mf488_10_092649.ppt
mf488_10_092649.pptmf488_10_092649.ppt
mf488_10_092649.ppt
pkerketta77nepal
 
PBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptxPBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptx
HeriPurwanto74
 
Object Oriented Programming Concept
Object Oriented Programming Concept Object Oriented Programming Concept
Object Oriented Programming Concept
EsterLumba
 
9150 8 interface
9150 8  interface9150 8  interface
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxpertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
ssuserc54f06
 
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
Jurnal IT
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATION
rahmantoyuri
 
Resume tentang oop dalam php
Resume tentang oop dalam phpResume tentang oop dalam php
Resume tentang oop dalam php
hendrajuniarto
 
Seminggu Belajar Laravel Sample
Seminggu Belajar Laravel SampleSeminggu Belajar Laravel Sample
Seminggu Belajar Laravel Sample
adnanpurnaya
 
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
iis dahlia
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2rahmi wahyuni
 
Resume tentang oop dalam php
Resume tentang oop dalam phpResume tentang oop dalam php
Resume tentang oop dalam php
hendrajuniarto
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
Namira Namirah
 
Kelas dan objek
Kelas  dan objekKelas  dan objek
Kelas dan objek
roy naldo
 
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan InterfaceJeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan InterfaceIndividual Consultants
 
Jeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interfaceJeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interface
Kristanto Wijaya
 
penjelasan konsep oop object oriented programming
penjelasan konsep oop object oriented programmingpenjelasan konsep oop object oriented programming
penjelasan konsep oop object oriented programming
softscients
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Rakhmat Dedi Gunawan
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
Teknik Komputer & Informatika
 

Similar to Moduloop (20)

Konsep Overloading (1).pptx
Konsep Overloading (1).pptxKonsep Overloading (1).pptx
Konsep Overloading (1).pptx
 
mf488_10_092649.ppt
mf488_10_092649.pptmf488_10_092649.ppt
mf488_10_092649.ppt
 
PBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptxPBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptx
 
Object Oriented Programming Concept
Object Oriented Programming Concept Object Oriented Programming Concept
Object Oriented Programming Concept
 
9150 8 interface
9150 8  interface9150 8  interface
9150 8 interface
 
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxpertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
 
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATION
 
Resume tentang oop dalam php
Resume tentang oop dalam phpResume tentang oop dalam php
Resume tentang oop dalam php
 
Seminggu Belajar Laravel Sample
Seminggu Belajar Laravel SampleSeminggu Belajar Laravel Sample
Seminggu Belajar Laravel Sample
 
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2
 
Resume tentang oop dalam php
Resume tentang oop dalam phpResume tentang oop dalam php
Resume tentang oop dalam php
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
 
Kelas dan objek
Kelas  dan objekKelas  dan objek
Kelas dan objek
 
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan InterfaceJeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
 
Jeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interfaceJeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interface
 
penjelasan konsep oop object oriented programming
penjelasan konsep oop object oriented programmingpenjelasan konsep oop object oriented programming
penjelasan konsep oop object oriented programming
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 

Recently uploaded

Materi Feedback (umpan balik) kelas Psikologi Komunikasi
Materi Feedback (umpan balik) kelas Psikologi KomunikasiMateri Feedback (umpan balik) kelas Psikologi Komunikasi
Materi Feedback (umpan balik) kelas Psikologi Komunikasi
AdePutraTunggali
 
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdfJuknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
HendraSagita2
 
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdfPanduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
MildayantiMildayanti
 
LAPORAN WALI KELAS Wahyu Widayati, S.Pd.docx
LAPORAN WALI KELAS Wahyu Widayati, S.Pd.docxLAPORAN WALI KELAS Wahyu Widayati, S.Pd.docx
LAPORAN WALI KELAS Wahyu Widayati, S.Pd.docx
moh3315
 
Pemutakhiran Data dosen pada sister.pptx
Pemutakhiran Data dosen pada sister.pptxPemutakhiran Data dosen pada sister.pptx
Pemutakhiran Data dosen pada sister.pptx
ssuser4dafea
 
Tugas CGP Mulai dari diri - Modul 2.1.pdf
Tugas CGP Mulai dari diri - Modul 2.1.pdfTugas CGP Mulai dari diri - Modul 2.1.pdf
Tugas CGP Mulai dari diri - Modul 2.1.pdf
Thahir9
 
Alur tujuan pembelajaran bahasa inggris kelas x fase e
Alur tujuan pembelajaran bahasa inggris kelas x fase eAlur tujuan pembelajaran bahasa inggris kelas x fase e
Alur tujuan pembelajaran bahasa inggris kelas x fase e
MsElisazmar
 
Modul Ajar Bahasa Indonesia Kelas 7 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Bahasa Indonesia Kelas 7 Fase D Kurikulum Merdeka - [abdiera.com]Modul Ajar Bahasa Indonesia Kelas 7 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Bahasa Indonesia Kelas 7 Fase D Kurikulum Merdeka - [abdiera.com]
Fathan Emran
 
peluang kejadian total dan kaidah nbayes
peluang kejadian total dan kaidah nbayespeluang kejadian total dan kaidah nbayes
peluang kejadian total dan kaidah nbayes
ayyurah2004
 
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIANSINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
NanieIbrahim
 
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada AnakDefenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Yayasan Pusat Kajian dan Perlindungan Anak
 
Pelatihan AI GKA abdi Sabda - Apa itu AI?
Pelatihan AI GKA abdi Sabda - Apa itu AI?Pelatihan AI GKA abdi Sabda - Apa itu AI?
Pelatihan AI GKA abdi Sabda - Apa itu AI?
SABDA
 
Biografi Presiden Republik Indonesia.pdf
Biografi Presiden Republik Indonesia.pdfBiografi Presiden Republik Indonesia.pdf
Biografi Presiden Republik Indonesia.pdf
pristayulianabila
 
Pembelajaran Ekosistem Kelas 5 Semester 1
Pembelajaran Ekosistem Kelas 5 Semester 1Pembelajaran Ekosistem Kelas 5 Semester 1
Pembelajaran Ekosistem Kelas 5 Semester 1
niswati10
 
Perencanaan Berbasis Data Satuan Pendidikan Jenjang SMP
Perencanaan Berbasis Data Satuan Pendidikan Jenjang SMPPerencanaan Berbasis Data Satuan Pendidikan Jenjang SMP
Perencanaan Berbasis Data Satuan Pendidikan Jenjang SMP
TriSutrisno48
 
Tokoh Pendidikan Universitas Negeri Jakarta.pdf
Tokoh Pendidikan Universitas Negeri Jakarta.pdfTokoh Pendidikan Universitas Negeri Jakarta.pdf
Tokoh Pendidikan Universitas Negeri Jakarta.pdf
Mutia Rini Siregar
 
Tugas_Rasianto-Refleksi - Pembelajaran Diferensiasi dalam PJOK.pdf
Tugas_Rasianto-Refleksi - Pembelajaran Diferensiasi dalam PJOK.pdfTugas_Rasianto-Refleksi - Pembelajaran Diferensiasi dalam PJOK.pdf
Tugas_Rasianto-Refleksi - Pembelajaran Diferensiasi dalam PJOK.pdf
nurfaridah271
 
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
StevanusOkiRudySusan
 
RPH BAHASA MELAYU TAHUN 6 SJKC 2024.pptx
RPH BAHASA MELAYU TAHUN 6 SJKC 2024.pptxRPH BAHASA MELAYU TAHUN 6 SJKC 2024.pptx
RPH BAHASA MELAYU TAHUN 6 SJKC 2024.pptx
YongYongYong1
 
Novel - PERISTIWA YANG MEMBERIKAN TELADAN.pptx
Novel - PERISTIWA YANG MEMBERIKAN TELADAN.pptxNovel - PERISTIWA YANG MEMBERIKAN TELADAN.pptx
Novel - PERISTIWA YANG MEMBERIKAN TELADAN.pptx
NirmalaJane
 

Recently uploaded (20)

Materi Feedback (umpan balik) kelas Psikologi Komunikasi
Materi Feedback (umpan balik) kelas Psikologi KomunikasiMateri Feedback (umpan balik) kelas Psikologi Komunikasi
Materi Feedback (umpan balik) kelas Psikologi Komunikasi
 
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdfJuknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
 
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdfPanduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
 
LAPORAN WALI KELAS Wahyu Widayati, S.Pd.docx
LAPORAN WALI KELAS Wahyu Widayati, S.Pd.docxLAPORAN WALI KELAS Wahyu Widayati, S.Pd.docx
LAPORAN WALI KELAS Wahyu Widayati, S.Pd.docx
 
Pemutakhiran Data dosen pada sister.pptx
Pemutakhiran Data dosen pada sister.pptxPemutakhiran Data dosen pada sister.pptx
Pemutakhiran Data dosen pada sister.pptx
 
Tugas CGP Mulai dari diri - Modul 2.1.pdf
Tugas CGP Mulai dari diri - Modul 2.1.pdfTugas CGP Mulai dari diri - Modul 2.1.pdf
Tugas CGP Mulai dari diri - Modul 2.1.pdf
 
Alur tujuan pembelajaran bahasa inggris kelas x fase e
Alur tujuan pembelajaran bahasa inggris kelas x fase eAlur tujuan pembelajaran bahasa inggris kelas x fase e
Alur tujuan pembelajaran bahasa inggris kelas x fase e
 
Modul Ajar Bahasa Indonesia Kelas 7 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Bahasa Indonesia Kelas 7 Fase D Kurikulum Merdeka - [abdiera.com]Modul Ajar Bahasa Indonesia Kelas 7 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Bahasa Indonesia Kelas 7 Fase D Kurikulum Merdeka - [abdiera.com]
 
peluang kejadian total dan kaidah nbayes
peluang kejadian total dan kaidah nbayespeluang kejadian total dan kaidah nbayes
peluang kejadian total dan kaidah nbayes
 
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIANSINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
 
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada AnakDefenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
 
Pelatihan AI GKA abdi Sabda - Apa itu AI?
Pelatihan AI GKA abdi Sabda - Apa itu AI?Pelatihan AI GKA abdi Sabda - Apa itu AI?
Pelatihan AI GKA abdi Sabda - Apa itu AI?
 
Biografi Presiden Republik Indonesia.pdf
Biografi Presiden Republik Indonesia.pdfBiografi Presiden Republik Indonesia.pdf
Biografi Presiden Republik Indonesia.pdf
 
Pembelajaran Ekosistem Kelas 5 Semester 1
Pembelajaran Ekosistem Kelas 5 Semester 1Pembelajaran Ekosistem Kelas 5 Semester 1
Pembelajaran Ekosistem Kelas 5 Semester 1
 
Perencanaan Berbasis Data Satuan Pendidikan Jenjang SMP
Perencanaan Berbasis Data Satuan Pendidikan Jenjang SMPPerencanaan Berbasis Data Satuan Pendidikan Jenjang SMP
Perencanaan Berbasis Data Satuan Pendidikan Jenjang SMP
 
Tokoh Pendidikan Universitas Negeri Jakarta.pdf
Tokoh Pendidikan Universitas Negeri Jakarta.pdfTokoh Pendidikan Universitas Negeri Jakarta.pdf
Tokoh Pendidikan Universitas Negeri Jakarta.pdf
 
Tugas_Rasianto-Refleksi - Pembelajaran Diferensiasi dalam PJOK.pdf
Tugas_Rasianto-Refleksi - Pembelajaran Diferensiasi dalam PJOK.pdfTugas_Rasianto-Refleksi - Pembelajaran Diferensiasi dalam PJOK.pdf
Tugas_Rasianto-Refleksi - Pembelajaran Diferensiasi dalam PJOK.pdf
 
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
 
RPH BAHASA MELAYU TAHUN 6 SJKC 2024.pptx
RPH BAHASA MELAYU TAHUN 6 SJKC 2024.pptxRPH BAHASA MELAYU TAHUN 6 SJKC 2024.pptx
RPH BAHASA MELAYU TAHUN 6 SJKC 2024.pptx
 
Novel - PERISTIWA YANG MEMBERIKAN TELADAN.pptx
Novel - PERISTIWA YANG MEMBERIKAN TELADAN.pptxNovel - PERISTIWA YANG MEMBERIKAN TELADAN.pptx
Novel - PERISTIWA YANG MEMBERIKAN TELADAN.pptx
 

Moduloop

  • 1. 1 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 Object Oriented Programming A. Definisi OOP OOP merupakan singkatan dari Object Oriented Programming adalah suatu metode pemrograman yang menggunakan objek. Objek yang dimaksud adalah suatu benda. Anda bisa menggunakan benda-benda yang ada di sekitar Anda sebagai objek seperti komputer, HP, kursi, meja, gitar, gelas, dan bahkan Anda sendiri adalah objek. Lalu apa yang membedakan antara objek dengan yang bukan objek? Setiap objek memiliki karakteristik atau sifat sendiri yang membedakan antara objek yang satu dengan objek yang lainnya. B. Class,Method(Behavior),Property(attribute) Dalam OOP selalu ada yang namanya class, method (behavior), property (attribute). Class bisa dikatakan sebagai cetakan untuk membuat objek. Method bisa dikatakan sebagai aksi yang dimiliki oleh class. Sedangkan attribute adalah karakteristik atau sifat-sifat yang dimiliki oleh objek yang dibuat nantinya. Pendeklarasian suatu class selalu terdapat sintak class yang kemudian diikuti dengan nama class dan setelah itu diikuti oleh body class. Body class selalu berada diantara kurung kurawal {}. <?php // deklarasi class Orang class Orang { // start body class // attributes class // methods class // end body class } ?> Dari deklarasi class Orang seperti contoh di atas, kita bisa menentukan karakteristiknya sebagai atribut class tersebut seperti nama, jenis kelamin, pekerjaan, dll. Ingat, setiap objek belum tentu memiliki karakteristik yang sama, jadi jika kita mengambil contoh objeknya adalah orang, maka kita bisa menjadikan nama, jenis kelamin, dan pekerjaan sebagai atribut classnya. Secara defaultnya suatu atribut class dideklarasikan dengan menggunakan sintak var yang kemudian diikuti dengan nama atributnya yang kemudian diakhiri dengan tanda semicolon (;).
  • 2. 2 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 <?php // deklarasi class Orang class Orang { // start body class // attributes class var $nama; var $jenis_kelamin; var $pekerjaan; // methods class // end body class } ?> Setelah atribut-atribut yang dibutuhkan telah kita tentukan, sekarang kita buat method- method class tersebut. Pendeklarasian method pada OOP di PHP menggunakan sintak function. Pendeklarasian method ini mirip dengan pendeklarasian fungsi-fungsi yang ada di PHP pada umumnya. Misalnya saja kita buat agar objek yang kita buat nantinya bisa menyapa, makan, dan minum. <?php // deklarasi class Orang class Orang { // start body class // attributes class var $nama; var $jenis_kelamin; var $pekerjaan; // methods class function menyapa() { echo '<p>Halo, nama saya adalah '. $this->nama .'<br />'; echo 'Saya adalah seorang '. $this->jenis_kelamin .' '; echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>'; } function makan() { echo '<p>'. $this->nama .' sedang makan.</p>'; }
  • 3. 3 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 function minum() { echo '<p>'. $this->nama .' sedang minum.</p>'; } // end body class } ?> Pada script di atas terdapat keyword $this, keyword $this menandakan kalau sedang mengakses atribut class itu sendiri. Penggunaanya dengan cara menuliskan keyword $this yang diikuti dengan tanda -> dan setelah itu diikuti dengan nama atribut yang ada dalam kelas tersebut tanpa tanda dollar $. C. Membuat Object Sisipkan kode berikut dibawah pendeklarasian class Orang di atas. <?php $candra = new Orang(); $candra->nama = ‘Candra Adi Nugroho'; $candra->jenis_kelamin = 'Laki-laki'; $candra->pekerjaan = ‘Pelajar'; // memanggil method yang ada dalam class $candra->menyapa(); $candra->makan(); $candra->minum(); $yudis = new Orang(); $yudis->nama = 'Yudistira'; $yudis->jenis_kelamin = 'Laki-laki'; $yudis->pekerjaan = 'Pelajar'; // memanggil method yang ada dalam class $yudis->menyapa(); $yudis->makan(); $yudis->minum(); ?>
  • 4. 4 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 Untuk membuat objek, Anda harus melakukan instansiasi class dengan cara mengunakan sintak new yang diikuti dengan nama classnya dan kemudian diikuti dengan tanda kurung buka dan tutup seperti pemanggilan fungsi. Nah, tahu kenapa pada saat instansiasi class terdapat tanda kurung buka dan tutup padahal tidak ada method yang bernama Orang()? Di dalam class selalu terdapat method yang selalu dijalankan ketika objek dibuat. Method ini disebut dengan constructor. Jadi ketika Anda membuat suatu object, sebenarnya Anda juga menjalankan method constructor ini. Apa itu constructor? Constructor adalah method yang akan dijalankan ketika objek dibuat. Secara umum constructor adalah method yang memiliki nama yang sama dengan nama class tersebut. Lalu apakah Anda melihat ada method Orang() dalam class Orang? Walaupun constructor tidak Anda tuliskan, class secara otomatis akan membuat constructornya sendiri. Pada PHP versi 5.3, pendeklarasian constructor tidak dengan cara menuliskan nama method yang sama dengan nama class tetapi dengan menuliskan nama method __construct() yang menandakan suatu constructor. <?php class Orang { // start body class // attributes class var $nama; var $jenis_kelamin; var $pekerjaan; // methods class function __construct($nama, $jenis_kelamin, $pekerjaan) { $this->nama = $nama; $this->jenis_kelamin = $jenis_kelamin; $this->pekerjaan = $pekerjaan; } function menyapa() { echo '<p>Halo, nama saya adalah '. $this->nama .'<br />'; echo 'Saya adalah seorang '. $this->jenis_kelamin .' '; echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>';
  • 5. 5 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 } function makan() { echo '<p>'. $this->nama .' sedang makan.</p>'; } function minum() { echo '<p>'. $this->nama .' sedang minum.</p>'; } // end body class } ?> Anda juga bisa memberikan parameter input pada setiap method yang ada di dalamnya. Pada pendeklarasian constructor di atas saya memberikan parameter input nama, jenis kelamin, dan pekerjaan. Jadi saat instansiasi, Anda bisa langsung melakukan set atribut class. <?php $candra = new Orang('Candra', 'Laki-laki', 'Pelajar'); $yudis = new Orang('Yudistira', 'Laki-laki', 'Pelajar'); // memanggil method yang ada dalam class $candra->menyapa(); $candra->makan(); $candra->minum(); // memanggil method yang ada dalam class $yudis->menyapa(); $yudis->makan(); $yudis->minum(); ?> Kedua script di atas (yang tidak menggunakan constructor dan yang menggunakan constructor) kurang lebih akan menghasilkan tampilan seperti ini:
  • 6. 6 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 . D. Modifier Adapun pendeklarasian atribut yang menggunakan sintak public, protected, dan private. Sintak-sintak tersebut dinamakan dengan access modifier yang digunakan untuk membatasi hak akses. PHP memiliki 5 Modifier yaitu Private, Protected, Public, Default (Undefined) dan Static, dimana Default dari Modifier dalam PHP adalah Public. 1. Private Private; seperti namanya modifier ini bersifat spesifik class dan tidak dapat diwariskan kepada class turunannya. Modifier ini hanya dapat diakses oleh class tersebut dan tidak dapat diakses diluar dari class tersebut. Bahkan object saja tidak dapat mengaksesnya karena memang hanya diperuntukkan untuk class tersebut. Contoh : <?php class Orang { // start body class //attribute private $nama= "Candra Adi Nugroho"; var $jenis_kelamin; var $pekerjaan; // methods class public function menyapa() { echo '<p>Halo, nama saya adalah '. $this->nama .'<br />'; echo 'Saya adalah seorang '. $this->jenis_kelamin .' ';
  • 7. 7 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>'; } } class Turunan_Orang extends Orang{ function menyapa_2(){ echo '<p>Halo, nama saya adalah '. $this->nama .'<br />'; echo 'Saya adalah seorang '. $this->jenis_kelamin .' '; echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>'; } } $a = new Orang(); $a->jenis_kelamin = 'Laki-laki'; $a->pekerjaan = 'Pelajar'; $a->menyapa(); $b = new Turunan_Orang(); $b->jenis_kelamin = 'Laki-laki'; $b->pekerjaan = 'Mahasiswa'; $b->menyapa_2(); ?> Ketika kita mencoba menjalankan program diatas maka hasilnya seperti berikut: Dari hasil di atas bisa kita lihat bahwa pada kelas turunan variabel nama tidak terbaca. Untuk mengetahui perbedaannya coba ganti modifier private dengan public dan jalankan scriptnya lagi, maka akan terlihat perbedaannya. 2. Protected Protected; Modifier ini diproteksi hanya untuk class dan turunan class tersebut. Jadi modifier sedikit lebih terbuka daripada modifier Private namun belum bisa dipanggil secara langsung oleh object class. Untuk lebih jelas perhatikan contoh berikut : <?php class Modifier{
  • 8. 8 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 protected function cetak(){ echo 'Ini modifier protected'; } } class Turunan_Modifier extends Modifier{ public function setPublic(){ $this->cetak(); } } //$a = new Modifier(); //$a->cetak(); $b = new Turunan_Modifier(); $b->setPublic(); //$b->cetak(); ?> Pada contoh diatas akan keluar output Ini modifier protected karena kita memanggil function cetak dari extends class (class turunan) yang bersifat public. Secara singkat kira-kira beginilah alur program diatas. Class Modifier mempunyai Turunan Class yaitu Turunan_Modifier sehingga secara otomatis Turunan_Modifier memiliki semua function yang dimiliki oleh class Modifier. Karena memiliki function yang dimiliki class Modifier, berarti Turunan_Modifier juga memiliki fungsi cetak. Karena ingin agar object dapat mengakses fungsi cetak, dibuatlah sebuah fungsi pada class Turunan yaitu setPublic yang sebenarnya adalah fungsi cetak namun dengan akses public. 3. Static Static; Pada modifier ini kita dapat langsung menggunakan variable atau fungsi yang menggunakan modifier ini tanpa perlu membuat object dari class terlebih dahulu. Contoh sebagai berikut: <?php class Modifier { // start body class
  • 9. 9 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 Static function setStatic() { echo '<p>Halo, ini adalah modifier static'; } } Modifier::setStatic(); ?> 4. Public Public; Seperti namanya modifier ini bersifat terbuka untuk semua object maunpun turunan class dari class yang memiliki modifier public. Untuk lebih jelas mari kita liat langsung saja contoh codenya. <?php class sayaPublic{ public function setPublic(){ echo 'Saya Public Function'; } } $public = new sayaPublic(); $public->setPublic(); ?> Bila dilihat secara sekilas antara modifier public dan static hampir sama, hanya perbedaannya static tidak perlu membuat object terlebih dahulu sedangkan public kita harus membuat object terlebih dahulu. 5. Default (Undefined) Modifier Public merupakan default dari modifier pada OOP PHP, jadi untuk function yang tidak di definisikan modifiernya secara otomatis akan menjadi modifier Public. Semua sifat yang dimiliki modifier public akan di miliki oleh function ini. Sebagai contoh: <?php // deklarasi class Orang
  • 10. 10 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 class Orang { // start body class // attributes class var $nama; var $jenis_kelamin; var $pekerjaan; // methods class function menyapa() { echo '<p>Halo, nama saya adalah '. $this->nama .'<br />'; echo 'Saya adalah seorang '. $this->jenis_kelamin .' '; echo 'yang memiliki pekerjaan sebagai '. $this->pekerjaan .'</p>'; } } $candra= new Orang(); $candra->nama= 'Candra Adi Nugroho'; $candra->jenis_kelamin= 'Laki-Laki'; $candra->pekerjaan= 'Pelajar'; $candra->menyapa(); ?> E. Pewarisan/extends Class Pewarisan digunakan agar kita dapat menggunakan properties dan metode dari class yang sudah ada dengan cara diwarisi oleh class yang akan menggunakan properties dan metodenya. Syntak: Class Nama_Pewaris extends nama_yang_mewarisi { Kode yang di eksekusi; } Contoh: <?php class Modifier{
  • 11. 11 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 protected function cetak(){ echo 'Ini modifier protected'; } } class Turunan_Modifier extends Modifier{ public function setPublic(){ $this->cetak(); } } //$a = new Modifier(); //$a->cetak(); $b = new Turunan_Modifier(); $b->setPublic(); //$b->cetak(); ?>
  • 12. 12 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 CodeIgniter A. Definisi CodeIgniter adalah aplikasi open source yang berupa framework dengan model MVC (Model, View, Controller) untuk membangun website dinamis dengan menggunakan PHP.(Sumber: http://id.wikipedia.org/wiki/CodeIgniter) B. Konsep MVC Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu : 1. View, merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model. 2. Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view. 3. Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi. Dengan menggunakan prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan developernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designer yang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan maintanability dan organisasi kode. Walaupun demikian dibutuhkan komunikasi yang baik antara programmer dan designer dalam menangani variabel-variabel yang akan ditampilkan. C. Kelebihan CodeIgniter Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain : 1. Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat
  • 13. 13 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain. 2. Konfigurasi yang sangat minim (nearly zero configuration) : tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya perlu merubah sedikit saja file pada folder config. 3. Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru. 4. Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami. 5. Dan banyak lagi yang lainnya. D. Instalasi 1) Download file installer (file dalam format zip) pada website resmi CodeIgniter http://codeigniter.com/ (Versi terakhir CodeIgniter adalah versi 2.1.2). 2) Copy file yang telah didownload kedalam folder web server Anda, misal D:xampphtdocs. 3) Extract file tersebut. 4) Rubah nama folder CodeIgniter_2.1.2 sesuai dengan yang Anda inginkan misal: “latihan_ci_1” Untuk memulai menggunakan CodeIgniter terlebih dahulu kita rubah base URLnya dengan cara edit file config.php yang ada pada application/config/config.php dan set base URL anda, misal : http://localhost/latihan_ci_1 E. Struktur File CI CI adalah sebuah php framework yang berupa kumpulan folder dan file php, java script,css,txt dan file berbasis web lainnya dengan setting tertentu untuk menggunakannya dan menyediakan library dan helper yang dapat di manfaatkan di dalam pemrograman php. CI di jalankan under web dan harus dengan web server. Program CI cukup di letakkan di bawah folder directory web server anda. Berikut adalah struktur file CI :
  • 14. 14 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 F. Coding dengan CodeIgniter a. Mencetak “hello world” Berikut kita akan mempraktekan pemrograman php dengan CI. Kita akan menampilkan tulisan “Hello World” ke dalam browser kita. Langkah-langkah nya adalah sebagai berikut : 1. Buka Text Editor anda. Lalu buatlah sebuah controller di dalam direktory CI anda, yaitu di : application/controllers. 2. Tulis lah code sbb : <?php class Hellocontroller extends CI_controller{ function index(){ $this->load->view('hello_world'); } } ?>
  • 15. 15 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 Beri nama file hellocontroller.php. Yang harus di perhatikan : - Nama class harus di awali huruf besar. - Nama class harus sama dengan nama file. - Function index adalah function default. Di url tidak perlu di tuliskan nama function indexnya. Kalau nama function selain index, perlu di tulis di url nya. Penjelasan kode: ○ class Hellocontroller extends CI_controller, artinya kita membuat class dengan nama Hellocontroller. ○ function index, artinya kita membuatkan function index di dalam class Hellocontroller. Function ini meruppakan function yang akan ditampilkan pertama kali pada saat kita memanggil class Hellocontroller. ○ $this->load->view('hello_world'), memanggil view dengan nama hello_world.php 3. Buat file baru dengan nama hello_world.php di application/views Tulis code sbb : <? Php echo “Hello World”; ?> 4. Misal base_url : http://localhost/latihan_ci_1, maka jalankan di url anda menjadi : http://localhost/latihan_ci_1/hellocontroller. Maka akan muncul hasil nya. b. Membuat form Form pada CI dapat di buat dengan menggunakan helper atau dengan syntax html biasa. Pada kesempatan kali ini, kita akan mencoba membuat form dengan menggunakan helper form.Untuk menggunakan helper form kita perlu mengaktifkan helper form dengan cara mengedit ./application/config/autoload.php dan kita tambahkan form pada array helper seperti berikut: $autoload['helper'] = array('form'); Kemudian buatlah sebuah controller dengan nama fil form_controller. Seperti berikut :
  • 16. 16 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 <?php class Form_controller extends CI_controller{ function index(){ $this->load->view('form'); } function cetak_data(){ $hasil['data'] = array( 'kd_buku' => $this->input->post('kd_buku'), 'judul' => $this->input->post('judul'), 'penerbit' => $this->input->post('penerbit'), 'isbn' => $this->input->post('isbn'), 'stock' => $this->input->post('stock') ); $this->load->view('form',$hasil); } } ?> Selanjutnya kita akan membuat form inputan, buat file baru dengan nama form.php pada application/views. Selanjutnya ketikkan kode seperti berikut: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Input Buku</title> </head> <body> <?php echo form_open('form_controller/cetak_data'); echo "<table align='center' width='400'>"; $field1=array( 'name' => 'kd_buku', 'size'=>'15'); echo "<tr><td>Kode Buku</td><td> :</td><td>".form_input($field1)."</td></tr>";
  • 17. 17 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 $field2=array( 'name' => 'judul', 'size'=>'30'); echo "<tr><td>Judul</td><td> :</td><td>".form_input($field2)."</td></tr>"; $field3=array( 'name' => 'penerbit', 'size'=>'30'); echo "<tr><td>Penerbit</td><td> :</td><td>".form_input($field3)."</td></tr>"; $field4=array( 'name' => 'isbn', 'size'=>'30'); echo "<tr><td>ISBN</td><td> :</td><td>".form_input($field4)."</td></tr>"; $field5=array( 'name' => 'stock', 'size'=>'11'); echo "<tr><td>Stock</td><td> :</td><td>".form_input($field5)."</td></tr>"; echo "<tr><td>".form_submit('mysubmit','Input')."</tr></td>" ; echo "</table>"; echo "<p><p><p>"; ?> <?php if(isset($data)){ ?> <p align="center"><font size="+2" color="#0000FF"> Data Buku </font></p> <table width="400" border="1" align="center"> <tr> <td width="85">Kode Buku</td> <td width="8">:</td> <td width="185"><?php echo $data['kd_buku'];?></td> </tr> <tr> <td>Judul</td> <td>:</td>
  • 18. 18 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 <td><?php echo $data['judul'];?></td> </tr> <tr> <td>Penerbit</td> <td>:</td> <td><?php echo $data['penerbit'];?></td> </tr> <tr> <td>ISBN</td> <td>:</td> <td><?php echo $data['isbn'];?></td> </tr> <tr> <td>Stock</td> <td>:</td> <td><?php echo $data['stock'];?></td> </tr> </table> <?php } ?> </body> </html> Untuk melihat hasilnya coba kita panggil di browser dengan mengetikkan alamat: http://localhost/latihan_ci_1/index.php/form_controller. Maka akan tampil form inputan seperti gambar berikut: Ketika kita melakukan prosess inputan maka akan menghasilkan tampilan seperti berikut:
  • 19. 19 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 c. Passing Variabel antar M-V-C Antara Model, View, dan Controller, selalu bertukar data lewat parameter atau nilai2 tertentu yang dimasukkan ke dalam variabel. Dalam tutorial praktis ini kita akan memberikan beberapa contoh sederhana untuk memahami konsep ini. 1. Dari URL ke Controller Untuk memasukkan nilai tertentu ke dalam function di dalam controller, kita menggunakan URL sbb: http://usm.multisolusi.info/perpustakaan/index.php/namacontroller/namafungsi/nilai sebagai contoh : misal di dalam controller terdapat kode sbb : contoh : <?php class cv extends CI_Controller
  • 20. 20 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 { public function __Construct() { parent::__Construct(); } public function index() { echo "ini fungsi index"; } public function tampilkan($inputan) { echo "anda memasukkan : $inputan"; } } ?> untuk memasukkan inputan ke dalam fungsi tampilkan(), melalui variabel $inputan, maka di URL browser kita ketikkan : http://usm.multisolusi.info/perpustakaan/index.php/cv/tampilkan/IniYgDimasukkan hasilnya adalah : anda memasukkan : IniYgDimasukkan 2. Passing Variabel antar Controller-View Syntax memanggil View dari controller adalah : $this->load->view(‘nama_view’,$variabel_array); Bagaimana mengirim suatu nilai dari Controller ke view ? Perhatikan function tampilkan() pada kode controller berikut : <?php class cv extends CI_Controller
  • 21. 21 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 file view, bernama tampilkan.php , berisi kode sbb : <?php echo "halo ini view <br>"; echo "anda memasukkan : $inputan "; ?> maka di dalam file view yang di panggil dari controller, tersebut akan terdapat variabel bernama $inputan, yang nilainya adalah seperti nilai yang kita masukkan dari browser/URL -> controller hingga ke -> view. 3. Passing Variabel antara Controller - Model Mengirim sebuah nilai variabel tertentu dari Controller ke Model, dilakukan dengan cara memanggil model dan memanfaatkan parameter pada fungsi di dalam model, Model di panggil dengan cara : $this->load->model(‘nama_model’); $this->nama_model->namamethod($parameter); { public function __Construct() { parent::__Construct(); } public function index() { echo "ini fungsi index"; } public function tampilkan($inputan) { $var['inputan']=$inputan; $this->load->view('tampilkan',$var); } } ?>
  • 22. 22 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 sedangkan untuk mengirim nilai2 tertentu dari sebuah method di dalam model ke controller, atau ke mana saja yang memanggil method tersebut, kita menggunakan perintah : return <nilai tertentu> Untuk lebih jelasnya perhatikan contoh berikut : Di dalam Controller terdapat kode sbb : <?php class cm extends CI_Controller { function index() { $a=3; $b=5; $this->load->model('model1'); $hasil=$this->model1->tambah($a,$b); echo "<br> hasil pertambahan dari $a + $b = $hasil"; } } di Model yang di panggil (model1.php) berisi kode sbb : <?php class model1 extends CI_Model { Public function tambah($a,$b) { $c=$a+$b; return $c; } }
  • 23. 23 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 d. Pengenalan Library Code Igniter 1. Library Database Untuk dapat mengakses database, sebelumnya kita harus mengkonfigurasi file database.php pada direktori : ./application/config/database.php kemudian cari dan edit baris berikut : $db['default']['hostname'='202.122.14.202'; $db['default']['username']='perpustakaan'; $db['default']['password']='isi_password_mysql'; $db['default']['database']='perpustakaan'; $db['default']['dbdriver'] = 'mysql'; pada contoh diatas, kita menggunakan database mysql. Code Igniter saat ini mendukung beberapa jenis database yaitu : mysql, mysqli, postgre, odbc, mssql, sqlite, oci8 Memanggil Library Database Untuk mengaktifkan library database, kita perlu mengedit ./application/config/autoload.php kita tambahkan nama2 library yang akan kita “autoload”, dengan mengedit array sbb : $autoload['libraries'] = array('database'); atau bisa juga library di panggil di controller, dengan memberikan perintah sbb : untuk CodeIgniter versi 2.x $this->load->database(); atau untuk CodeIgniter versi 1.x : $this->load->library(‘database’);
  • 24. 24 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 Contoh kasus sederhana berikut adalah, kita ingin menampilkan data dari tabel : tabel_buku, yang di dalamnya terdapat filed : kode_buku, judul_buku, penerbit, isbn, stok_buku pertama kita buat 3 buah file (masing-masing satu file di controller, model, dan view) file controller, dengan nama : perpustakaan.php , yang isinya adalah : <?php class perpustakaan extends CI_Controller { function __construct() { // Call the Model constructor parent::__construct(); } function index() { echo "ini adalah index dari controller perpustakaan"; } function tampil_buku() { // $this->load->database(); //----> tidak perlu karena sudah di tulis di autoload.php $this->load->model('mtampil'); //---> kita panggil model mtampil $data_buku['databuku']=$this->mtampil->tampil_data_buku(); //---> kita panggil fungsi tampil_data_buku() //---> pada model mtampil, hasil kita masukkan //---> ke variabel array $data_buku $this->load->view('tampilbuku',$data_buku); } } ?> file model bernama mtampil.php , isinya adalah : <?php class mtampil extends CI_Model { public function index()
  • 25. 25 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 { } public function tampil_data_buku() { $query='select kode_buku,judul_buku,penerbit,isbn,stok_buku from tabel_buku'; $hasil=$this->db->query($query); return $hasil->result(); } ?> file view bernama tampilbuku.php , isinya adalah : <?php echo "Tampil data buku <br>"; echo "<table border=1>"; echo "<tr><td>kode buku</td> <td>judul buku</td> <td> penerbit </td> <td> isbn </td> <td> stok buku </td> </tr>"; foreach ($databuku as $isi) { echo "<tr>"; echo "<td>"; print ($isi->kode_buku); echo "</td>"; echo "<td>"; print ($isi->judul_buku); echo "</td>"; echo "<td>"; print ($isi->penerbit); echo "</td>"; echo "<td>"; print ($isi->isbn); echo "</td>"; echo "<td>"; print ($isi->stok_buku); echo "</td>"; echo "</tr>"; } ?>
  • 26. 26 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 Hanya dengan 3 file sederhana diatas, kita sudah bisa menampilkan data dari tabel data_buku Berikut penjelasannya : - Di dalam controller tersebut kita memanggil model yg bernama mtampil (mtampil.php), perhatikan kode berikut : $this->load->model('mtampil'); //---> kita panggil model mtampil - kemudian dari dalam model mtampil, terdapat method bernama tampil_data_buku(), perhatikan kode berikut : $data_buku['databuku']=$this->mtampil->tampil_data_buku(); //---> kita panggil fungsi tampil_data_buku() method tersebut ( model mtampil method tampil_data_buku() ) berisi query ke tabel data_buku, perhatikan kode dibawah ini : public function tampil_data_buku() { $query='select kode_buku,judul_buku,penerbit,isbn,stok_buku from tabel_buku'; $hasil=$this->db->query($query); return $hasil->result(); } hasil pemanggilan dari method tampil_data_buku() di masukkan ke dalam variabel array bernama data_buku, yang kemudian, variabel tersebut di kirim ke view untuk ditampilkan. Didalam file view bernama tampilbuku.php , variabel tersebut diolah kemudian di tampilkan, perhatikan kode berikut : foreach ($databuku as $isi) { echo "<tr>"; echo "<td>"; print ($isi->kode_buku);
  • 27. 27 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 echo "</td>"; echo "<td>"; print ($isi->judul_buku); echo "</td>"; echo "<td>"; print ($isi->penerbit); echo "</td>"; echo "<td>"; print ($isi->isbn); echo "</td>"; echo "<td>"; print ($isi->stok_buku); echo "</td>"; echo "</tr>"; } Active Record di Code Igniter Di Code Igniter untuk mengakses suatu tabel dalam database, ada dua cara, yaitu dengan menggunakan SQL-Query, atau menggunakan active record, beberapa fungsi utama active record, di Code Igniter diantaranya adalah : Select Data - $this->db->get() Fungsi : Untuk menampilkan semua isi tabel mahasiswa. Contoh : $this->db->get('tabel_pelanggan'); setara dengan : select * from tabel_pelanggan. Parameter pertama dan kedua memuat limit dan offset, yaitu : $query=$this->db->get('tabel_pelanggan',10,20) setara dengan : select * from tabel_pelanggan limit 10,20 - $this->db->get_where(); Fungsi : Untuk menampilkan semua isi tabel dengan di tambah kondisi where
  • 28. 28 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 Contoh : $this->db-> get_where ('tabel_pelanggan',array('id_pelanggan'=>$id),$limit,$offset); // Sama dengan : “select * from tabel_pelanggan where id_pelanggan='$id' limit 20, 10”; - $this->db->select(); Fungsi : Untuk memilih atribut kolom tabel yang akan di proses dengan perintah select. Contoh : $this->db->select('kode_pelanggan,nama,alamat'); $query=$this->db->get('tabel_pelanggan’); // Sama dengan : select kode_pelanggan,nama,alamat from tabel_pelanggan; - $this->db->from(); Fungsi : Untuk memilih tabel. contoh : $this->db->select('kode_pelanggan,nama,alamat'); $this->db->from('data_pelanggan'); $query=$this->db->get(); // Sama dengan : select kode_pelanggan,nama,alamat from tabel_pelanggan; - $this->db->join(); Fungsi : Untuk melakukan perintah join terhadap 2 atau lebih tabel. Contoh : $this->db->select(“*”); $this->db->from(“tabel_transaksi”); $this->db->join(“tabel_pelanggan”,”tabel_pelanggan.kode_pelanggan=tabel_transaksi.kode_pelanggan”); $query=$this->db->get(); /* Sama dengan : “select * from tabel_transaksi join tabel_pelanggan on tabel_pelanggan.kode_pelanggan=tabel_transaksi.kode_pelanggan”; */
  • 29. 29 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 - $this->db->where(); Fungsi : Untuk menerapkan kondisi where suatu syntax query. Contoh : $this->db->where('nama','arnold'); $query= $this->db->get('tabel_pelanggan'); // sama dengan : “select * from data_pelanggan where nama='arnold'”; - $this->db->like(); Fungsi : Menyatakan syntax like ke dalam query. Contoh : $this->db->like('nama','arnold'); $query=$this->db->get(“tabel_pelanggan”); // sama dengan : “select * from tabel_pelanggan where nama like '%arnold%”; - $this->db->group_by() Fungsi : Menambahkan perintah group by pada query. Contoh : $this->db->group_by(“nama”); $query=$this->db->get(‘tabel_pelanggan”); // Sama dengan : select * from tabel_pelanggan group by nama ; Inserting Data - $this->db->insert(); Fungsi : Untuk menginsert data ke dalam sebuah tabel. Kita dapat menggunakan data yang akan di insert berupa array atau object. Contoh, menggunakan array :
  • 30. 30 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 $data=array( 'kode_pelanggan'=>'12345', 'nama'=>'joni', 'alamat'=>'semarang'); $this->db->insert('tabel_pelanggan',$data); Contoh menggunakan Object : class objexclass { var $kode_pelanggan=”12345”, var $nama=”joni”, var $alamat=”semarang” } $obj=new objexclass; $this->db->insert(“tabel_pelanggan”,$obj); Kedua contoh di atas sama dengan perintah : // insert into mahasiswa (kode_pelanggan,nama,alamat) values('12345','joni','semarang'); - $this->db->set(); Fungsi : Fungsi ini mengambil data untuk di lakukan perintah insert dan update. Contoh : $this->db->set('nama',$nama); Updating Data - $this->db->update(); Fungsi : Untuk update data
  • 31. 31 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 $data=array( 'kode_pelanggan'=>'$kode_pelanggan', 'nama'=>'$nama', 'alamat'=>'$alamat'); $this->db->where('kode_pelanggan',$kode_pelanggan); $this->db->update('tabel_pelanggan',$data); /* Sama dengan : update tabel_pelanggan set kode_pelanggan=”$kode_pelanggan”,nama=”$nama”,alamat=”$alamat” where kode_pelanggan=”$kode_pelanggan”; */ Atau dapat juga dengan menggunakan object. class objexclass { var $kode_pelanggan=”$vkode_pelanggan”, var $nama=”$vnama”, var $alamat=”$valamat”; } $object = new kelasku; $this->db->where ('kode_pelanggan',$vkode_pelanggan); $this->db->update (“tabel_pelanggan”,$objexclass); Deleting Data - $this->db->delete() Fungsi : Menghapus data di dalam query contoh : $this->db->delete(“tabel_pelanggan”,array('kode_pelanggan'->$kode_pelanggan)); // Sama dengan : delete tabel_pelanggan where kode_pelanggan=”$kode_pelanggan”
  • 32. 32 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 2. Library E-mail Berikut adalah contoh setting e-mail : $this->load->library(“email”); // Sebelumnya kita harus meload library e-mail di controller atau di taruh di autoload.php $this->email->from(“yc2int@multisolusi.info”,”Agus H”); $this->email->to(“yc2int@gmail.com”); $this->email->cc(“yc2int@yahoo.com”); $this->email->bcc(“info@multisolusi.info”); $this->email->subject(“Testing kirim email”); $this->email->message(“Hallo halo... ini body massages email...”); $this->email->send(); Setting E-mail : Untuk Setting email ada di dalam file config.php. perhatikan contoh berikut : $config[“protocol”]=”sendmail”; $config[“mailpath”]=”/usr/sbin/sendmail”; $config[“charset”]=”iso-8859-1”; $config[“wordwrap”]=TRUE; $this->email->initialize($config); 3. Library Session Class Session ini berguna untuk menyimpan informasi tertentu ke dalam cookie, kebanyakan session ini di gunakan untuk aplikasi autentikasi user dan password. Memanggil Library Session Ada 2 cara untuk memanggil library session di code igniter, yaitu : - Cara yg pertama adalah dengan menambahkan di autoload.php : $autoload['libraries'] = array('session');
  • 33. 33 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 jangan lupa di config.php ditambahkan encryption key nya, karena session disimpan dalam bentuk terenkripsi.: $config['encryption_key'] = 'kuncienkripsi'; - Cara yang kedua adalah dengan memanggilnya di controller dengan perintah : $this->load->library(‘session’); Membuat data Session Untuk men-setting data session, kita harus membuat sebuah array, yang akan di tuliskan ke session, method utk melakukan setting session adalah : $this->session- >set_userdata($data_session); perhatikan contoh berikut : public function setsession() { echo "coba setting session"; $this->load->library('session'); $data_session=array ( 'username'=>'jontor', 'password'=>'jontorgeni', 'alamat'=>'semarang' ); $this->session->set_userdata($data_session); } Mengambil data Session Untuk mengambil data session yang sudah di set di cookies, kita menggunakan perintah $this->session->userdata() perhatikan contoh sbb : public function bacasession() { echo "coba baca session"; $this->load->library('session'); $data_session['username']=$this->session->userdata('username'); $data_session['password']=$this->session->userdata('password');
  • 34. 34 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 $data_session['alamat']=$this->session->userdata('alamat'); echo "<pre>"; print_r($data_session); echo "</pre>"; } } 4. Library Table Didalam Codeigniter tersedia library untuk menampilkan sebuah table, library table di pangggil dengan menggunakan perintah : $this->load->library(‘table’); Data yang akan di tampilkan di dalam tabel, berupa array dua dimensi, yang dimasukkan lewat perintah $this->table->generate($data), perhatikan contoh berikut : $data = array( array('Name', 'Color', 'Size'), array('Fred', 'Blue', 'Small'), array('Mary', 'Red', 'Large'), array('John', 'Green', 'Medium') ); echo $this->table->generate($data); Anda bisa juga menampilkan hasil dari suatu query sql, ke dalam tabel, perhatikan contoh berikut : $data=$this->db->query('select * from tabel_pelanggan'); echo $this->table->generate($data); Di Library tabel, data yang akan ditampilkan bisa juga di tambahkan baris per baris, perhatikan contoh berikut : $this->load->library('table'); $this->table->set_heading('Name', 'Color', 'Size');
  • 35. 35 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 $this->table->add_row('Fred', 'Blue', 'Small'); $this->table->add_row('Mary', 'Red', 'Large'); $this->table->add_row('John', 'Green', 'Medium'); echo $this->table->generate(); Tampilan dari tabel, bisa di atur dengan perintah sbb : $tmpl = array ( 'table_open' => '<table border="0" cellpadding="4" cellspacing="0">', 'heading_row_start' => '<tr>', 'heading_row_end' => '</tr>', 'heading_cell_start' => '<th>', 'heading_cell_end' => '</th>', 'row_start' => '<tr>', 'row_end' => '</tr>', 'cell_start' => '<td>', 'cell_end' => '</td>', 'row_alt_start' => '<tr>', 'row_alt_end' => '</tr>', 'cell_alt_start' => '<td>', 'cell_alt_end' => '</td>', 'table_close' => '</table>' ); $this->table->set_template($tmpl); 5. Library Uploading Files Untuk proses Uploading Files, Code Igniter sudah menyediakan class yang dapat kita manfaatkan untuk keperluan itu, termasuk pembatasan ukuran files, jenis files, dll. Untuk memahami proses dan penggunaan Library Uploading files di Code Igniter, marilah kita perhatikan contoh berikut : Pertama buat file view, misalnya bernama : upload_form.php, yg isinya adalah :
  • 36. 36 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 <html> <head> <title>Upload Form</title> </head> <body> <?php echo $error;?> <?php echo form_open_multipart('upload/do_upload'); //diarahkan ke method do_upload pada controller class bernama upload ?> <input type="file" name="userfile" size="20" /> <br /><br /> <input type="submit" value="upload" /> </form> </body> </html> Kemudian buat View file yang akan di panggil apabila proses uploading berhasil, isinya kurang lebih sbb : <html> <head> <title>Upload Form</title> </head> <body> <h3>File anda berhasil di upload !</h3> <ul> <?php foreach ($upload_data as $item => $value):?> <li><?php echo $item;?>: <?php echo $value;?></li> <?php endforeach; ?> </ul>
  • 37. 37 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 <p><?php echo anchor('upload', 'Upload File lain!'); ?></p> </body> </html> Di File Controller, diisi kira-kira sbb : <?php class Upload extends CI_Controller { function __construct() { parent::__construct(); $this->load->helper(array('form', 'url')); } function index() { $this->load->view('upload_form', array('error' => ' ' )); } function do_upload() { $config['upload_path'] = './uploads/'; // tentukan direktori utk penyimpanan $config['allowed_types'] = 'gif|jpg|png'; // jenis file yg di perbolehkan $config['max_size'] = '100'; $config['max_width'] = '1024'; $config['max_height'] = '768'; $this->load->library('upload', $config); if ( ! $this->upload->do_upload()) { $error = array('error' => $this->upload->display_errors()); $this->load->view('upload_form', $error); } else { $data = array('upload_data' => $this->upload->data());
  • 38. 38 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 $this->load->view('upload_success', $data); } } } ?>
  • 39. 39 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 Berkreasi dengan Library bebas. GroceryCRUD Pemasangan GroceryCRUD 1. Download File GroceryCRUD dari penyedia resminya http://www.grocerycrud.com/downloads. 2. Copy file GroceryCrud kedalam folder aplikasi Anda. 3. Extract file tersebut. 4. GroceryCrud siap digunakan. Siapkan Database perpustakaan dengan struktur tabel sebagai berikut: Agar kita dapat mengakses database tersebut silakan lakukan configurasi database sesuai dengan materi library database pada pembahasan sebelumnya. Membuat CRUD(Create, Read, Update, Delete) dengan GroceyCRUD 1. Buat sebuah controller baru dengan nama controller_crud.php. <?php class Controller_crud extends CI_Controller { function __construct() { parent::__construct(); $this->load->database(); $this->load->helper('url'); $this->load->library('grocery_CRUD'); } /* ============= Data Pelanggan ============== */ function data_pelanggan()
  • 40. 40 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 { $crud = new grocery_CRUD(); $crud->set_theme('flexigrid'); $crud->set_table('tabel_pelanggan'); $crud->set_subject('Data Pelanggan'); $crud->required_fields('kode_pelanggan','nama_pelanggan','alamat'); $crud->columns('kode_pelanggan','nama_pelanggan','alamat'); $output = $crud->render(); $this->load->view('view_crud',$output); } /* =========== Data Buku ========== */ function data_buku() { $crud = new grocery_CRUD(); $crud->set_theme('flexigrid'); $crud->set_table('tabel_buku'); $crud->set_subject('Data Buku'); $crud->display_as('isbn','ISBN'); $crud->required_fields('kode_buku','judul_buku','penerbit','isbn','stok_buku'); $crud->columns('kode_buku','judul_buku','penerbit','isbn','stok_buku'); $output = $crud->render(); $this->load->view('view_crud',$output); } /* =========== Transaksi ============== */ function transaksi() { $crud = new grocery_CRUD(); $crud->set_theme('flexigrid'); $crud->set_table('tabel_transaksi'); $crud->set_subject('Transaksi'); $crud->display_as('kode_pelanggan','Peminjam'); $crud->display_as('kode_buku','Buku'); $crud->unset_delete(); $crud->set_relation('kode_pelanggan','tabel_pelanggan','nama_pelanggan'); $crud->set_relation('kode_buku','tabel_buku','judul_buku'); $crud->callback_after_insert(array($this,'update_stock_pinjam')); $crud->edit_fields('status');
  • 41. 41 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 $crud->where('status','blm_kembali'); $crud->required_fields('tanggal','kode_buku','kode_pelanggan','status'); $crud->columns('kode_transaksi','tanggal','kode_buku','kode_pelanggan','status'); $output = $crud->render(); $this->load->view('view_crud',$output); } /* =============== Data Transaksi =============== */ function data_transaksi() { $crud = new grocery_CRUD(); $crud->set_theme('flexigrid'); $crud->set_table('tabel_transaksi'); $crud->set_subject('Transaksi'); $crud->display_as('kode_pelanggan','Peminjam'); $crud->display_as('kode_buku','Buku'); $crud->unset_delete(); $crud->unset_add(); $crud->unset_edit(); $crud->set_relation('kode_pelanggan','tabel_pelanggan','nama_pelanggan'); $crud->set_relation('kode_buku','tabel_buku','judul_buku'); $crud->required_fields('tanggal','kode_buku','kode_pelanggan','status'); $crud->columns('kode_transaksi','tanggal','kode_buku','kode_pelanggan','status'); $output = $crud->render(); $this->load->view('view_crud',$output); } /* =========== Update Stock ===========*/ function update_stock_pinjam($post_array) { $kode = $this->input->post(kode_buku); $this->load->model('stock'); $this->stock->update_stock($kode); } } ?>
  • 42. 42 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 Penjelasan Kode:  function __construct() Pada function ini kita akan meload database, helper('url') dan library('grocery_CRUD') secara langsung.  function data_pelanggan() Function data_pelanggan ini kita membuat sebuah methode baru dengan nama data_pelanggan.  $crud->set_theme(' '); Mengatur tema CRUD - Sekarang hanya tersedia tema 'Flexigrid' dan 'datatables. Tema defaultnya adalah Flexigrid.  $crud->set_table(' ’); Memilih tabel yang akan digunakan dari database.  $crud->set_subject(' '); Set subjek untuk menentukan jenis CRUD yang Anda gunakan.  $crud->required_fields(' '); Menetapkan kolom yang harus diisi ketika menambahkan dan mengedit data.  $crud->columns(' '); Kolom yang ditampilkan dan dilihat oleh pengguna  $crud->display_as(' '); Mengubah label dari field yang akan ditampilkan pad CRUD.  $crud->unset_delete(); Menghilangkan operasi delete dari grid CRUD  $crud->unset_add(); Menghilangkan operasi add dari grid CRUD  $crud->unset_edit(); Menghilangkan operasi edit dari grid CRUD  $crud->set_relation(‘ ’); Menetapkan relasi 1-n pada database.  $crud->callback_after_insert Memangil secara otomatis sebuah fungsi sebelum melakukan proses insert pada CRUD.  $crud->edit_fields(' '); Field yang akan dilihat pengguna pada operasi edit.  $crud->where(‘ ’);
  • 43. 43 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 Membuat kondisi where pada operasi select.  $output = $crud->render( ); Melakukan proses render dan disimpan dengan nama variabel $output.  $this->load->view(' ‘); Digunakan untuk memanggil view da mengirim data ke view. 2. Selanjutnya buat sebuah view baru dengan nama stock.php. <?php class stock extends CI_Model{ function update_stock($a){ $query= $this->db->query("SELECT stok_buku FROM tabel_buku WHERE kode_buku='$a'"); $hasil=$query->result(); $stock=($hasil[0]->stok_buku)-1; $this->db->query("update tabel_buku set stok_buku='$stock' WHERE kode_buku='$a'"); } } ?> 3. Kemudian buat sebuah view baru dengan nama view_crud.php. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <?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>
  • 44. 44 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 <?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; } </style> </head> <body> <table width="800" border="0" align="center"> <tr> <td> <h1><p align="center"> Aplikasi Perpustakaan </p></h1> </td> </tr> <tr> <td> <div> <a href='<?php echo site_url('controller_crud/data_pelanggan')?>'>Data Pelanggan</a> | <a href='<?php echo site_url('controller_crud/data_buku')?>'>Data Buku</a> |
  • 45. 45 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 4. Membuat Trigger pengembalian buku <a href='<?php echo site_url('controller_crud/transaksi')?>'>Transaksi</a> | <a href='<?php echo site_url('controller_crud/data_transaksi')?>'>Data Transaksi</a> | </div> </td> </tr> <tr> <td> <div style='height:20px;'></div> <div> <?php echo $output; ?> </div> </td> </tr> </table> </body> </html> CREATE TRIGGER `perpustakaan`.`pengembalian_buku` AFTER UPDATE ON `perpustakaan`.`tabel_transaksi` FOR EACH ROW BEGIN BEGIN if (old.status = 'kembali' and new.status='blm_kembali')then update tabel_buku set stok_buku= stok_buku-1 where kode_buku= new.kode_buku; elseif (old.status = 'blm_kembali' and new.status='kembali')then update tabel_buku set stok_buku= stok_buku+1 where kode_buku= new.kode_buku; end if;
  • 46. 46 | M u l t i s o l u s i I n f o r m a t i k a 1 3 / 0 7 / 2 0 1 2 5. Setelah ketiga file dan trigger pada sql tersebut di buat coba jalankan di url dengan memanggil http://localhost/latihan_ci_1/index.php/controller_crud/data_pelanggan Hasil tampilan: END