Jaman sekarang banyak bermunculan  framework-framework berbasis php seperti CodeIgniter, Cake php, Ruby On Rails, YII dsb. Salah satu keunggulan framework tersebut adalah fasilitas active record database yang dibuat simple dan dapat mempercepat kita dalam proses pembuatan project aplikasi website. Pada tutorial kali ini saya akan membagikan trik bagaiamana membuat active record sederhana ...

Membuat sendiri active record sederhana ala framework

Jaman sekarang banyak bermunculan framework-framework berbasis php seperti CodeIgniter, Cake php, YII dsb. Salah satu keunggulan framework tersebut adalah fasilitas active record database yang dibuat simple dan dapat mempercepat kita dalam proses pembuatan project aplikasi website.

Pada tutorial kali ini saya akan membagikan trik bagaimana membuat sendiri active record sederhana la framework berbasis PHP dan database Mysql.

Ok langsung saja. Dalam tutorial ini hanya akan dijelaskan beberapa jenis active record saja,  dengan tujuan supaya pembaca lebih bisa berkreasi lagi dengan teknik yang lainnya....:-)

Berikut ini adalah langkah-langkah pembuat  active record ala framework

Pertama buatlah database bernama jagocoding

Kedua buat tabel bernama berita, berikut sintax struktur tabel berita. Selajutnya isi tabel tersebuat dengan beberapa data sebagai contoh 

--
-- Table structure for table `berita`
--

CREATE TABLE IF NOT EXISTS `berita` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `judul` varchar(30) NOT NULL,
  `isi` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

 

Ketiga buat file bernama active_record.php. Dalam file tersebut berisi class active record dan berbagai method2 active record database  

<?php
Class Active_record{

       // Active record dengan full query     

       public function query($query)
       {
             $q=mysql_query("$query") or die(mysql_error);
             return $q;
       }

 

       // Active record untuk menampilkan seluruh data

       public function getAll($tabel) 
       {
             $q = mysql_query("select * from $tabel") or die(mysql_error);
             return $q;
       }

 

       // Active record untuk menampilkan data kolom tertentu didatabase 

       public function getData($tabel, $kolom) 
       {
              $q = mysql_query("select $kolom from $tabel") or die(mysql_error);
              return $q;
       }

 

       // Active record untuk menampilkan data dengan kriteria tertentu

       public function getWhere($tabel, $kolom, $where) 
       {
             $q = mysql_query("select $kolom from $tabel where $where") or die(mysql_error());
             return $q;
       }


       // Active record untuk menampilkan data dengan pengurutan

       public function getOrder($tabel, $kolom, $order, $sort) 
       {
             $q = mysql_query("select $kolom from $tabel order by $order $sort") or die(mysql_error());
             return $q;
       }


       // Active record untuk menampilkan data yang dibatasi jumlanya dengan limit

       public function getLimit($tabel, $kolom,$limit) 
       {
            $q = mysql_query("select $kolom from $tabel limit $limit") or die(mysql_error());
            return $q;
       }

     

       // Active record untuk menampilkan jumlah data       

        public function numRows($q) 
        {
              $q = mysql_num_rows($q) or die(mysql_error());
              return $q;
        }


       // Menampilkan data berbentuk row array

        public function row_array($param) 
        {
              return mysql_fetch_array($param);
        }

 
       // Menampilkan data dengan row Object

        public function row($param) 
        {
             return mysql_fetch_object($param);
        }

 }
?>

 

Keempat buat file koneksi.php, 

<?php
 
mysql_connect("localhost","root","") or die("Koneksi gagal");
 
mysql_select_db("jagocoding") or die("Gagal memilih database");
  
?>


Kelima atau yang terakhir untuk cara pemakaian active record,  buatlah file bernama index.php

<?php 

require_once "koneksi.php";
require_once "active_record.php";

// Buat object

$db=new Active_record();


// Mengambil seluruh data dari tabel berita

$query=$db->getAll('berita');


// Menampilkan data dengan row object

while ($data=$db->row($query)) 
{
  echo "<h2>".$data->judul."</h2>";
  echo "<p>".$data->isi."</p>";
}

// Menmpilkan jumlah data
echo "<br/>";
echo "Jumlah berita = ".$db->numRows($query);

?>

 

Sekian tutorial membuat sendiri active record sederhana ala framework,

semoga dapat bermanfaat bagi pembaca sekalian

 

Download Source Code             Online demo

 

Salam penulis

Fuad Indra Setiawan

 


About Author

Fuad Indra Setiawan

Simpanlah ilmu dengan menulisnya..

Kontak penulis :http://fuadsetiawan.blogspot.com


Comment & Discussions

  • The Dark Knight
    Artikel bagus.. Tapi beberapa hal perlu di koreksi (1) Ruby On Rails bukan di bangun di atas PHP, namun di bangun di atas Ruby. (2) Yang namanya ORM itu sepenuhnya me-[i]mapping[/i] apa apa yang ada di database, Table sebagai [i]class[/i], dan [i]record[/i] sebagai [i]object[/i]. (3) Karena konsep awal Active record itu ada di Ruby, maka sepenuhnya ActiveRecord menggunakan style class Ruby. Dan ketika dibangun menggunakan PHP, maka PHP sedemikan rupa harus di sesuaikan dengan [i]pattern[/i]-nya Ruby. (4) Yang dimaksud dengan [i]ActiveRecord[/i] adalah ORM dengan kemampuan memanipulasi diri sendiri. Dimana sebuah [i]object[/i] juga haruslah mampu melakukan modifikasi terhadap dirinya sendiri.

    • The Dark Knight

      Sebagai referensi, mungkin penulis bisa melihat code ActiveRecord sederhana yang di tulis teman saya: [link]https://github.com/ata/active-record [/link]


    • Cecep Yusuf

      Kang The Dark Night, ada kesalahan pengetikan (mungkin) dari akang mengenai ORM, table sebagai class, dan record sebagai objek.. harusnya table sebagai class, dan record sebagai [b]atribut[/b]. Intinya, setiap objek yang mewakili tabel harus dijadikan objek2 terpisah, jadi tidak bisa dibuat kayak gini: $db=new Active_record(); tapi harus $berita=new Berita(); dengan class Berita merupakan turunan dari ActiveRecord. Jadi setiap function pada setiap turunan active record (Berita dsb) itu tidak perlu menambahkan parameter $table. Mungkin begitu maksud kang TDK. Tapi ga perlu dimasalahkan, toh penulis sudah membuat artikel yang bagus dan berguna untuk [b]Newbie[/b] (sesuai dengan skill yg diisikan di atas) :)


    • The Dark Knight

      Ga kok, ga salah.. record memang sebagai objek.. Yang sebagai attribut itu field :)


    • oh iya maaf terjadi kesalahan penyebutan jenis framework...maksud saya hanya menyebutkan jenis2 framework yg terkenal saja sebagai contoh...palah kesebut ROR...:-) mengenai artikel saya diatas, saya hanya sekedar berbagi ilmu yg saya ketahui. Tujuannya adalah untuk mempermudah dalam pembuatan query database saja dan levelnya pemula ...kalau para penulis sekalian punya ide yg berbeda silahkan share saja...kita sama2 belajar...:-) Siapa tau bisa ketularan expert..kaya kang @Cheyus n kang @The Dark Knight....he.he


    • Cecep Yusuf

      Eh iya ya record itu kan data, salah saya, salah nangkep.. field itu atribut, iya record itu objek. :D .................... @Fuad: Semangat gan, tetep semangat nulis di Jagocoding.com ;) Artikelnya bagus2


  • suherman
    mantap tutorialnya mas bro, kebetulan lagi belajar oop php

  • Hallo master, ada gak ya library ORM siap pakai yang stylenya mirip di CodeIgniter. Di kasus tertentu saya tidak menggunakan Framework 3rd parties utk bikin web, tapi pakai framework sendiri yg gak full OOP Karena terbiasa dgn style coding active record punya CI saya jadi susah beradaptasi lagi. Thanks..

  • Please LOGIN before if you want to give the comment.