Problem CRUD pada Pemrograman Berorientasi Objek

Problem Create, Read, Update, dan Delete (CRUD) pada PBO dikenal dengan istilah impedance mismatch. Hal ini terjadi karena pemrograman terstruktur dengan karakternya yang menggunakan database relasional menggunakan prinsip pemisahan antara data dengan program. Sementara itu PBO dalam satu kelas memadukan data dan program. Dalam hal ini data berupa atribut, sementara programnya berupa method/operasi. Kontroversi kerap terjadi, biasanya untuk programmer-programmer yang biasanya menangani program-program nonobjek, yang menganjurkan CRUD terpisah dari kelas-nya (lihat di sini). Terutama yang sering menggunakan framework maupun bertipe service oriented architecture (SOA), cenderung memasukan CRUD ke layer service. Atau programmer yang menerapkan Object Relational Database Management System (ORDBMS).

Gambar berikut dikutip dari sumber materi PBO link ini. Tampak pada kelas Customer, kelas ini memiliki operasi bernama +add(name,phone) yang bertugas memasukan pelanggan baru. Operasi yang berada dalam sebuah kelas sebenarnya memperkuat konsep PBO yaitu encapsulation dimana kelas lain tidak bisa mengutak-atik kelas tertentu. Untuk menambah pelanggan, dalam kelas Customer harus lewat operasi +add pada kelas tersebut, tidak seperti database relasional yang menggunakan akses dari luar lewat injeksi SQL (insert into Customer).

Jadi sejatinya CRUD pada objek terletak di bagian operasi kelas yang bersangkutan, jika ingin prinsip encapsulation tetap dipegang. Hal ini bisa dijalankan untuk Object Database Management System (ODBMS) murni dengan basis data objek seperti DB4O (lihat pos yang lalu) atau tipe no-sql seperti MongoDB. Interface yang mengirimkan data yang harus diubah pada PBO hanya berupa pesan (message), misalnya pada diagram kelas di atas ingin menambah satu pelanggan baru maka interface yang biasanya form/frame memberikan pesan ke kelas Customer agar menjalankan operasi +add(name,phone) untuk menambah satu data pelanggan baru dengan name dan phone tertentu (dari isian form/frame). Mungkin pembaca tidak setuju, boleh saja, toh antara konsep PBO dengan terstruktur termasuk antara database relasional dan objek pun bisa dikombinasikan. Terkadang antara teori dengan aplikasi/penerapan perlu kompromi.

Iklan