Rabu, 28 Desember 2011

Apa itu ORM (Object Relational Mapping)?

Istilah ORM tidak asing bagi programmer terutama yang memakai OOP sebagai paradigma pemrogramannya. Bagi anda yang baru masih belajar, terkadang bingung dengan istilah ini. Apakah itu ORM?
ORM merupakan kependekan dari Object Relational Mapping, sebuah teknik pemrograman yang memetakan sebuah objek dengan database. ORM ini akan membantu menjadi ‘jembatan’ antara objek yang didefinisikan dalam kode program dengan database, bagaimana objek itu disimpan, diambil, dihapus dan sebagainya. Dengan ORM ini, programmer dibantu untuk melakukan aksi-aksi yang diperlukan terkait komunikasi objek ketika program dijalankan dengan database seperti menyimpan objek, mengambil data objek dari database kemudian ditampilkan, menghapus objek, mengubah objek dan sebagainya.
Sebagai contoh penggunaan adalah ketika ada definisi data berupa person yang memiliki atribut id dan nama. Di database didefinisikan sebuah tabel dengan kolom id dan nama. Dengan tanpa menggunakan ORM, untuk menyimpan objek itu ke database adalah dengan menjalan perintah SQL :
“INSERT INTO persons (id, nama) values (’1′,’wisnu manupraba’)”.
Dengan menggunakan ORM, perintah SQL itu akan digantikan dengan fungsi misalkan save (tergantung fungsi yang disediakan oleh pustaka ORM yang digunakan), sehingga pemanggilannya adalah :
Person person = new Person (1, “Wisnu Manupraba”);
person.insert();
ORM lah yang akan memetakan fungsi insert() sama dengan perintah SQL ‘INSERT INTO….”.
Ada banyak pustaka ORM yang tersedia saat ini, di berbagai bahasa. Di Java misalkan ada Hibernate dan MyIbatis (dulu namanya IBatis). Di PHP, berbagai framework seperti CakePHP, CodeIgniter, Yii dan sebagainya  menyediakan ORMnya sendiri-sendiri.
Berikut adalah daftar ORM untuk masing-masing bahasa (tidak semuanya ada di sini dan yang ada di sini tidak semuanya masih bisa digunakan, beberapa sudah tidak digunakan lagi).
C++
  • ODB, open source, compiler-based (no manual writing of the mapping code)
  • LiteSQL, open source
Coldfusion
Cocoa
  • Core Data, object graph management framework with several persistent stores. Ships with Mac OS X and iPhone OS.
Delphi
Groovy
Java
.NET
Perl
PHP
  • Axon, ORM plug-in for the Fat-Free Framework. PDO-based and requires no configuration (GPL3).
  • CakePHP, ORM and framework for PHP5, open source (scalars, arrays, objects). Based on database introspection. No class extending or code generation
  • Doctrine, Open Source ORM for PHP 5.2.3, free software (GNU LGPL)
  • PdoMap, Open Source ORM for PHP 5.x, inspired by Hibernate, free software (GNU LGPL)
  • Propel, ORM and Query-Toolkit for PHP 5, inspired by Apache Torque, free software (MIT)
  • Rocks, Open Source ORM for PHP 5.1 plus, free for non-commercial use (GPL)
  • Qcodo, ORM and framework for PHP5, open source
  • Redbean, ORM layer for PHP 5 that creates and maintains tables on the fly (BSD)
  • Sphorm, ORM for PHP 5, free software, using Visitor pattern, Binary tree and Fluent Pattern. [1]
  • Torpor, Open Source ORM for PHP 5.1 plus, free software (MIT), database and OS agnostic
Python
Ruby
VB6
Kesimpulannya adalah salah satu kegunaan ORM mempermudah programmer agar tidak perlu lagi menuliskan perintah-perintah SQL ketika memerlukan koneksi dengan database, tetapi cukup dengan menggunakan fungsi-fungsi yang sudah disediakan oleh ORM tersebut.