BAB I PENDAHULUAN 1.1 Pendahuluan Dalam pengembangan aplikasi, pada umumnya untuk menyimpan data digunakan RDBMS (Relational Database Management System) yang terdiri dari banyak tabel yang saling berelasi satu dengan yang lain. Untuk memanipulasi data yang ada pada database digunakan perintah berupa SQL, sedangkan pada kasus yang membutuhkan logika yang lebih kompleks dapat dibuat program tersendiri dalam bentuk Stored Procedure. Stored Procedure pada database Oracle, SQL Server, MySQL, dan PostgreSQL berbeda-beda, masing-masing database juga mempunyai standar SQL yang berbeda-beda pula. Oleh karena itu, untuk mengatasi masalah tersebut bisa digunakan ORM (Object Relational Mapping)1 yaitu sebuah teknik pemrograman yang memetakan tabel pada relational database ke object dengan menggunakan informasi pada metadata. Dengan mengimplementasikan ORM diharapkan developer dapat lebih melihat relasi antar data dalam bentuk objek tidak berupa tabel dan kolom-kolom yang menjadi ciri dari model relasional. ORM digunakan untuk menjadi perantara antara SQL dan bahasa program agar programmer dapat lebih mudah untuk bekerja dengan object yang mewakili relational database tersebut. Sampai saat ini, pendekatan yang terbaik yang bisa dilakukan adalah dengan mengabstraksikan akses ke database sehingga developer hanya melakukan akses secara object-oriented tanpa perlu memperdulikan SQL lagi. Tetapi pendekatan ini mengorbankan salah satu aspek yang paling penting dan menarik pada relational database yaitu kemampuan untuk melakukan query data. 1 Ariyanto,ST, Origami ORM Framework User Guide, 2009, hal 7 1 Untuk mengatasi masalah tersebut, dapat digunakan LINQ to SQL yang memungkinkan mengakses relational database dalam bentuk object tanpa kehilangan kemampuan query. Saat ini LINQ to SQL secara resmi baru mendukung database SQL Server dan SQL Server Express. LINQ to SQL adalah teknologi baru yang dirilis bersamaan dengan .NET Framework versi 3.5. LINQ to SQL merupakan teknologi yang mensupport ORM pada .NET Framework yang dibuat oleh Microsoft. Untuk menggunakan LINQ to SQL programmer harus membuat pemetaan dari relational database kedalam class. Selain memakai LINQ pemecahan masalah tersebut juga dapat menggunakan Subsonic, yaitu open source .NET ORM tools yang dikembangkan oleh tim dibawah pimpinan Rob Conery. Subsonic mendukung koneksi ke database seperti MySQL, Oracle, dan SQL Server. Seperti LINQ to SQL, subsonic juga dapat menterjemahkan sintaks subsonic menjadi bahasa SQL yang spesifik pada masing-masing database. Pada tugas akhir ini akan dilakukan pengujian dan analisis perbandingan kecepatan proses eksekusi CRUD (Create, Read, Update, Delete) untuk ribuan data, analisis kecepatan dalam melakukan perintahperintah SELECT, SELECT JOIN, SELECT GROUP BY, SELECT ORDERBY, SELECT untuk AGGREGATE (SUM, AVERAGES), serta analisis SLOC (Source Line Of Code) dari generated code yang dihasilkan pada dua framework ORM yaitu LINQ to SQL dan Subsonic. 1.2 Perumusan Masalah • Bagaimana kecepatan proses dalam melakukan operasi INSERT, UPDATE, DELETE menggunakan LINQ to SQL dan Subsonic untuk 100, 1000, 10000 data? • Bagaimana kecepatan dalam melakukan perintah-perintah SELECT, SELECT JOIN, SELECT GROUP BY, SELECT ORDERBY, SELECT untuk AGGREGATE (SUM, AVERAGES) menggunakan LINQ to SQL dan Subsonic? 2 • Bagaimana analisis SLOC (Source Line Of Code) dari generated code yang dihasilkan oleh LINQ to SQL dan Subsonic pada pembuatan aplikasi yang sama? 1.3 Batasan Masalah • Program yang dibuat hanya mendukung satu jenis database server yaitu SQL Server 2005 karena untuk saat ini LINQ secara resmi baru dapat mensupport SQL Server 2005. • Operasi yang dianalisis adalah CRUD (Create, Read, Update, Delete) dan Select. 1.4 Tujuan Penelitian Tujuan penelitian ini adalah : 1. Untuk memenuhi syarat kelulusan program studi pada Jurusan Teknik Informatika di Universitas Kristen Duta Wacana. 2. Menerapkan teori-teori yang dipelajari selama perkuliahan ke dalam bentuk Tugas Akhir. 3. Membantu programmer untuk membandingkan kecepatan proses eksekusi mana yang lebih baik antara ORM Subsonic dengan LINQ to SQL. 1.5 Metode/Pendekatan o Metode Penelitian dan Pustaka Penelitian pustaka dilakukan dengan cara mencari pustaka referensi yang berhubungan dengan ORM (Object Relational Mapping), LINQ (Language Integrated Query) dan Subsonic. o Pengumpulan Data Mengumpulkan data-data yang terkait dalam pembuatan Tugas Akhir. 3 1.6 Sistematika Penulisan Sistematika dari penelitian laporan Tugas Akhir ini dibagi dalam 5 Bab yang didalamnya terbagi lagi menjadi beberapa bagian yang merupakan satu kesatuan dan saling terkait. Bab I Pendahuluan, berisi latar belakang permasalahan, perumusan masalah, batasan masalah, tujuan penelitian, dan sistematika penulisan dari tugas akhir ini. Bab II Tinjauan Pustaka, berisi teori-teori yang mendukung dalam penyelesaian Tugas Akhir ini, yaitu berupa teori ORM, LINQ, Subsonic, SLOC. Bab III Perancangan Sistem, berisi perancangan sistem yang berupa rancangan proses dan rancangan interface secara keseluruhan dari pembuatan Tugas Akhir ini. Bab IV Implementasi dan Evaluasi Sistem, yang menguraikan implementasi sistem dalam bentuk program yang dibuat dengan membahas obyek dan prosedur inti serta menguraikan kelebihan dan kelemahan sistem yang telah dibuat. Bab V Kesimpulan dan Saran, berisi kesimpulan tentang Tugas Akhir yang dibuat, serta menguraikan beberapa saran yang dapat digunakan untuk pengembangan sistem di kemudian hari. 4