• Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Moduloop

  • 673 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
673
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
74
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Object Oriented ProgrammingA. Definisi OOP OOP merupakan singkatan dari Object Oriented Programming adalah suatu metodepemrograman yang menggunakan objek. Objek yang dimaksud adalah suatu benda. Anda bisamenggunakan 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 objekdengan yang bukan objek? Setiap objek memiliki karakteristik atau sifat sendiri yang membedakan antara objek yangsatu 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 aksiyang dimiliki oleh class. Sedangkan attribute adalah karakteristik atau sifat-sifat yang dimiliki olehobjek yang dibuat nantinya. Pendeklarasian suatu class selalu terdapat sintak class yang kemudiandiikuti dengan nama class dan setelah itu diikuti oleh body class. Body class selalu berada diantarakurung 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 karakteristiknyasebagai atribut class tersebut seperti nama, jenis kelamin, pekerjaan, dll. Ingat, setiap objek belumtentu memiliki karakteristik yang sama, jadi jika kita mengambil contoh objeknya adalah orang,maka kita bisa menjadikan nama, jenis kelamin, dan pekerjaan sebagai atribut classnya. Secaradefaultnya suatu atribut class dideklarasikan dengan menggunakan sintak var yang kemudian diikutidengan nama atributnya yang kemudian diakhiri dengan tanda semicolon (;).1|Multisolusi Informatika 13/07/2012
  • 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 padaumumnya. Misalnya saja kita buat agar objek yang kita buat nantinya bisa menyapa, makan, danminum.<?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>; }2|Multisolusi Informatika 13/07/2012
  • 3. function minum() { echo <p>. $this->nama . sedang minum.</p>; } // end body class }?> Pada script di atas terdapat keyword $this, keyword $this menandakan kalau sedangmengakses atribut class itu sendiri. Penggunaanya dengan cara menuliskan keyword $this yangdiikuti dengan tanda -> dan setelah itu diikuti dengan nama atribut yang ada dalam kelas tersebuttanpa 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();?>3|Multisolusi Informatika 13/07/2012
  • 4. Untuk membuat objek, Anda harus melakukan instansiasi class dengan cara mengunakansintak new yang diikuti dengan nama classnya dan kemudian diikuti dengan tanda kurung buka dantutup seperti pemanggilan fungsi. Nah, tahu kenapa pada saat instansiasi class terdapat tanda kurungbuka dan tutup padahal tidak ada method yang bernama Orang()?Di dalam class selalu terdapat method yang selalu dijalankan ketika objek dibuat. Method inidisebut dengan constructor. Jadi ketika Anda membuat suatu object, sebenarnya Anda jugamenjalankan method constructor ini. Apa itu constructor? Constructor adalah method yangakan dijalankan ketika objek dibuat. Secara umum constructor adalah method yang memilikinama yang sama dengan nama class tersebut. Lalu apakah Anda melihat ada method Orang() dalam class Orang? Walaupun constructortidak Anda tuliskan, class secara otomatis akan membuat constructornya sendiri. Pada PHP versi5.3, pendeklarasian constructor tidak dengan cara menuliskan nama method yang sama dengannama class tetapi dengan menuliskan nama method __construct() yang menandakansuatu constructor.<?phpclass Orang {// start body class// attributes classvar $nama;var $jenis_kelamin;var $pekerjaan;// methods classfunction __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>;4|Multisolusi Informatika 13/07/2012
  • 5. }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, danpekerjaan. 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 menggunakanconstructor) kurang lebih akan menghasilkan tampilan seperti ini:5|Multisolusi Informatika 13/07/2012
  • 6. .D. Modifier Adapun pendeklarasian atribut yang menggunakan sintak public, protected, dan private.Sintak-sintak tersebut dinamakan dengan access modifier yang digunakan untuk membatasi hakakses. PHP memiliki 5 Modifier yaitu Private, Protected, Public, Default (Undefined) danStatic, 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 . ;6|Multisolusi Informatika 13/07/2012
  • 7. 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{7|Multisolusi Informatika 13/07/2012
  • 8. 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 class8|Multisolusi Informatika 13/07/2012
  • 9. 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 Orang9|Multisolusi Informatika 13/07/2012
  • 10. 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 sudahada 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{10 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 11. 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(); ?>11 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 12. CodeIgniterA. 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 pembangunanaplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan pengembanganaplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data,user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yangmembangun 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 kemampuandevelopernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designeryang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkanmaintanability dan organisasi kode. Walaupun demikian dibutuhkan komunikasi yang baik antaraprogrammer 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 cepat12 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 13. 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 dengancara edit file config.php yang ada pada application/config/config.php dan set base URL anda,misal : http://localhost/latihan_ci_1E. Struktur File CI CI adalah sebuah php framework yang berupa kumpulan folder dan file php, javascript,css,txt dan file berbasis web lainnya dengan setting tertentu untuk menggunakannya danmenyediakan library dan helper yang dapat di manfaatkan di dalam pemrograman php. CI dijalankan under web dan harus dengan web server. Program CI cukup di letakkan di bawah folderdirectory web server anda. Berikut adalah struktur file CI :13 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 14. 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); } } ?>14 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 15. 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 :15 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 16. <?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>";16 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 17. $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>17 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 18. <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:18 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 19. 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_Controller19 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 20. { 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_Controller20 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 21. { public function __Construct() { parent::__Construct(); } public function index() { echo "ini fungsi index"; } public function tampilkan($inputan) { $var[inputan]=$inputan; $this->load->view(tampilkan,$var); } } ?> 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);21 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 22. 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; } }22 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 23. 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’);23 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 24. 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()24 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 25. { } 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>"; } ?>25 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 26. 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);26 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 27. 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 where27 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 28. 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”; */28 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 29. - $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 :29 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 30. $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 data30 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 31. $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”31 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 32. 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);32 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 33. 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);33 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 34. $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);34 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 35. $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 :35 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 36. <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>36 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 37. <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());37 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 38. $this->load->view(upload_success, $data); } } } ?>38 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 39. Berkreasi dengan Library bebas. GroceryCRUDPemasangan 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 sesuaidengan 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()39 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 40. { $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);40 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 41. $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); } } ?>41 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 42. 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(‘ ’);42 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 43. 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>43 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 44. <?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> |44 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 45. <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> 4. Membuat Trigger pengembalian buku 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;45 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012
  • 46. END 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:46 | M u l t i s o l u s i I n f o r m a t i k a 13/07/2012