Tutorial ini adalah bagian 3 tutorial sebelumnya yang membahas teknik koneksi database dan Operasi CRUD dasar. Mengingat ORM ini adalah teknik baru dan agar tutorial ini bisa digunakan secara independen tanpa membaca 3 artikel selanjutnya maka saya akan menampilkan kembali struktur tabel, struktur project dan tampilan UInya. Perbedaan mendasar antara teknik ORM denga teknik sebelumnya, disini anda tidak perlu melakukan query secara manual.

Sebelum lebih jauh, silahkan anda baca konsep Active Record dan ORM di website Wikipedia untuk melihat gambaran ORM dan website phpactiverecord.org untuk mengetahui cara kerja Active Record. Konsep ORM pertama kali dipopulerkan oleh hibernate dan Active record diadopsi dari RUby on Rail.

Catatan lain disini, PHP active record (ORM) ini memanfaatkan driver PDO, artinya teknik ini bisa dipakai disembarang database DENGAN SYARAT databasenya didukung oleh PHP. Selain librari ini, sebenarnya library ORM di PHP sangat banyak seperti contohnya Propel, doctrine dan redbeanPHP. Saya memilih menggunakan Active record karena librarinya kecil, mudah dipahami dan powerful.

Rancangan Tabel kampus

CREATE TABLE IF NOT EXISTS `kampus` (
  `idkampus` int(11) NOT NULL AUTO_INCREMENT,
  `nama` varchar(50) NOT NULL,
  `alamat` varchar(100) NOT NULL,
  PRIMARY KEY (`idkampus`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 ;

Struktur File project

|   index.php
|
+---assets
|   +---css
|   +---fonts
|   +---js        
+---inc
|       config.php
+--- ORM Lib
    +--ActiveRecord.php
+---model
    +----kampus.php
|
+---kampus
        kampus_action.php
        kampus_form.php
        kampus_view.php

Jika dibandingkan dengan Tutorial sebelumnya, tampak perbedaannya ada pada file ActiveRecord.php dan folder ORMlib yang berisi file library PHP untuk mendukung operasi database menggunakan teknik ORM. Perbedaan selanjutnya ada folder baru dengan nama model dengan isinya file kampus.php. Catatan disini, karena tabel kita cuma satu, maka modelnya cuma satu, namun jika kita punya banyak tabel maka isi model ini juga akan sebanyak tabelnya.

Tampilan Web

tampilancrud

Code Program

model data

ORM memetakan struktur database relasional menjadi Object. Tujuannya agar database bisa dengan mudah dimanipulasi dengan style OOP. PHP active record sendiri adalah library yang menekankan pada kemudahan dan konvensi penulisan kode. Salah satu konvensinya adalah setiap primary key harus diberi nama id dengan tipe integer auto increment. Namun klo kia analisa tabel kita tidak mengikuti konvensi yang ditetapkan oleh librari ini. Solusinya? buat konfigurasi didalam kelas kampus.php

class Kampus extends ActiveRecord\Model {
	 static $table_name = 'kampus';
 
    # explicit pk since our pk is not "id" 
    static $primary_key = 'idkampus';
  
}

Koneksi database

ActiveRecord\Config::initialize(function($cfg)
{
    $cfg->set_model_directory('model');
    $cfg->set_connections(array('development' => 'mysql://root:@127.0.0.1/candralab'));
});

Tampil data

  $kampus=new Kampus();
 $data=$kampus->find('all');
foreach ($data as $kampus) { 
echo $kampus->nama;
echo $kampus->alamat;
}

Kode diatas sama fungsinya dengan query select * from kampus . Fungsi $kampus->find('all') adalah fungsi bawaan dari ORM untuk menampilkan seluruh data di tabel. Fungsi lain bisa anda baca di http://www.phpactiverecord.org/projects/main/wiki/Finders

Insert data

	$kampus = new Kampus();
	$kampus -> nama = $_POST['nama'];
	$kampus -> alamat = $_POST['alamat'];
	$kampus -> save();

update data

$kampus = Kampus::find($id);
	$kampus -> nama = $_POST['nama'];
	$kampus -> alamat = $_POST['alamat'];
	$kampus -> save();

delete data

    $kampus = Kampus::find($id);
    $result = $kampus -> delete();

Perhatikan sekali lagi, ORM merevolusi cara kita berinteraksi dengan database, dengan ORM tidak perlu lagi query manual. Ingat! tutorial ini hanya pengantar singkat (quick star) dari PHP ORM. Jika anda ingin mempelajari lebih lanjut silahkan berkunjung ke websitenya di http://www.phpactiverecord.org.

Download source code

DOWNLOAD DISINI. Source code ini mencakup 3 tutorial sebelumnya. Untuk cara instalasi dan setingnya di komputer lokal, silahkan baca file README.txt.

By Candra Adi Putra

Candra Adi Putra S.Kom adalah Alumni STMIK AKAKOM Yogyakarta. hubungi saya di candraadiputra (at) gmail (dot) com

4 thoughts on “Tutorial ORM dan PHP Active Record”
  1. Tutorial Crud PHP Mysql di Insert data ditambah $kampus -> photo = $_POST[‘photo’]; cari photo di file

  2. Mas mau tanya ketika saya running project ORMnya
    ada warning seperti ini ketika mau tambah data

    Notice: Undefined variable: kampus in C:xampphtdocsormkampuskampus_form.php on line 21Notice: Trying to get property of non-object in C:xampphtdocsormkampuskampus_form.php on line 21

    itu kira2 variable apa yah yang tidak terdeteksi?
    Matur nuwun

Leave a Reply

Your email address will not be published. Required fields are marked *