Object Relational Mapping ORM

2.12. Object Relational Mapping ORM

ORM Object Relational Mapping adalah sebuah teknik pemrograman yang menghubungkan perbedaan tipe data pada konsep pemrograman yang berorientasi obyek dengan konsep RDBMS. Dengan mengimplementasikan ORM, developer bisa lebih berfikir secara obyek dibanding dengan tabel dan kolom-kolom yang menjadi ciri dari model relasional. ORM digunakan untuk menjaga kemurnian pola pikir developer atas pemrograman berorientasi obyek. Object Relational Mapping ORM Object Oriented Programming, 2010 Seperti yang sudah dikenal banyak orang, model pemrograman database yang umum digunakan adalah dengan model CRUD create- retrieve-update-delete. Untuk dapat mengoperasikan data yang terdapat pada database, tentunya langkah pertama kali yang harus dilakukan adalah dengan melakukan create data diasumsikan sudah teradapat skema tabel sebelumnya. Adapun perintah yang umum digunakan adalah INSERT INTO tabel_name`kolom_name` VALUES‟value_property‟ Setelah itu jika ingin menampilkan data, yang dilakukan adalah SELECT FROM tabel_name Dan ketika ingin melakukan edit pada salah satu data, maka harus diketahui ID Primary Key dari data yang akan di-edit tersebut, kemudian baru dimasukkan nilai baru dengan menggunakan perintah UPDATE table_name SET kolom_name = „new_value_property‟ WHERE Primary_key = „key_to_update‟ Dan apabila ingin dilakukan penghapusan data, maka yang dilakukan adalah dengan mengambil kembali primary-key dan menjalankan perintah DELETE FR OM tabel_name where Primary_key = „key_to_delete‟ Dari penjelasan konsep model pemrograman database di atas, tidak ada masalah dalam penyelesaiannya. Akan tetapi, saat konsep diatas dikaitkan dengan model pemrograman Object Oriented Programming OOP, maka akan sedikit mengalami kesulitan. Kesulitan tersebut datang saat konsep seperti pewarisan sifat inheritance atau polimorfisme yang terdapat di OOP diterampkan. Konsep database di atas tidak dapat mendukung hal tersebut. Untuk itu, saat ini terdapat sebuah konsep yang menggabungkan metode pemrograman database dengan konsep Object Oriented Programming. Pada konsep OOP, pengembang memodelkan elemen- elemen dari aplikasi menjadi class atau object pengembang juga melakukan desain tabel-tabel yang ternormalisasi dalam aplikasi dan tabel- tabel itu sudah bisa mewakili obyek-obyek yang ada dalam aplikasi. perlu diperhatikan bahwa obyek yang dibahas pada pembahasan ini adalah obyek yang berfungsi untuk mewakili sebuah elemen, bukan obyek bertipe controller atau lainnya. Konsep ORM adalah konsep dimana dilakukan mapping dari tabel menjadi obyek. Kolom-kolom yang ada pada tabel nantinya akan menjadi attribute atau variabel-variabel dalam obyek. Satu obyek mewakili satu row. Karena merupakan obyek, untuk mengakses beberapa row sekaligus, dapat disamakan dengan mengakses array dari obyek. Berikut adalah contoh penggunaan konsep ORM sederhana. Contoh kasusnya adalah Blog. Diasumsikan bahwa untuk membuat blog sederhana diperlukan dua obyek yaitu blog dan post dengan relasi one to many. Satu blog dapat memiliki banyak post. Maka tabel yang dapat dibuat adalah sebagai berikut. Blog: - name primary key - owner nama pemiliki blog Post: - post_id primary key, auto_number - blog_id blog yang memiliki posting ini - tanggal tanggal posting - content isi posting blog Bila menggunakan konsep konvensional yaitu CRUD, maka yang harus dilakukan ketika membuat blog baru adalah menjalankan query INSERT INTO blog name, owner VALUES„sanctuary‟, „hendrawan‟ Kemudian ketika ingin melakukan posting, maka yang dilakukan adalah menjalankan query: INSERT INTO postblog_id, tanggal, content VALUES„sanctuary‟, NOW, „ini postingan pertama saya‟ Jika menggunakan ORM, maka ketika ingin membuat blog baru, langkah sederhana yang dapat dilakukan adalah menjalankan perintah berikut: Blog myBlog = new Blog; myBlog.name = “sanctuary”; myBlog.owner = “hendrawan”; myBlog.save; Ketika dijalankan perintah save , maka ORM secara otomatis akan menerjemahkan obyek tersebut menjadi sintak-sintak SQL dan menjalankannya di server database. Selanjutnya, ketika ingin ditambahkan postingan baru maka perintah yang dapat dilakukan adalah sebagai berikut: Post newPost = new Post; newPost.blog = myBlog; myBlog diambil dari code sebelumnya newPost.tanggal = DateTime.Now; newPost.content = “ini postingan pertama saya”; newPost.Save; Dari contoh kode program di atas, maka dapat dilihat perbedaan yang signifikan antara kode program. Jika dibandingkan dengan kode program yang penuh dengan syntax SQL sebelumnya, maka dengan ORM terlihat lebih mudah difahami.

2.12.1. Alasan Memilh ORM

Saat ini, pemrograman berorientasi obyek sudah diterima secara luas dalam pengembangan aplikasi bisnis. Pengembangan aplikasi berorientasi obyek menyediakan metode yang lebih cocok dan fasilitas pemodelan obyek lebih nyata daripada paradigma pemrograman terstruktur. Beberapa alasan mengapa penulis memilih konsep ORM sebagai konsep dalam memodelkan basis data. Yang pertama karena, ORM secara otomatis object-to-table dan table-to object conversion, yang menyederhanakan pengembangan aplikasi. Perkembangan pasar kini lebih disederhanakan menuju ke kecepatan waktu dan mengurangi biaya pengembangan dan pemeliharaan. Selanjutnya, ORM membutuhkan sedikit kode dibandingkan dengan menggunakan perintah SQL. ORM menyediakan caching transparan obyek pada klien dengan demikian meningkatkan kinerja sistem. Sebuah ORM yang baik adalah solusi yang sangat optimal yang akan membuat aplikasi lebih cepat dan lebih mudah.

2.12.2. Impedance Missmatch

Para pengembang beralasan yang paling penting menggunakan teknik ORM adalah ketidakcocokan impedansi yang terjadi antara kode obyek dan database relasional. Model berorientasi obyek didasarkan pada prinsip bahwa aplikasi dibangun dengan menggunakan kumpulan komponen yang dapat digunakan kembali yang disebut obyek. Di sisi lain, pola database relasional adalah satu dimana menyimpan database data dalam bentuk tabel. Sedangkan database sebagian besar didasarkan pada algoritma murni matematis, model berorientasi obyek didasarkan pada representasi kehidupan dan lingkungan seseorang. Oleh karena itu, untuk mengatasi kesenjangan antara dua paradigma, perlu untuk memetakan model obyek ke model data. Object Relational Mapping ORM Object Oriented Programming, 2010

2.12.3. Keunggulan ORM

ORM memiliki kemampuan untuk menciptakan obyek database virtual, yaitu suatu model database yang direpresentasikan kedalam sebuah obyek pada bahasa pemrograman OOP. Berikut ini adalah beberapa kelebihan yang dimiliki ORM, antara lain: 1. Mempercepat pengembangan program. Contohnya, mengurangi perulangan kode query, memudahkan pemakaian karena tabel-tabel ter-representasikan dalam bentuk obyek. 2. Membuat akses data menjadi lebih abstrak dan portable. Hal ini dikarenakan ORM menangani generate pembangkitan syntax SQL berdasarkan vendor database-nya contoh MySQL, PostgreSQL, Oracle, DbDerby, dll. 3. Mendukung enkapsulasi business rule pada lapisan Data Access. 4. Dapat melakukan generate boilerplate code unit kode yang reusable untuk fungsi dasar CRUD create, retrieve, update, delete.

2.13. PosgreSQL