Monday 26 January 2009

Analisa Perbandingan Antara Propel dan Doctrine

1. Latar Belakang Masalah
Kebutuhan akan sistem informasi belakangan ini meningkat pesat. Hal itu dikarenakan setiap perusahaan ingin memiliki sebuah sistem yang mampu mengelola seluruh data yang dimilikinya dengan tepat. Dengan adanya sistem informasi, perusahaan dapat mengolah data yang dimilikinya dengan lebih efektif dan efisien. Sehingga para pengembang sistem informasi mau tidak mau harus terus melahirkan metode-metode yang mampu menghadapi keinginan pasar yang terus berkembang sesuai dengan tuntutan jaman.
Jika berbicara mengenai sistem informasi, kita akan dihadapkan pada masalah basis data. Karena dalam basis data inilah seluruh data yang ingin diakses melalui sistem informasi diperoleh. Sehingga tak heran jika basis data memegang peranan yang sangat penting dalam pembangunan sebuah aplikasi berupa sistem informasi. Untuk itu, dibutuhkan sebuah strategi penanganan basis data yang tepat agar dihasilkan sebuah sistem informasi yang baik.
Penanganan basis data yang tepat, selain harus dapat menyimpan informasi yang dibutuhkan juga harus dapat terelasi dengan baik, atau disebut juga dengan basis data relasional. Basis data relasional adalah kumpulan data yang berelasi antara satu dengan yang lain. Dan untuk dapat mengelola basis data relasional, diperlukan tools yang disebut RDBMS atau Relational Database Management System.
Saat ini tengah dikembangkan sebuah teknik mapping yang diperuntukkan bagi RDBMS. Teknik ini dikenal dengan sebutan ORM yang merupakan singkatan dari Object Relational Mapping. ORM adalah sebuah teknik yang digunakan untuk memetakan RDBMS ke dalam objek-objek. Dengan kata lain, ORM memodelkan data pada RDBMS ini dalam bentuk objek-objek, sehingga memudahkan dalam melakukan manipulasi atau operasi di basis data.
Ada beberapa implementasi ORM yang muncul belakangan ini. Doctrine dan Propel merupakan dua dari beberapa jenis ORM yang baru dikembangkan. Doctrine dan Propel merupakan ORM yang digunakan untuk memetakan basis data relasional menjadi objek-objek pada sistem informasi yang dibangun dengan menggunakan PHP versi 5.0 keatas.
Doctrine adalah sebuah ORM untuk PHP 5 yang terletak di atas DBAL (Database Abstraction Layer). Salah satu fitur yang menjadi andalannya adalah kemampuan dalam menuliskan query basis data dalam bentuk OO (Object Oriented) SQL-dialect atau yang dikenal dengan DQL yang terinspirasi oleh Hibernates HQL.
Propel adalah sebuah ORM yang digunakan untuk PHP versi 5. Propel memberikan kemudahan dalam mengakses basis data menggunakan objek-objek, menyediakan API sederhana untuk menambah dan mengolah data. Beberapa kelebihan yang dimiliki oleh Propel, antara lain:
• Tidak perlu khawatir terhadap koneksi-koneksi basis data atau penulisan SQL
• RDBMS di definisikan ke dalam sebuah format XML yang sederhana (atau Propel bisa juga membangunnya dari basis data yang sudah ada) dan Propel akan membuat file-file inisialisasinya untuk basis data yang akan dibangun serta akan meng-generate kelas-kelas statis dan objek-objek ke dalam sebuah OO interface ke dalam basis data yang dibuat.
• Propel membangun kelas-kelas berdasarkan struktur dari basis data agar performansinya meningkat.
Dengan beragamnya jenis ORM yang bisa digunakan, perlu di analisa tentang performansi dari jenis-jenis ORM ini. Sehingga nantinya jenis ORM yang digunakan bisa optimal sesuai dengan kebutuhan yang diharapkan.

2. Tujuan
Setelah melihat dari latar belakang di atas, penulis bermaksud mengerjakan tugas akhir ini dengan tujuan sebagai berikut :
1. Membangun sebuah simulasi pengolahan basis data menggunakan ORM Doctrine dan Propel.
2. Membandingkan performansi mapping dari dua ORM untuk PHP yaitu Doctrine dan Propel dengan tiga skenario pengujian, yaitu :
• Pengujian performansi saat operasi CRUD dieksekusi dengan parameter analisis throughput system.
• Pengujian maintainability dengan analisis perubahan LoC.
• Pengujian fleksibilitas basis data dengan menggunakan dua basis data yang berbeda.

3. Rumusan Masalah dan Batasan Masalah
Perkembangan pesat yang ditunjukkan oleh para developer dalam mengembangkan ORM belakangan ini sangat signifikan. Jika dalam beberapa tahun terakhir jumlah ORM yang dikembangkan jumlahnya terbatas, kini banyak muncul jenis-jenis baru dari ORM. Hal ini dikarenakan para developer mulai melihat bahwa sebagian besar perusahaan kini mulai menggunakan ORM untuk mengolah basis data mereka. Baik itu di lingkungan Java, PHP, maupun .NET. Oleh karena itu diperlukan suatu analisis mengenai performansi dari ORM tersebut, agar didapatkan suatu strategi mapping persistensi data yang tepat.
Dengan melakukan analisa terhadap ORM Doctrine dan Propel, diharapkan nantinya dapat menjadi parameter untuk menentukan ORM mana yang tepat digunakan untuk melakukan pengolahan basis data dengan mempertimbangkan performansi dari keduanya. Sehingga muncul rumusan masalah sebagai berikut :
1. Manakah diantara kedua ORM yang dibandingkan yaitu antara Doctrine dan Propel, yang lebih efektif digunakan untuk melakukan pengolahan basis data?
2. Bagaimana fleksibilitas ORM Doctrine dan Propel terhadap RDBMS yang digunakan?
Adapun batasan masalah pada Tugas Akhir ini, yaitu :
1. RDBMS yang digunakan adalah MySQL versi 5.0.51b
2. Bahasa pemrograman yang digunakan adalah PHP versi 5.2.9
3. ORM yang akan dibandingkan adalah Doctrine versi 1.0.3 dan Propel 1.3.0
4. Simulasi pengolahan basis data yang dibangun adalah contoh dari penerapan ORM Doctrine dan Propel.

4. Metode Penelitian
Metode yang digunakan dalam penyelesaian tugas akhir ini adalah menggunakan metode studi literatur dan analisis dengan langkah-langkah sebagai berikut :
1. Studi Literatur :
a. Pencarian referensi
Mencari referensi yang berhubungan dengan PHP, MySQL, ORM, Propel, dan Doctrine.
b. Pendalaman materi
Mempelajari dan memahami metode dan software yang digunakan serta materi yang berhubungan dengan tugas akhir.
2. Merancang simulasi pengolahan basis data yang ingin di bangun sesuai dengan kebutuhan.
3. Membangun simulasi pengolahan basis data berdasarkan rancangan yang telah dibuat menggunakan software yang dianalisa.
4. Melakukan pengujian dan analisa terhadap simulasi pengolahan basis data yang telah dibangun.
5. Pengambilan kesimpulan dan penyusunan laporan tugas akhir.