Inheritance, polymorphism, dan interface memungkinkan pembuatan hierarki kelas yang fleksibel dan reusabilitas kode. Interface dan kelas abstrak memungkinkan definisi perilaku standar tanpa menentukan implementasi. Polymorphism memungkinkan objek-objek dari subclass yang berbeda diperlakukan sebagai objek dari superclass.
Modul ini membahas tentang konsep pemrograman berorientasi objek dilengkapi dengan contoh source code untuk praktik. Membahas Class, Object, Pewarisan, Polimorfisme, Konstruktor
Dokumen tersebut membahas konsep Inheritance dalam pemrograman berorientasi objek, di mana subclass dapat mewarisi sifat-sifat dari parent class. Inheritance memungkinkan penggunaan ulang kode dan perilaku yang sudah ada pada parent class. Dokumen tersebut juga menjelaskan istilah-istilah terkait inheritance seperti extends, superclass, subclass, dan method overriding.
Materi yang ada pada slide ini berisi :
Inheritance (Pewarisan)
Hak akses protected
Override Method
Override Constructor
Kata kunci super
Kata kunci final
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Inheritance atau pewarisan memungkinkan penciptaan kelas baru yang mewarisi properti dan metode dari kelas induk. Kelas turunan dapat menambahkan atau menimpa perilaku asli serta mewarisi akses level dari properti dan metode kelas induk. Pewarisan tunggal dan ganda merupakan jenis pewarisan utama dalam pemrograman berorientasi objek.
Inheritance, polymorphism, dan interface memungkinkan pembuatan hierarki kelas yang fleksibel dan reusabilitas kode. Interface dan kelas abstrak memungkinkan definisi perilaku standar tanpa menentukan implementasi. Polymorphism memungkinkan objek-objek dari subclass yang berbeda diperlakukan sebagai objek dari superclass.
Modul ini membahas tentang konsep pemrograman berorientasi objek dilengkapi dengan contoh source code untuk praktik. Membahas Class, Object, Pewarisan, Polimorfisme, Konstruktor
Dokumen tersebut membahas konsep Inheritance dalam pemrograman berorientasi objek, di mana subclass dapat mewarisi sifat-sifat dari parent class. Inheritance memungkinkan penggunaan ulang kode dan perilaku yang sudah ada pada parent class. Dokumen tersebut juga menjelaskan istilah-istilah terkait inheritance seperti extends, superclass, subclass, dan method overriding.
Materi yang ada pada slide ini berisi :
Inheritance (Pewarisan)
Hak akses protected
Override Method
Override Constructor
Kata kunci super
Kata kunci final
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Inheritance atau pewarisan memungkinkan penciptaan kelas baru yang mewarisi properti dan metode dari kelas induk. Kelas turunan dapat menambahkan atau menimpa perilaku asli serta mewarisi akses level dari properti dan metode kelas induk. Pewarisan tunggal dan ganda merupakan jenis pewarisan utama dalam pemrograman berorientasi objek.
OOP dengan PHP membahas konsep-konsep dasar pemrograman berorientasi objek seperti class, object, property, method, constructor, destructor, visibility, inheritance dan lainnya. Dokumen ini juga memberikan contoh-contoh kode untuk memperjelas penerapan konsep-konsep OOP dalam PHP.
Dokumen tersebut membahas tentang array pada PHP beserta fungsi-fungsinya seperti array_combine untuk membuat array baru dengan menggunakan array sebagai key dan nilai, array_diff untuk menghitung perbedaan antar array, dan fungsi lainnya seperti sort, shuffle, dan count untuk mengurutkan, mengacak, dan menghitung jumlah elemen pada suatu array."
Dokumen tersebut membahas tentang pemrograman berorientasi objek dalam PHP, meliputi pengenalan konsep-konsep dasar seperti class, object, method, property, inheritance, dan penggunaan access modifier untuk membatasi akses properti dan method. Dokumen ini juga menjelaskan cara membuat class, object, method getter dan setter, serta contoh kode untuk mempraktikkan konsep-konsep tersebut.
Dokumen tersebut membahas perbedaan antara pemrograman berorientasi objek dan pemrograman prosedural. Pemrograman berorientasi objek fokus pada konsep objek dan interaksinya, sedangkan pemrograman prosedural fokus pada proses dan urutan langkah. Pemrograman berorientasi objek memiliki sifat abstraksi, enkapsulasi, pewarisan, dan polimorfisme.
Bab ini membahas tentang algoritma pemrograman berorientasi objek (OOP). OOP merupakan metodologi pemrograman yang memodelkan kasus nyata menjadi objek yang terdiri atas data dan metode. Kelas merupakan struktur umum objek, sedangkan objek adalah instansiasi dari kelas yang memiliki data dan metode. Contoh kelas dan objek diberikan untuk mengilustrasikan konsep dasar OOP.
Dokumen tersebut merangkum materi pemrograman berorientasi objek yang mencakup konsep class, object, method dan parameter. Terdapat beberapa contoh kode program yang mendemonstrasikan pembuatan class Buku dan Pegawai beserta property dan methodnya untuk menampilkan output.
Dokumen tersebut membahas konsep-konsep penting OOP dalam PHP seperti class, object, constructor, destructor, dan pewarisan. Juga membahas model-view-controller (MVC) sebagai arsitektur aplikasi PHP dan penggunaannya dalam framework PHP.
Class merupakan struktur dasar OOP yang terdiri atas field dan method. Object adalah perwujudan dari class yang memiliki atribut dan perilaku. Method mendefinisikan perilaku object sedangkan field menyimpan statusnya. Penamaan class, variable, dan method harus sesuai aturan PBO untuk memudahkan pemahaman program.
Dokumen tersebut membahas tentang konsep inheritance dalam pemrograman berorientasi objek. Inheritance memungkinkan suatu objek mewarisi atribut dan perilaku dari objek lain. Contoh inheritance diberikan dengan kelas hewan yang mempunyai subclass karnivora dan herbivora. Kelas hewan menjadi superclass yang dapat diwarisi oleh subclass.
Dokumen tersebut membahas tentang konsep pewarisan (inheritance) dalam pemrograman berorientasi objek Java, termasuk definisi inheritance, deklarasi inheritance, hubungan antara kelas induk dan turunan, serta contoh penerapannya.
Dokumen tersebut membahas konsep-konsep seperti overloading, overriding, dan final class/method dalam PHP beserta contoh kodenya. PHP tidak sepenuhnya mendukung overloading seperti bahasa lain namun menyediakan magic method untuk keperluan serupa."
1. Dokumen tersebut membahas konsep-konsep dasar pemrograman berorientasi objek seperti class, properti, method, objek, konstruktor, abstraksi, enkapsulasi, pewarisan, dan polimorfisme.
2. Class digunakan sebagai blueprint untuk membuat objek, properti dan method mendefinisikan karakteristik dan perilaku objek, sedangkan objek merupakan instansiasi dari class.
3. Konsep-konsep tersebut kemudian diterjem
OOP dengan PHP membahas konsep-konsep dasar pemrograman berorientasi objek seperti class, object, property, method, constructor, destructor, visibility, inheritance dan lainnya. Dokumen ini juga memberikan contoh-contoh kode untuk memperjelas penerapan konsep-konsep OOP dalam PHP.
Dokumen tersebut membahas tentang array pada PHP beserta fungsi-fungsinya seperti array_combine untuk membuat array baru dengan menggunakan array sebagai key dan nilai, array_diff untuk menghitung perbedaan antar array, dan fungsi lainnya seperti sort, shuffle, dan count untuk mengurutkan, mengacak, dan menghitung jumlah elemen pada suatu array."
Dokumen tersebut membahas tentang pemrograman berorientasi objek dalam PHP, meliputi pengenalan konsep-konsep dasar seperti class, object, method, property, inheritance, dan penggunaan access modifier untuk membatasi akses properti dan method. Dokumen ini juga menjelaskan cara membuat class, object, method getter dan setter, serta contoh kode untuk mempraktikkan konsep-konsep tersebut.
Dokumen tersebut membahas perbedaan antara pemrograman berorientasi objek dan pemrograman prosedural. Pemrograman berorientasi objek fokus pada konsep objek dan interaksinya, sedangkan pemrograman prosedural fokus pada proses dan urutan langkah. Pemrograman berorientasi objek memiliki sifat abstraksi, enkapsulasi, pewarisan, dan polimorfisme.
Bab ini membahas tentang algoritma pemrograman berorientasi objek (OOP). OOP merupakan metodologi pemrograman yang memodelkan kasus nyata menjadi objek yang terdiri atas data dan metode. Kelas merupakan struktur umum objek, sedangkan objek adalah instansiasi dari kelas yang memiliki data dan metode. Contoh kelas dan objek diberikan untuk mengilustrasikan konsep dasar OOP.
Dokumen tersebut merangkum materi pemrograman berorientasi objek yang mencakup konsep class, object, method dan parameter. Terdapat beberapa contoh kode program yang mendemonstrasikan pembuatan class Buku dan Pegawai beserta property dan methodnya untuk menampilkan output.
Dokumen tersebut membahas konsep-konsep penting OOP dalam PHP seperti class, object, constructor, destructor, dan pewarisan. Juga membahas model-view-controller (MVC) sebagai arsitektur aplikasi PHP dan penggunaannya dalam framework PHP.
Class merupakan struktur dasar OOP yang terdiri atas field dan method. Object adalah perwujudan dari class yang memiliki atribut dan perilaku. Method mendefinisikan perilaku object sedangkan field menyimpan statusnya. Penamaan class, variable, dan method harus sesuai aturan PBO untuk memudahkan pemahaman program.
Dokumen tersebut membahas tentang konsep inheritance dalam pemrograman berorientasi objek. Inheritance memungkinkan suatu objek mewarisi atribut dan perilaku dari objek lain. Contoh inheritance diberikan dengan kelas hewan yang mempunyai subclass karnivora dan herbivora. Kelas hewan menjadi superclass yang dapat diwarisi oleh subclass.
Dokumen tersebut membahas tentang konsep pewarisan (inheritance) dalam pemrograman berorientasi objek Java, termasuk definisi inheritance, deklarasi inheritance, hubungan antara kelas induk dan turunan, serta contoh penerapannya.
Dokumen tersebut membahas konsep-konsep seperti overloading, overriding, dan final class/method dalam PHP beserta contoh kodenya. PHP tidak sepenuhnya mendukung overloading seperti bahasa lain namun menyediakan magic method untuk keperluan serupa."
1. Dokumen tersebut membahas konsep-konsep dasar pemrograman berorientasi objek seperti class, properti, method, objek, konstruktor, abstraksi, enkapsulasi, pewarisan, dan polimorfisme.
2. Class digunakan sebagai blueprint untuk membuat objek, properti dan method mendefinisikan karakteristik dan perilaku objek, sedangkan objek merupakan instansiasi dari class.
3. Konsep-konsep tersebut kemudian diterjem
Atribut kelas Kapsul:
- private double panjang
- private double lebar
- private double tinggi
Method kelas Kapsul:
- private double luas(double p, double l)
Accessor method kelas Kapsul:
- public double getPanjang()
- public double getLebar()
Mutator method kelas Kapsul:
- public void setPanjang(double panjang)
- public void setLebar(double lebar)
Objek pada kelas Enkapsulasi:
- Kapsul pp = new Kapsul()
Dokumen ini membahas konsep-konsep penting OOP dalam PHP seperti class, object, constructor, destructor, dan pewarisan. Juga menjelaskan model-view-controller (MVC) sebagai arsitektur aplikasi PHP dan bagaimana kerja MVC dalam PHP framework.
Buku panduan ini memberikan penjelasan komprehensif tentang konsep dasar dan teknik-teknik penting dalam memahami framework Laravel seperti autoloader, abstract class, interface, dependency injection, dan lainnya. Buku ini berisi contoh-contoh kode yang mudah dipahami untuk mempelajari penerapan konsep-konsep tersebut dalam pemrograman PHP menggunakan Laravel.
Dokumen ini membahas konsep-konsep penting OOP dalam PHP seperti class, object, constructor, destructor, dan pewarisan serta konsep MVC untuk membangun aplikasi PHP. Class digunakan untuk mengelompokkan data dan method, object adalah instansiasi dari class, dan constructor/destructor berfungsi saat pembuatan/penghapusan object. Pewarisan memungkinkan turunan class mewarisi sifat induknya. MVC memisahkan kode ke model, view, dan controller dimana model
Dokumen tersebut membahas konsep-konsep dasar pemrograman berorientasi objek seperti class, encapsulation, attribute, method, inheritance, dan polymorphism beserta contoh-contohnya.
Jeni intro1-bab11-pewarisan, polimorfisme, dan interfaceKristanto Wijaya
Dokumen tersebut membahas tentang pewarisan, polimorfisme, dan interface dalam pemrograman berbasis objek Java. Secara khusus, dibahas tentang bagaimana suatu kelas dapat mewarisi sifat dari kelas induk dan menimpa metode, serta bagaimana interface dapat mendefinisikan metode tanpa mendefinisikan tubuh metode."
Atribut dari Kelas Kapsul
- private double panjang
- private double lebar
- private double tinggi
Method dari Kelas Kapsul
- private double luas(double p, double l)
Accessor Method dari Kelas Kapsul
- public double getPanjang()
- public double getLebar()
Mutator Method dari Kelas Kapsul
- public void setPanjang(double panjang)
- public void setLebar(double lebar)
Objek pada kelas Enkapsulasi
- Kapsul pp
Modul Ajar Bahasa Indonesia Kelas 7 Fase D Kurikulum Merdeka - [abdiera.com]Fathan Emran
Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka - abdiera.com. Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka. Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka. Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka. Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka. Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka.
Materi ini membahas tentang defenisi dan Usia Anak di Indonesia serta hubungannya dengan risiko terpapar kekerasan. Dalam modul ini, akan diuraikan berbagai bentuk kekerasan yang dapat dialami anak-anak, seperti kekerasan fisik, emosional, seksual, dan penelantaran.
Universitas Negeri Jakarta banyak melahirkan tokoh pendidikan yang memiliki pengaruh didunia pendidikan. Beberapa diantaranya ada didalam file presentasi
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